Thank you very much for the detailed collision avoidance tutorial, it has been very helpful for getting started. For some context, I’ve made a hand+table collision model that looks at whether the pinky or thumb might collide with the table. When the hand is open in a palm down pose, we would set a slightly higher lift_lower_limit compared to when the hand is supinated 90 deg (karate chop). This is because the hand makes a C-shape in an open pose (thumb points away from the palm).
Some problems I ran into:
- The RobotCollisionManager does not allow setting joint limits that are less conservative than the current soft_motion_limits of that joint. This was problematic for our application because we would want to set a less conservative lift_lower_limit when the hand was in a karate chop pose compared to palm down pose.
- The enable/disable_model methods did not seem to be working as intended. The models_enabled flags seem to only be used on startup but are not checked in step().
- Would it be possible to add an option for set_soft_motion_limits() to not modify one or both limits? Currently, it feels a bit unintuitive to use:
(or maybe just add a line in the collision avoidance tutorial for future users).
- Renaming class RobotCollision to RobotCollisionManager like it is described in the comments for clarity.
Thanks for your help!