Turtlebot bumper
Hi,
I am setting up a Turtlebot on Indigo. Whenever the robot hits an obstacle it starts shacking (driving forward and backwards quickly). It does not matter whether I am driving with keyop or with a navigation planner. My two most important launch files look like this:
<launch>
<!-- Run TF setup -->
<include file = "$(find my_robot)/launch/sensors/tf_transformations.launch" />
<!-- Run laser node -->
<include file = "$(find my_robot)/launch/sensors/lasersensor.launch" />
<!-- Bring up turtlebot -->
<include file = "$(find turtlebot_bringup)/launch/minimal.launch" />
<!--- Run AMCL and map_server-->
<include file = "$(find my_robot)/launch/navigation/amcl.launch" />
<!-- Run move base framework -->
<include file = "$(find my_robot)/launch/navigation/move_base.launch" />
</launch>
And the move_base launch file is
<launch>
<!-- Run smoother and safety controller -->
<include file="$(find turtlebot_navigation)/launch/includes/velocity_smoother.launch.xml"/>
<include file="$(find turtlebot_navigation)/launch/includes/safety_controller.launch.xml"/>
<!-- Run move base framework -->
<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
<rosparam file="$(find my_robot)/param/costmap_common_param.yaml" command="load" ns="global_costmap" />
<rosparam file="$(find my_robot)/param/costmap_common_param.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find my_robot)/param/local_costmap_param.yaml" command="load" />
<rosparam file="$(find my_robot)/param/global_costmap_param.yaml" command="load" />
<rosparam file="$(find my_robot)/param/base_local_planner_param.yaml" command="load" />
<remap from="cmd_vel" to="navigation_velocity_smoother/raw_cmd_vel"/>
</node>
</launch>
All velocity outputs are correctly mapped to either
/cmd_vel_mux/input/navi
/cmd_vel_mux/input/safety_controller
/cmd_vel_mux/input/teleop
Assuming that the Turtlebot is brought up, I can push the bumping-detector and it drives back for about 3 cm. If I use teleop and drive it into an obstacle, the safety controller publishes one message on the /cmd_vel_mux/input/safety_controller topic but very shortly after that also a forward velocity is published to /cmd_vel_mux/input/teleop (because thats what I tell it to do). In that case it only reverses 1cm and immediately bumps into the obstacle again.
This is quite bad because if it hits an obstacle once, it will be stuck in this forward-backward shacking movement forever. Can I change this behavior?