GPS-denied Position-hold w/ 3DR Solo

giphy_2.gif?4149345265082828823

15 Minutes of Vision-based position-hold with 3DR Solo: This is the first iteration of a vision-based position hold controller. This initial implementation is simply a roll/pitch angle PD controller. However, it works surprisingly well after limited tuning.

The video shows a full flight with limited pilot input (during take-off and landing only). During the ~15min flight, the copter autonomously loiters above the beacon placed on the ground. Wind gusts push the copter around, but no pilot corrections were required. Thoughts on controls improvements are included below.

The current system is fully-functional in any lighting condition (night/day) up to altitudes of 15 meters. The system iuses object-recognition, which eliminates position drift over time, enabling GPS-denied autonomous flight for extended periods (i.e., much longer than the battery will last).

FLIGHT LOG FILE:

32.BIN

3689690644?profile=original

3689690575?profile=original

3689690765?profile=original

HARDWARE:

3DR Solo (*disconnected GPS)

IR-LOCK Sensor (*custom-calibrated)

MarkOne Beacon

SF Rangefinder

SOFTWARE:

Modified ArduCopter-Solo Code (post-rebase)

3689686475?profile=original

CONTROLS IMPROVEMENTS:

As aforementioned, the current iteration of the controller is simplistic, and is sensitive to wind gusts. The object recognition and rangefinder readings are used as input to the roll/pitch angle PD controller. The controls performance could be improved via more sophisticated sensor fusion and filtering. It should also be noted that this demo includes a custom-calibrated sensor/lens, which we use for particular commercial projects. This calibration should be improve further in future iterations. 

YAW/HEADING ISSUES:

After disconnecting the GPS module and modifying the flight code, the heading state estimated by the flight code drifts in a strangely consistent manner. During the 15 minute flight, the copter slowly makes a 360 degree yaw rotation. This needs to be investigated further (see log file linked above). Perhaps, the issue can be solved with some simple parameter modifications.

Stay tuned for more details and updates by signing up for the IR-LOCK Newsletter: http://eepurl.com/bil0RH

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • @Roberto

    Thank you for your efforts to push this development forward, but I am probably not the best guy to add to the optical flow development. The IR-LOCK system is an object recognition and localization system, not a velocity estimation system. I am much more familiar with the former, rather than the latter.

    Actually, we would love to add the optical flow sensor to our projects, whenever possible. The extra velocity estimations will be very nice. And we already have the Rangefinder installed (which is also required for optical flow).

    @benbojangles

    I honestly don't have anything against optical flow, but it doesn't meet the requirements of our current projects. In particular, we need (a) ~zero position drift over extended periods of time and (b) functionality in all lighting conditions.

    IR-LOCK is an object recognition and localization system. Optical flow is a velocity estimation system. One approach is not always better than the other. It depends on the application. 

  • was going to say 'why not 'optical flow' but Mr Navoni beat me. Still, I'm sure IR tracking has good uses for perhaps forward loiter tracking, vehicle following?

  • hola Thomas, we have a very nice project with this kind of function : we need to inspect fire detector inside plants roofs in very high altitude (like 10 meters). I was thinking about using your beacon and put it right below the sensor and ask the drone to get up staying everytime below the beacon, the time to spray a smoke and turn on (or not) the alarm. Am I correct ?

  • Moderator

    @Thomas as i already told to Randy , Philip and other member of the team the real limit is that optical flow is alternative to GPS and you cannot switch from one mdoe Optical flow to GPS and vice versa so could be nice join force to improve this part of ardupilot code. 

    best

    Roberto 

This reply was deleted.