Solo Smart Drone Lands Smartly: PART 2

Our precision landing Solo is flying great! :) This test rig has an IR-LOCK sensor (via I2C), an SF/10A rangefinder (via Serial), and is running a customized precision landing firmware based on APM:Copter (solo-rebase). The video above shows two vision-guided landings. The full 10-landing test sequence is shown below. The typical landing accuracy ranges from 0-10cm, even in moderate/gusty wind.

One of the primary challenges of designing a precision landing UAV system is the controls tuning. Every UAV has different flight characteristics, and finding the right PID (+EKF) parameters can be a painstaking process. So it is very helpful to have a popular, consistent hardware platform (e.g., Solo) to develop on. Solo flies nicely out of the box without significant parameter modifications. The precision landing performance is noticeably better than our IRIS+ platform, and our previous Solo test platform (w/out a laser rangefinder). In the 10-landing test sequence, the typical landing accuracy ranged from ~0-10cm. There was only one ‘failure’ (landing #5 out of 10), in which the copter landed far outside of the specified bounds. This will be analyzed and corrected via the controls code.

This test platform is running a customized precision landing firmware, which uses the vision-based localization data to actively manage the landing accuracy. You can read more about the code, and see previous testing here. USER BEWARE: this code is experimental, and it assumes that you have a reliable rangefinder connected. 

Customized Firmware: ArduCopter-v2.px4


Connecting IR-LOCK to Solo: article

Views: 2034

Comment by Thomas Stone on April 8, 2016 at 2:51pm

Perhaps, the Pixhawk code doesn't 'agree' with your companion computer and/or controller code. Have you checked if the firmware runs on a standard Pixhawk (i.e., just confirm that it starts up without freezing up)? Also, have you updated your Solo companion computer and controller computer?

I can't really say anything conclusively. Developing on Solo is still somewhat mysterious.

Comment by Thomas Stone on April 8, 2016 at 3:26pm

Also, this is really 'in the weeds', but I should note that this test had the IR-LOCK sensor connected via I2C bus 1 (i.e., shared with the magnetometer). The bus 2 sensor startup has not been tested with this rebased version of the code, and maybe it is causing a failure at startup for you. 

Bus 1 Connection:

I have added these notes in a release on Github.

Comment by John carff on April 8, 2016 at 7:24pm

i will check things out on Monday. Thanks for the help. first thing I will try is using i2C bus 1. Say I didn't have anything hook up, no pixy and no rangefinder, could that cause a problem because it is "looking" for them. The first drone I tried on had the rangefinder on serial2 and the pixy on i2C bus 2. the second drone I tried it on was a fresh drone that has never been modified, I simply uploaded the code and same effect. Thanks for the help.

Comment by Thomas Stone on April 10, 2016 at 12:02pm

Yes, there could be a error in the code when it tries to search on bus 2. For some reason, the solo-rebase no longer includes any explicit references to bus 2 in its APM init file. I don't have time to work on it right now, but I am pretty sure something needs to change here.

Comment by Savannah on July 5, 2016 at 10:26am

Hi John,

Can you please explain how you fixed your Solo? I'm having the exact same problem as you; I loaded the firmware into root@, rebooted, then after waiting 20 minutes or so for it to update I turned it off since the batteries were about to go. When I started it back up the lights stayed a solid green and I could not connect to the drone. I tried factory resetting and it was no use, the green lights are still there. I also did not have any sensors attached to the drone at the time that I attempted to flash the firmware. Any advice?

Comment by John carff on July 5, 2016 at 11:57am

First try this, there is another small button in the gimbal bay. Turn off the drone, hold down the button in the gimbal bay while you turn the drone back on... after a series of about 3 tone groups. let go and see if the drone will boot up and connect to the remote. latley this has worked for me. if that doesnt work i can go through the other process. Are you trying to setup the IRLock. If so i found that the reason it bricks is because it doesn't detect the irlock.

Comment by Savannah on July 5, 2016 at 12:16pm

Thanks for the quick response! I'm not having much luck with that procedure. The lights stay green and I'm having some trouble connecting the Solo to the controller. The controller screen shows "update completed" as I just factory reset it. I believe this means that it is no longer paired with the Solo, so perhaps that may be causing additional issues. If you don't mind could you explain the other process you went though?

Comment by Thomas Stone on July 5, 2016 at 3:03pm


This is Thomas from IR-LOCK. 

Here is our preferred setup/hardware/code for precision landing with Solo: link. It is fairly easy for us to setup a Solo/IR-LOCK (now). But when we got started with Solo, debugging was a pain. 

Also, we will eventually transition to the standard ArduCopter repository (i.e., ArduCopter3.4).

Comment by Savannah on July 6, 2016 at 10:58am


Thank you for your response! The link you provided is very helpful in showing what I'll be able to do once I get this Solo unbricked, so to speak. I'm still working on fixing the Solo due to its firmware update being interrupted. I've tried connecting my PC directly to the IMX6 via the accessory port, but I didn't have any way to view or manipulate the files on the system (or maybe I'm just not doing it correctly). I also tried connecting directly to the Pixhawk, and I received no input on the PC's side. 

@John carff

Also, to clarify I do intend on setting up IR-LOCK when I can get the Solo to boot up again. So far I've been trying to factory reset the Solo using the SSWT method, and from there I plan to load the original firmware onto the machine so that I can start from scratch and try again with the sensors attached.

Comment by Thomas Stone on July 6, 2016 at 9:56pm


Which firmware (Pixhawk2) do you have uploaded currently? Also, do you have an IR-LOCK Sensor connected on the I2C bus#1 (w/ magnetometer)?


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service