Servers by jDrones

Indoor flight with external navigation data


(Chobitsfan) #1


For autonomous indoor flight, My first try is using optitrack motion capture system to simulate GPS coordinates to copter. The basic idea is to transform motion capture system local coordinate to GPS WGS84 coordinate and use GPS_TYPE=MAV(14) to feed GPS data to copter. The test result is here, it works ok. However there is a problem with this approach. It still need magnetometer/compass onboard copter to navigate. But compass performance could be very unstable due to many indoor interference, for example, air condition. and loudspeaker.

Thanks to @priseborough and @peterbarker really great work, we can feed both position and orientation data to copter from external source. So that copter can fly autonomously without magnetometer. I use use mavlink message ATT_POS_MOCAP to send external nav data to copter through wifi (COMPASS_USE = COMPASS_USE2 = COMPASS_USE3 = 0, EK2_GPS_TYPE=3). The reason why I use ATT_POS_MOCAP instead of VISION_POSITION_ESTIMATE is that former accept quaternion and later accept euler angles. Because optitrack data API ouput quaternion. I do not need to convert it to euler angles.

Here is my test flight video. It is a parrot bebop running ardupilot master. It is auto takeoff in loiter mode and then switch to circle mode. The result is quite well and reliable (no magnetic interference from indoor environment)

Position Hold with VISION_POSITION_ESTIMATE and ATT_POS_MOCAP for indoor localization
Best Contribution of the Month, May 2018
(peterbarker) #2

Please note that I just provided plumbing for other people’s work - most
notably, of course, @priseborough’s.

This is so, so cool! Hopefully we can get this to the point that your
work is trivially replicable so people can push the technology forward.


(rmackay9) #3

Really excellent work! It’s extremely stable! I’m super happy to see people making use so quickly of the efforts we put into improving our consumption of the mavlink vision-position-estimate messages.

(Chobitsfan) #4

Note: auto takeoff only works in loiter mode

(Chobitsfan) #5

Another test flight video, Two copters fly in circle mode, face to face

(Andrea Belloni) #6

@chobitsfan congratulation for your work!

It would be awesome to see something similar but using some kind of Visual Odometry (ie. SVO) feeding VISION_POSITION_ESTIMATE message instead of Motion Capture.

This is in my ToDo list but for me is an hobby and I have so little time to spend in this. Maybe sooner or later I will succeed. :slight_smile:


(Chobitsfan) #7

I got it. Thank you :slight_smile:

(Kazumoto Kojima) #8

Cool flights! Highly impressed.
I’ve tried VICON_POSITION_ESTIMATE with my poor man’s indoor positioning system, too. It looks working fine.
Thanks for these great works!

(Tiziano Fiorenzani) #9

That is very good. It would be better if you shared the code and maybe create a sort of Tutorial. I feel there is a dramatic lack of good tutorial on this matter…