Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vision Landing 2 #125

Open
wants to merge 24 commits into
base: master
Choose a base branch
from
Open

Vision Landing 2 #125

wants to merge 24 commits into from

Conversation

kripper
Copy link

@kripper kripper commented Mar 20, 2023

  • Implements AprilTags
  • Supports multiple markers pointing to a relative Landing Point (not necessarily placed on a marker center). This also prevents bouncing between marker centers.
  • Adds a JSON config file (but old config file has not been migrated yet).
  • Kills the track_targets sub process if vision_landing crashes.
  • Implements alternative input using a named pipe frame grabber
  • Many bug fixes

- Implement AprilTags
- Support multiple markers pointing to a relative Landing Point (not necessarily placed on a marker center). This also prevents bouncing between marker centers.
- Add JSON config file
- Kills the track_targets sub process if vision_landing crashes.
- Implements alternative input using a named pipe frame grabber
- Many bug fixes
@fnoop
Copy link
Member

fnoop commented Mar 21, 2023

This is great thanks :)
I would normally expect to see something like this broken up into smaller PRs because otherwise it's hard to review/merge/revert, but in this case might be difficult to do so. I'll have a closer look as soon as I can, thanks very much for all the work :)

@kripper
Copy link
Author

kripper commented Mar 21, 2023

You're welcome.
track_targets.cpp has minimal changes.
The main implementation is in appiltag-detector.cpp

@fnoop
Copy link
Member

fnoop commented Mar 21, 2023

So does appiltag-detector.cpp deprecate the python vision_landing altogether? There is quite a lot of testing and prior bugfixing/testing/drones-smashing-into-walls knowledge that has gone into it.

@kripper
Copy link
Author

kripper commented Mar 21, 2023

No. The python "front end" is still used to receive the tracked data from the detector "back end".
I kept everything backwards compatible, since my goal is to build a community working with one single project. I'm now bringing more people to this and related projects.
The Aruco code is also still there. Actually, we are using the same camera parameters loaded with the Aruco library for the AprilTags.

We are now dealing with your "Psycho Wasp Syndrome" issue (BTW, why this name?):
RosettaDrone/rosettadrone#132

Also take a look here:
mavlink/mavlink#1943

There are references to EKF implementations and maths.

@fnoop
Copy link
Member

fnoop commented Mar 23, 2023

@kripper - I've just noticed that vision_landing is marked as GPL3 which is a mistake - all goodrobots code is supposed to be MIT. I'm going to relicense the code, so if you would like to re-fork and patch after the relicensing that's your choice obviously. Generally more permissive licensing is better, at least from our point of view :)

@kripper
Copy link
Author

kripper commented Mar 23, 2023

Ok

@kripper
Copy link
Author

kripper commented Mar 30, 2023

Added --get-offset and more instruciones in the README.
"Vision Landing 2" is now part of the RosettaDrone community.

vision_landing:
- Integrated SmartLanding algorithm framework (for computing landing trajectory and analyzing drone dynamics, generate real time graphs, etc)
- Added "stats" class to measure drone dynamics
- Use drone's yaw (sent together with the image)
- Added state machine to perform dynamic tests and perform landing.
- Fixed signal handling for clean shutdown.
- Enhanced console messaging

track_targets.cpp:
- Moved apriltag.* sources (changed directory structure)
- Replaced piped-buffer for raw tcp video receiver

config.json:
- Updated configuration for detecting new mavlink-camera-simulator's AprilTag
TODO: Repeat calibration, since it wasn't optimal.
- Added maxLandingAltitude
- Added code to take off and ascend
- Exit after landing
- check if track_targets is not running
- run track_targets independent of cwd
- include SmartLanding module independent of cwd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants