How can I say to the global planner of move_base to don't pass for a certain point?
Good evening, I'm developing a software using ROS but I have a problem. When my robot is autonomously navigating can happend that he get stuck because of an unseen obstacle like a little rock or an hill ( I have a 2D representation of the map ) and he keep trying pass for the obstacle point without success. I thought to say to the robot to step back of some centimeters and mark the obstacle as occupied cell in the costmap in a way that the the global planner can calculate a new path knowing that there is a new occupied cell. The problem is that I don't know the whole map and, while navigating, so the map is updated everytime and when I receive an OccupancyGrid message from rtabmap, all customized marked point will disappear.
Enviroment: - gazebo: the simulator with the robot and the map - rtabmap: provide 2D costmap - move_base: for autonomous navigation - navigation.py: my node for manage the navigation
I'm not sure that saving this points and updated all time the costmap can work and create a situation to test it is really difficult.
Moreover I try to active the recovery behavior by sending: rostopic pub /movebase/recoverystatus movebasemsgs/RecoveryStatus "posestamped: header: seq: 0 stamp: secs: 0 nsecs: 0 frameid: '' pose: position: x: 0.0 y: 0.0 z: 0.0 orientation: x: 0.0 y: 0.0 z: 360.0 w: 360.0 currentrecoverynumber: 0 totalnumberofrecoveries: 0 recoverybehaviorname: 'rotaterecovery'" -r 1
but I only receiver the message and the robot doesn't rotate. When it activate on his own this behavior, it work, but it's difficult to recreate a scenario when it get stuck and active it on his own.
Asked by Jacopo on 2023-04-17 02:28:52 UTC
Comments