-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add feature / plugin for parachute testing #33
Comments
@41Mo, if you rebase your topic branch https://github.com/41Mo/ardupilot_gazebo/tree/parachute on Not a hard requirement, but if you could name your topic branches:
that helps keep things organised on my side when I pull your branch in for review. Edit Rebased version here - https://github.com/srmainwaring/ardupilot_gazebo-1/tree/41Mo/parachute |
Initial thoughts:
We can reuse the existing COMMAND control type for the parachute deployment. This was added to forward PWM levels onto the thruster plugin for a ROV, but I think we can use the same approach here rather than add a new command type and additional fields to the The following would send the output of <plugin name="ArduPilotPlugin" filename="libArduPilotPlugin">
...
<control channel="4">
...
<type>COMMAND</type>
<cmd_topic>zephyr/parachute/deploy</cmd_topic>
...
</control>
</plugin>
It may not scale well having this plugin attached to the world. The parachute is attached to a model, so the plugin should be too. Still working through the implementation details so will update this section in due course... |
I completely agree. |
It looks like a good start - I don't think the COMMAND type was there when you developed the plugin. I'll experiment with what you've done to see if I can get the plugin localised to a model. Would you mind jotting down some instructions how to run an example - I'm not familiar with the parachute deployment function in ArduPilot. A list of terminal and mavproxy commands would be a great help. |
@41Mo, I have a slightly modified version of your plugin running - it's very nice! Great work with the detachable joints. I've made a few cosmetic changes - mainly moving implementation details into a private class in the C++ file and some formatting details to keep cpplint happy. Next steps:
Figure: Initial version of parachute plugin. Parachute pose is not correct, but model is being created on manual trigger and parachute drag is apparent. parachute_test_1-2_480p.mov |
Glad to hear it. |
@41Mo - posted a PR building on your initial version. Would appreciate your feedback and testing if you get a chance. It's stripped down to minimal functionality. Can add the detach commands back in if required (but I don't think ArduPilot supports that - so I left it out of this version). |
@srmainwaring Detach is not required. |
Thanks. The main issue I found was that for certain choices of the release pose the collision engine would crash (hard assert and exit signal). I think this was because the original inertial for the parachute resulted in an instability arising from the impulse generated if the chute and vehicle collided before the joint was created - setting a pose directly rather than indirectly through applied forces can sometimes cause these instabilities. I reworked the collision (it is now a sphere with diameter of the canopy) and recalculated the inertial and set the CoM at the collision origin. This seems to have fixed the issue, but would be interested to know if it breaks for some inputs choices. |
Feature request
It would be nice to be able to test parachute release with gazebo.
We could make something similar
px4 gazebo plugins already have this feature, but for gazebo-classic
I have made my own implementation, but its poorly written
ParachutePlugin.cc
Platform
[ ] All
[ ] AntennaTracker
[ ✓ ] Copter
[ ✓ ] Plane
[ ] Rover
[ ] Submarine
The text was updated successfully, but these errors were encountered: