-
Hi, I am currently wrote a simple node that use the IR sensor to allow the Create 3 robot to follow its front obstacle but keep a fixed distance (around 10 cm). If the obstacle moves forward, the robot follows, and if the obstacle moves backward the robot backup accordingly. I am using a PID controller to generate continues motion command and send it to |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 11 replies
-
This is not the expected behavior. In particular, note that you can change safety settings using a ROS 2 parameter service call, rather than the webserver.
Similarly, you can query the current safety value from a running robot using
Would you mind trying again using these calls and verifying that the parameter is set as expected? |
Beta Was this translation helpful? Give feedback.
-
I have found success if I set the safety override parameter to full when I spin the node. Here is the link to an example code I wrote that does that. The specific function is set_params() and then I call that function as soon as I initialize the node in the main() function. https://github.com/tuftsceeo/Tufts_Create3_Examples/blob/main/Projects/Penalty_Shootout/penalty_kick.py |
Beta Was this translation helpful? Give feedback.
-
Would you be willing to provide your python file which trips this problem? We're actively trying to reproduce it, now. |
Beta Was this translation helpful? Give feedback.
-
When the reflexes are enabled, and one is triggered (like, say, proximity slowdown,) the robot re-enables safety (that is, it temporarily sets the safety-override to none). I think your script can be made to work if you disable reflexes.REFLEX_PROXIMITY_SLOWDOWN (ros2 param set /motion_control reflexes.REFLEX_PROXIMITY_SLOWDOWN false), or just disable all the reflexes altogether (ros2 param set /motion_control reflexes_enabled false). It is our plan for a subsequent release to not re-enable safety with the proximity slowdown in particular. |
Beta Was this translation helpful? Give feedback.
When the reflexes are enabled, and one is triggered (like, say, proximity slowdown,) the robot re-enables safety (that is, it temporarily sets the safety-override to none). I think your script can be made to work if you disable reflexes.REFLEX_PROXIMITY_SLOWDOWN (ros2 param set /motion_control reflexes.REFLEX_PROXIMITY_SLOWDOWN false), or just disable all the reflexes altogether (ros2 param set /motion_control reflexes_enabled false). It is our plan for a subsequent release to not re-enable safety with the proximity slowdown in particular.