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

Copter: object avoidance should support "stop" in addition to "slide" #5606

Closed
rmackay9 opened this Issue Jan 24, 2017 · 4 comments

Comments

Projects
None yet
3 participants
@rmackay9
Contributor

rmackay9 commented Jan 24, 2017

Copter's current object avoidance is built on the stop-at-the-fence feature which allows the vehicle to slide along the fence barrier. This is perhaps OK for the fence but for object avoidance it is sometime unnerving for the pilot to see the vehicle moving around as it reaches a barrier. Instead it might be more confidence inspiring for the vehicle to simply stop.

We should add a new parameter to AC_Avoidance which allows the user to choose the behaviour, "Slide" or "Stop".

@rmackay9 rmackay9 added the Copter label Jan 24, 2017

@rmackay9 rmackay9 changed the title from Copter: object avoidance should support "stop" and well as "slide" to Copter: object avoidance should support "stop" in addition to "slide" Jan 24, 2017

@dricketts

This comment has been minimized.

Show comment
Hide comment
@dricketts

dricketts Feb 3, 2017

Contributor

@rmackay9 In case it's helpful, here's the original implementation I did for the geofence, which has the stop policy instead of the slide policy: https://github.com/UCSD-PL/ardupilot/blob/geofence/libraries/AC_Avoidance/AC_Avoid.cpp.

It has some dumb ideas in it. In particular, if the fence is violated, the vehicle moves back towards the last position it held inside the fence. This is a bad idea. Instead, there should be a buffer (as in the current fence), which should be subtracted from the distance to the fence on line 30. Of course, an actual fence violation should cause a failsafe action.

I'm putting the code here instead of in a pull request because it probably doesn't build again the latest master, and I won't have time to fix it in the near future.

Contributor

dricketts commented Feb 3, 2017

@rmackay9 In case it's helpful, here's the original implementation I did for the geofence, which has the stop policy instead of the slide policy: https://github.com/UCSD-PL/ardupilot/blob/geofence/libraries/AC_Avoidance/AC_Avoid.cpp.

It has some dumb ideas in it. In particular, if the fence is violated, the vehicle moves back towards the last position it held inside the fence. This is a bad idea. Instead, there should be a buffer (as in the current fence), which should be subtracted from the distance to the fence on line 30. Of course, an actual fence violation should cause a failsafe action.

I'm putting the code here instead of in a pull request because it probably doesn't build again the latest master, and I won't have time to fix it in the near future.

@3dxhobbies

This comment has been minimized.

Show comment
Hide comment
@3dxhobbies

3dxhobbies Mar 16, 2017

Can this be added to rover as well?

3dxhobbies commented Mar 16, 2017

Can this be added to rover as well?

@rmackay9

This comment has been minimized.

Show comment
Hide comment
@rmackay9

rmackay9 Mar 16, 2017

Contributor

@3dxhobbies, I certainly hope we can add this object avoidance to rover as well. It's a chunk of work but there's definitely some interest. We just need to gather up the developer resources to do it.

Contributor

rmackay9 commented Mar 16, 2017

@3dxhobbies, I certainly hope we can add this object avoidance to rover as well. It's a chunk of work but there's definitely some interest. We just need to gather up the developer resources to do it.

@rmackay9

This comment has been minimized.

Show comment
Hide comment
@rmackay9

rmackay9 Feb 13, 2018

Contributor

This is done in master and will go out with Copter-3.6

Contributor

rmackay9 commented Feb 13, 2018

This is done in master and will go out with Copter-3.6

@rmackay9 rmackay9 closed this Feb 13, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment