For the past few months I have been attempting to create this exact feature for my dissertation, bit of a shame I have only just found this, but from what I have done so far come to the same point as @rousselmanu, this has been partly driven by having to make the application simple enough for it to be marked by someone without the knowledge of the field. The plan was to use simulink and the PSP. However, I am now going attempt to go the route suggested by @LorenzMeier to make it a more relevant piece of work. Although the commander seems to have changed significantly. Are there any updates on the original works in this topic?
Hi @Ethan_Bond,
The throw/free-fall detection part is working and has been merged with master (see parameters LNDMC_FFALL_THR and LNDMC_FFALL_TTRI to tune the detection). I did not go much further than that, but would definitely be interested if we can collaborate.
ArduPilot has a âthrowâ mode, maybe we can learn from it even if it seems very experimental! See http://ardupilot.org/copter/docs/throw-mode.html
I noticed the free fall boolean when going through some data on drop tests I collected, and was curious where that had fed into the firmware. Needless to say I got very excited that a chunk of the project had already been completed, and then went on to find this topic. I will try and do a breakdown for the ardupilot code very soon. I have a report deadline on this due for Sunday so providing I get all my initial findings written up, it would be nice to add a breakdown of the ardupilot code to it. Then I will move on to getting my head around the commander module and hopefully get something to work in HITL.
Found another similar project being ran on the crazyflie seems pretty basic.
https://forum.bitcraze.io/viewtopic.php?t=1584, yet to look at it properly but look at it properly but as far as I am aware the crazyflie typically runs PX4.
UPDATE: Have made significant progress on the code, it has been a very simple case of editing land detection. I am not sure how the module will be controlled by Qground control yet, if someone could provide some in sight into how this is done that would be great. Otherwise for first test I will rely on execution via the terminal.
@Ethan_Bond would be happy to help if you can open a pull request against PX4/Firmware with your changes.
Having looked at my code for ages, I am going to scrap it, and integrate the logic into the commander loop as previously suggested, it was hideously overly complicated as I took modifying the land_detection too literally. Shouldnât take more than a day or so.
I did a lot of modifications to the program again, came up with something that essentially performs the hold mode when thrown, using acceleration in z as the trigger. The only issue is it doesnât like being thrown above 0.5m, it begins to break the fall, do attitude correction, then kills the thrust out to 0, then back to 100 then back to zero and so on randomly until disarmed. If you have any ideas I would love to know.
I will upload it as soon as I get chance, I just need to finish writing up my dissertation on this due tomorrow 11 pm eek, and then I have several engineering exams until the start of July I am still getting used to GitHub. My apologies for being such a huge pain in the ass and tease.
Here are my test results with regards to throw height didnât manage many before an ESCs got fed up, I performed the tests on a 250 racing quad with pixhawk cube 2.
What you need to do is let the land detector back off from disarming for a couple of seconds after you armed the system via the commander. Are you updating the system status to armed? I think at this point a pull request and logs (http://log.px4.io) are required. That will make it easy to have a technical discussion.
Hi,
Px4 throw launch mode was implemented and the test flight succeeded. QAV250 was used as airframe hardware platform, pixracer was used as flight controller hardware, and flight controller software was based on PX4 1.8.2.
According to the method proposed by rousselmanu, the procedure proceeded as follows.
- enable throw_launch mode by internal software variable.
- arm the UAV - motors are not started.
- switch to the mode you want (POSCTL)
- throw UAV into the air
- motors start as soon as freefall is detected, mortorr are started
- UAV is in the mode selected in 3 and flying.
@jhlee This is cool! Where can I get more information on this? Do you plan to contribute on the flight stack?
Happy new year.
Sorry for the late reply.
I referenced rousselmanuâs comment and modified Commander.cpp source.
In this situation, I need more source stabilization and test.
There is a plan to do so if given the opportunity to apply to the flight stack later.
Thanks
Based on the code by @rousselmanu [Quadrotor Launch Control (Throw launches) - #7 by rousselmanu], I have implemented similar behavior based on the current main branch: GitHub - zeroos/PX4-Autopilot at throw-mode .
I will continue working on it to make the code more refined and track the progress in this PR: [WIP] throw launch by zeroos ¡ Pull Request #21170 ¡ PX4/PX4-Autopilot ¡ GitHub .
If anyone has some suggestions please donât hesitate to share them!
Hi @mhkabir ,
I hope that finds you well.
I wonder what is the throw mode Development result so far? Is it already added to the flight mode options in PX4 or still? whatâs the status please?
If I yes ardupilot in QGC would the throw mode in Ardupilot work in QGC?
Regards
Hey Falcon,
Please check https://github.com/PX4/PX4-Autopilot/pull/21170 for the most recent discussion. It has not been yet merged to main branch of PX4, but weâve used it and it works for us. Hopefully, weâll soon find a way to have it merged.
Please keep in mind weâre talking about PX4 here. Ardupilot is a different firmware, which had this feature already implemented a while ago (see the beginning of this thread).
The throw launch feature has been merged!
Check out the documentation here: