-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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
Fix and rewrite collision prevention #22464
Comments
/bounty $500 |
|
As mentioned in #22312 (comment), there I think we should make a distinction between Obstacle Avoidance via Companion Computer vs Collision Prevention within PX4. I'm quite surprised that the Collision Prevention doesn't work so well currently (excluding Manual Acceleration case, which was never supported). Will check it out! |
This issue has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: https://discuss.px4.io/t/px4-bounties-are-here-solve-an-issue-receive-a-reward/35604/1 |
@AlexKlimaj https://github.com/PX4/PX4-Avoidance was already using VFH, but also probably broken. Is this concerning collision prevention? or obstacle avoidance? Obstacle avoidance never really existed on the PX4 level and usually hard to achieve with reactive methods in general. There has been recent interest on reactive avoidance methods using Riemannian Motion Policies in academia(e.g. https://ieeexplore.ieee.org/abstract/document/10161365), but require a dense lidar to work reliably. |
I tested the collision prevention feature today with a setup similar to this one #22418 @AlexKlimaj can you explain more details on missing/broken features? It does not work when in 'Manual acceleration mode', but I guess the reason why it has never been implemented is because of the speed limitation required for the algorithm to work correctly (yet I'm not completely sure). |
This issue has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: https://discuss.px4.io/t/using-obstacle-distance-uorb-msgs-for-collision-prevention/37524/8 |
@OgnjenX the broken part of collision prevention is that the guide angle tuning doesn't work. But also not working with the default MPC_POS_Mode probably doesn't help either. Collision prevention should not only stop the vehicle but also give setpoints around the obstacle to "slide" past the obstacle. I believe it was intended as a middle ground between basic obstacle detection and stopping and a full fledged companion computer that incorporates a nav stack/planner. |
/attempt #22464 Options |
/attempt #22464 Options |
💡 @Claudio-Chies submitted a pull request that claims the bounty. You can visit your bounty board to reward. |
@Claudio-Chies Great work! Let me figure out how to award the bounty. |
🎉🎈 @Claudio-Chies has been awarded $500! 🎈🎊 |
🎉🎈 @Claudio-Chies has been awarded $500! 🎈🎊 |
@AlexKlimaj Thanks alot! |
Describe problem solved by the proposed feature
Currently collision prevention in PX4 is broken.
Describe your preferred solution
Move to vector field histogram (VFH) algorithm.
Don't hit obstacles that you can see, apply negative force to push drone away if within minimum distance, only apply allowed components of sticks vector while up against the invisible wall
Handle arbitrary obstacle_distance message formats, ie allow greater than or less than 10 degree angle step sizes, allow more or less than 36 sectors
Work in the default position mode (manual acceleration
Another nice option would be params (reboot required) to adjust number of sectors, so you can have bigger/smaller resolution if you have the memory/cycles for it. Maybe set defaults scaled to each hardware platform.
It should work with distance_sensor and obstacle_distance as uorb inputs.
Describe possible alternatives
Remove collision prevention from PX4 and expect it to be done on the companion computer in offboard mode.
Additional context
No response
The text was updated successfully, but these errors were encountered: