Comments (9)
Ok, I saw your comments in other issue, but would still like to know the current updated status.
BTW, tonight I was thinking in modifying your code to:
- keep a cache of last drone positions indexed by timestamp
- calculate the timestamp when the processed image was captured (delays)
- use this info to calculate the corrected position of the markers (relative to where the drone was at the time the image was captured)
- extrapolate the future position of the markers (consider the target could be moving)
- move the drone considering the future position of the marker
from vision_landing.
Should we better work with Ardupilot's prec landing code?
For our use case, it would be ideal to work with code that is independent from other stuff we don't need.
As an alternative, we could write some kind of facade to take the precision landing code only.
What about your Maverick project? Maybe you could also be interested in something like this, ie. a wrapper or facade to reference upstream's ardupilot prec landing code so we can contribute directly upstream.
from vision_landing.
Should we better work with Ardupilot's prec landing code?
I checked Ardupilot's code and didn't find any visual landing algorithms. Just found irlock support and a basic Python example script for aruco detection.
It seems like this repo (vision landing) is the right place to contribute.
Or is there any ardupilot fork with work in progress?
from vision_landing.
I'm switching to Apriltag.
Please let's merge projects:
chobitsfan/apriltag_plnd#1
from vision_landing.
Hi, I am still alive but haven't been involved with drones for a while :)
In a nutshell:
- Ardupilot precland is the autopilot side of the code - it deals with taking in sensor output (or output from a companion computer in this case), translating the fiducial marker 2d camera marker angles into 3d position from the drone pose.
- This project (vision_landing) deals with taking vision input, processing the input, finding the markers, outputting the angles in a manner expected by Ardupilot over mavlink.
- So they are two halves of the same problem - they both need to exist to solve the problem of precision landing.
- The project as you've seen is a mishmash of python and c++. The reason for this was actually that it was originally a tech experiment/demo to interface c++ with the arudpilot python dronekit - this was something that a number of people at the time were looking for, in order to interface opencv and other projects to dronekit.
- In retrospect it was a mistake in terms of the particular goal of vision_landing. Python alone would probably suffice just fine, and would have been significantly simpler, and probably fast enough.
- chobitsfan approach is quite a different approach, more similar to px4 approach.
- There are significant challenges outside of just sending a position - timings, latencies, filtering, higher level processing, user interface, support lots of different devices and image capture methods, etc etc
- There was a particular PR to solve a vital issue that never got implemented and I had been trying to get this resolved for so long that I basically gave up and moved on with life at that point..
I have very little time currently but I'll try and go through the various issues and forum threads and add comment/add notes here for you to follow. The warning at this top of this project is a little dramatic but it was to stop random people crashing/chopping fingers off. It certainly has worked very well for numerous people.
from vision_landing.
Hi @fnoop,
- There was a particular PR to solve a vital issue that never got implemented and I had been trying to get this resolved for so long that I basically gave up and moved on with life at that point..
Which PR or issue was that?
Ok, we have a similar warning on RossetaDrone so people don't cry and blame us.
I'm already familiar with all the vision landing code base.
I just integrated AprilTag into track_targets
and I'm testing it now.
I will also modify track_targets
to 1) handle multiple detected markers at the same time and 2) compute a common landing target relative to all markers.
I decided to work on vision landing
instead of starting a new project from scratch and also contacted @chobitsfan because I want to bring both communities and individual efforts together into one single evolving project.
Do you think you will continue playing with drones in the short term?
If you will be away for some time I would be happy to keep the vision landing project alive and release a new version with improvements, close issues and try to attract more people like I have been doing on RosettaDrone.
from vision_landing.
This forum thread tracked my efforts at the time:
https://discuss.ardupilot.org/t/ac-precland-improvements-and-updates/31614
This is the outstanding PR:
ArduPilot/ardupilot#9020
It's very important, because you will always have varying latencies in embedded lower power computers when processing the incoming images. Without reliable latency correction, there will always be dangerous results (nickname psycho wasp for the dangerous moves that result).
I'd love to get back into my drones, I have all my kit in the garage. It's been a few years since I've flown anything will take me a couple of weeks to get stuff rebuilt and tested. It would also be great to update it and would welcome any input and efforts :)
from vision_landing.
Merge is ready. I'm doing tests before releasing.
I also started addressing the latency drift you described.
In our case, we will also have to implement the motion control on our own:
RosettaDrone/rosettadrone#132
Please comment there.
from vision_landing.
Here is the result:
https://github.com/kripper/vision-landing-2/
from vision_landing.
Related Issues (20)
- Add mavlink target fields to TIMESYNC and LANDING_TARGET
- Could you give 1 more line of description in your warning? HOT 2
- Take timestamp as close to shutter as possible HOT 4
- track_targets takes long time to shut down HOT 2
- Python ThreadedReader queue building up HOT 1
- Add config param for PLND_EST_TYPE
- Aruco camera calibration not working
- Vision Landing on raspberry Pi3 B+ HOT 2
- Migrate to python 3
- Update vision_landing.conf sample config HOT 1
- Create better default values for threshold/history HOT 1
- global name 'timespec' is not defined HOT 3
- aruco make / install instructions incorrect HOT 3
- Migrate to apriltag HOT 3
- Nothing happens when I run sudo systemctl start vision_landing HOT 1
- Error while running cmake . && make && make install
- Can this run on jevois ?
- Define a landing point relative to all markers HOT 2
- Licensing change
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vision_landing.