Skip to content
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

Reactive DMP implementation for obstacle avoidance #230

Open
1 of 4 tasks
af-a opened this issue Mar 26, 2020 · 3 comments
Open
1 of 4 tasks

Reactive DMP implementation for obstacle avoidance #230

af-a opened this issue Mar 26, 2020 · 3 comments
Assignees
Labels

Comments

@af-a
Copy link
Contributor

af-a commented Mar 26, 2020

Problem description

The current DMP-based implementation of the move arm action uses open-loop, naive trajectory generation, which does not take obstacles into account. For example, if the robot attempts to pick an object off of a table, it will simply reproduce the given trajectory, regardless of whether that would cause the end-effector to collide with other obstacles on that table. This is not ideal in such cases and may lead to task failures.

Desired solution

The DMP formulation enables an effective obstacle avoidance strategy, discussed in detail in this publication, by adding an appropriate term in the differential equation governing the evolution of the variable (end-effector position).
Implementing this could be enhance the move arm action with real-time obstacle avoidance, assuming that the robot can perceive the positions of obstacles with reasonable accuracy.

Suggested courses of action:

  • Changing the way in which the trajectory is stepped though in the DMPExecutor. Instead of rolling out the whole trajectory, storing the end-effector coordinates, and then sending velocity commands in the control loop, we could generate individual steps of the trajectory within the control loop. We can call this online trajectory generation.
  • Adding 3D obstacle avoidance to the trajectory generation logic (following the referenced paper).
    • Implementing single object avoidance, by deriving a force profile from the estimated pose of the perceived object
    • Integrating multiple perceived objects in the avoidance strategy

Future

  • Implement fully reactive obstacle avoidance through continuous perception and motion adaptation, during trajectory generation. This will also enable avoiding dynamic obstacles.
@af-a af-a added the Type: Enhancement New feature or request label Mar 26, 2020
@af-a af-a self-assigned this Mar 26, 2020
@njanirudh
Copy link
Contributor

How do we expect the robot to find the obstacle? Is it manually set?

@alex-mitrevski
Copy link
Member

For now, we assume that the scene has been perceived, so the positions and bounding boxes of obstacles are known. In the long run, we would like to react to dynamic obstacles as well.

@af-a
Copy link
Contributor Author

af-a commented Apr 28, 2020

The first point was addressed in #231.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants