Falcon
June 20, 2018, 4:13am
22
Hi Ethan
Can you contact me or send me your email plz
jhlee
December 26, 2018, 5:15am
23
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.
https://www.youtube.com/watch?v=DWfNe7NPYl4
2 Likes
@jhlee This is cool! Where can I get more information on this? Do you plan to contribute on the flight stack?
jhlee
January 2, 2019, 2:22am
25
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
@jhlee Any updates on this?
mbarcis
February 20, 2023, 10:07am
27
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!
1 Like
Falcon
September 29, 2023, 12:43am
28
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
mbarcis
September 29, 2023, 9:06am
29
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).
1 Like
The throw launch feature has been merged!
PX4:main
← zeroos:throw-mode
opened 10:00AM - 20 Feb 23 UTC
This PR implements a throw-launch feature for multicopters: the ability to start… the drone by throwing it into the air. The drone should not spin the propellers while held in hand and only do that when airborne.
It is based on the discussions here: https://discuss.px4.io/t/quadrotor-launch-control-throw-launches/212
Technically, the feature is realized by locking the motors (i.e., preventing them from spinning) after the drone is armed and releasing the lock only when a fall down is detected. Then, the drone stabilizes according to the mode it is in.
The feature was tested both in simulation and real flight, an example flight log is available here:
https://logs.px4.io/plot_app?log=184b1c7f-e875-4937-a12d-c7dfca8e70aa (bad throw with lots of rolling, but the drone still recovers)
https://logs.px4.io/plot_app?log=c15d061c-538f-4134-85f8-83058882073e
The documentation is available here:
https://github.com/zeroos/PX4-user_guide/blob/f31812a7ac233697c24bd8223b7b3c7ba4914ab0/en/advanced_features/throw_launch.md?plain=1#L23
### Changelog
#### 20 Feb 2023
A first working version was tested both in simulation and reality.
#### 24 Feb 2023
The code was refined and more tests were conducted, sometimes the propellers slightly spin while arming. It's probably due to the fact that the locking of motors happens after arming and there might be a slight delay. Would be nice to modify the solution to take care of this.
#### 18 Apr 2023
I was slightly delayed due to some platform changes, but on the bright side, the feature was tested using two different drones (albeit very similar, as both are based on an X250 racer platform, one with Pixhawk 6 and the other one with Pixhawk 4).
Another factor that delayed the work was me trying to make "hold" mode work during the throw and change the setpoint while in flight. In the end, I concluded it's better to throw the drone in the "position" mode as it behaves more predictably even when the position estimate is imperfect due to the throw.
There were also some changes done during this iteration, they revolved mainly around suppressing automatic disarming during the throw. I also needed to allow the position controller to skip the "takeoff" phase when freefall is detected after arming.
Added flight log from a successful flight.
#### 24 Apr 2023
I've added the documentation and tested everything once more. Looking forward for feedback!
Squashed all commits; the full history is here: https://github.com/zeroos/PX4-Autopilot/tree/throw-mode-history
#### 25 Apr 2023
I've realized some automated tests were not passing. Now, they should be fine.
I also rebased the branch to be on top of the current main branch and performed another flight test to make sure everything is still good. The flight log is attached to this message.
#### 15 Aug 2023
Rebased the code on top of the most recent PX4 version and provided new logs. The old logs are here:
https://logs.px4.io/plot_app?log=5583e2c8-ec95-41aa-abdd-873a09df5477 (before rebase to main, 18th of April),
https://logs.px4.io/plot_app?log=484e9ee6-751d-4bd4-a123-6b8d33d46652 (after rebase on the 25th of April).
### TODO:
- [x] add parameter to enable/disable the feature
- [x] replace throw_mode to throw_launch across the code
- [x] come up with a way to keep the "auto disarm" feature still working
- [x] replace debug prints with some useful information
- [x] consider adding some beeps when the drone is armed, but motors are locked
- [x] try to find someone experienced who can confirm this way of locking motors (and unlocking) is okay
- [x] propose a safety mechanism to make sure the drone does not start if accidentally dropped
- [x] modify the code to prevent the slight movement of the motors after arming
- [x] provide documentation
- [x] modify the PR to work with the main version of PX4
- [x] provide new flight logs
Check out the documentation here:
PX4 is the Professional Autopilot. Developed by world-class developers from industry and academia, and supported by an active world wide community, it powers all kinds of vehicles from racing and cargo drones through to ground vehicles and...