Code Monkey home page Code Monkey logo

vision_landing's People

Contributors

fnoop avatar vgroove avatar ysfvest avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vision_landing's Issues

Set limits and constraints on tracking

patrickpoirier51 @patrickpoirier51 12:18
@fnoop Concerning the runaway behavior, may I suggest that for the moment, we set a limit on the tracking range ( -0,2 to 0,2) and return to zero if no reading more than N millisecond (300-500 max)? Here is an an example if the system loosing tracking for a few seconds = on a live system that is equivalent of pushing sticks to extreme position !!

Implement fourcc codec option

Opencv VideoWriter can take a fourcc option which influences how ffmpeg compresses the output stream. Normally this is set to 0 and a gstreamer output is used, or a simple filename. However if using a simple output string, using a fourcc code is the only way to specify a codec.

Deactivate when FC not in precland/precloiter mode

Only activate opencv/aruco vision processing when in landing/precloiter mode, to save (a lot of) CPU cycles. Will need to alter comms between python/c++ processes to allow c++ code to receive instructions as it's not directly connected to mavlink.

vision_landing not capturing some output from track_targets

[dev] [mav@fnoop-joule /var/tmp/vision_landing]$ /srv/maverick/code/dronekit-apps/vision_landing/track_targets -d TAG36h11 -o 'appsrc ! videoconvert ! video/x-raw,width=640,height=480,format=NV12 ! vaapih264enc ! matrokamux ! filesink location=/var/tmp/vision-2017-03-21-15-36-42.mkv' -w 640 -g 480 -f 30 -v 'v4l2src device=/dev/video2 ! videoconvert ! appsink' /srv/maverick/code/dronekit-apps/vision_landing/calibration/r200-calibration-640x480.yml 0.235
warning: Error opening file (/srv/maverick/var/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:779)
warning: v4l2src device=/dev/video2 ! videoconvert ! appsink (/srv/maverick/var/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:780)
(DEBUG) try_init_v4l2 open "v4l2src device=/dev/video2 ! videoconvert ! appsink": No such file or directory

Add gain/brightness option

Detection is very poor under low light or other conditions. Add an option to alter gain/brightness, also detection thresholds.

Add config option to activate processing control

Refactored code enables/disables vision processing based on landing or precloiter modes and armed status. Might be useful to have a config flag that activates/deactivates this control mechanism, for example to log and video capture the entire flight.

Add symlink to latest logfile

Every time vision_landing is started it creates a new log file dated by date/time. Helpful to have a symlink to the latest logfile.

Create proper timesync mechanism

Currently there is an attempt to sync timestamps between FC and OBC extracting timestamps from mavlink messages and adding microseconds from local clock tick. This suffers from out of order mavlink message processing and doesn't take into account transmission latency.

Instead, use the mavlink timesync messaging, establish the roundtrip latency/offset, and use that as the basis for adding the local ticker. Call regularly to counteract drift.

Inconsistent PL log values

Get wierd xy values from PL log entries.

rmckay9 will look at logs:
ok. i wonder if maybe you could turn on logging-while-disarmed.. and then hold the vehicle so that it's nose up and tilted to the left.. maybe 10 ~ 20degrees.. and send me a dataflash log? Then I'll compare that to what I get out of IR Lock..

Add a local imshow display option

Output of track_targets is currently done through a gstreamer pipeline. For various reasons this isn't always desirable, an option to display output through imshow should also be available.

Logs not committing to file

When in actual flight mode, sometimes tail -f a log can see output but later the output is not present in the file, and the file is larger size than the contents indicate. Must be corrupted file somehow, probably by loss of power.

Add ROS adapter instead of vision_landing script

vision_landing python script is essentially a wrapper to track_targets that connects to the flight ontroller using dronekit. Another option is to connect track_targets with ROS and then consume the vectors through mavros.

Add info messages to track_targets

track_targets currently outputs marker id and translation vectors, also add ability to output info messages that can be picked up and displayed from vision_landing script.

Add output option for compressed filesink

Opencv seems to intercept gstreamer pipelines for anything with filesink or filename with .avi and write raw video to. Need to provide option to specify fourcc algorithm to compress video if going to file.

Add dynamic filename option

Vision logs have dynamic filename with timestamp but output doesn't, so will be overwritten every invocation.
Add an option to have file output with dynamic output.

Adapt arducopter to consume distance instead of faking rangefinder

Currently we have to send 'fake' rangefinder mavlink messages (distance_sensor) at a predefined frequency in order to create a 'healthy' generic rangefinder. This is a dependency of precision landing, so has to be done in conjunction with landing_target messages.

Potentially easier and safer to alter AC_PrecLand::update to consume the distance sent in landing_target rather than requiring rangefinder.

Add option to log to file from vision_landing

vision_landing running under systemd keeps only the last running instance logs under 'systemctl -u vision_landing.service -l'.
Need a better logging system, specify path in config file.

Add fps timer to track_targets

FPS time currently implemented from detected frames in vision_landing. Useful to know, but also would be useful to know how the main loop in track_targets is performing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.