ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Navigation issue

asked 2018-12-18 06:56:27 -0500

Aviad gravatar image

updated 2018-12-19 18:28:04 -0500

jayess gravatar image


I can't figure out why my real robot does not stop when it arrives close to its goal. that is my configurations:

I have kinetic distro, ubuntu 16.04 real_sense d435 to make Laserscan topic, encoders for the odometry.

main launch file:

<?xml version="1.0"?>
<arg name="move_base"              default="true" />
<!--load platform 3d model-->
<!--<include file="$(find arl_description)/launch/newurdf.launch" />-->

 <!-- bringup realsense camera -->
  <group ns="camera">
    <include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml"/>

<!--camera tf-->
<node pkg="tf" type="static_transform_publisher" name="camera_link_arl" args="0.15 0 0.2 0 0 0 base_link camera_link 30" />

<!-- Laser topic -->
    <node pkg="depthimage_to_laserscan" type="depthimage_to_laserscan" name="depthimage_to_laserscan">
        <remap from="image" to="/camera/depth/image_rect_raw"/>
        <remap from="camera_info" to="/camera/depth/camera_info"/>  

<!-- encoders odometry -->
    <include file="$(find arl_description)/launch/physical_odometry.launch" />

<!--load rtabmap mapping-->
<include file="$(find arl_description)/launch/rtabmap_realsense.launch" > 
<arg name="localization"            default="true"/>
<arg name="mapping"                 value="false" />

 <arg name="rtabmapviz"              default="false" /> 
 <arg name="rviz"                    default="true" />
  <arg name="frame_id"               value="base_link" /> <!--kkk-->
  <arg name="rgb_topic"               default="/camera/color/image_raw" />
  <arg name="depth_topic"         default="/camera/aligned_depth_to_color/image_raw" /><!--was aligned-->
  <arg name="camera_info_topic"       default="/camera/color/camera_info" />

 <!-- ROS navigation stack move_base -->
     <node if="$(arg move_base)" pkg="move_base" type="move_base" respawn="true" name="move_base" output="screen">
        <rosparam file="$(find arl_description)/launch/nav_data/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find arl_description)/launch/nav_data/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find arl_description)/launch/nav_data/local_costmap_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find arl_description)/launch/nav_data/global_costmap_params.yaml" command="load" ns="global_costmap"/>
        <rosparam file="$(find arl_description)/launch/nav_data/base_local_planner_params.yaml" command="load" />
<param name="recovery_behavior_enabled" value="true" />  
<remap from="cmd_vel" to="cmd_vel"/>
<remap from="odom" to="odom"/>
<!--<remap from="move_base_simple/goal" to="rtabmap/goal"/>-->
<remap from="scan" to="scan"/>
<remap from="map"     to="/grid_map"/>

<arg name="rviz_cfg"                default="$(find arl_description)/launch/realsenseARL.rviz" />
<node  pkg="rviz" type="rviz" name="rviz" args="-d $(arg rviz_cfg)"/>-->


my rtabmap launch file(it is the main things):

<node name="rtabmap" pkg="rtabmap_ros" type="rtabmap" output="screen" args="$(arg delete_db)">
      <!-- localization mode -->
      <param     if="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="false"/>
      <param unless="$(arg localization)" name="Mem/IncrementalMemory" type="string" value="true"/>
      <param name="Mem/InitWMWithAllNodes" type="string" value="$(arg localization)"/>

      <param name="subscribe_depth" type="bool" value="true"/>
      <param name="subscribe_scan" type="bool" value="true"/>
      <!--<param name="subscribe_scan_cloud" type="bool" value="true"/>-->
      <param name="frame_id" type="string" value="$(arg frame_id)"/>
     <!--  <param name="publish_tf" type="bool" value="$(arg publish_map_tf)" /> -->     

        <remap from="rgb/image"       to="$(arg rgb_topic)"/>
        <remap from="depth/image"     to="$(arg depth_topic)"/>
        <remap from="rgb/camera_info" to="$(arg camera_info_topic)"/>
    <remap from="odom" to="/odom"/><!-- to get the odometry from the encoders and not from the kinect-->
    <remap from="scan" to="/scan"/>
    <remap from="scan_map" to="cloud_map"/>
    <!--<remap from="grid_map" to="/map"/>-->

      <param name="approx_sync" type="bool" value="true"/>

    <!--    <param name="LccBow/MinInliers" type="string" value="10"/>
      <param name="LccBow/InlierDistance" type="string" value="$(arg inlier_distance)"/> --> 

         <!-- RTAB-Map's parameters -->
          <param name="RGBD/AngularUpdate ...
edit retag flag offensive close merge delete


Use rqt_reconfigure to see parameters actually used by move_base. You can also change them live to debug. I think min_vel_theta should be negative (turning left). See also .

matlabbe gravatar image matlabbe  ( 2018-12-21 14:24:22 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-12-18 17:39:09 -0500

billy gravatar image

You've misspelled "tolerance" in the xy goal tolerance setting so it's not clear what the value for the actual parameter is. I don't know what the default value is. Maybe correcting the spelling is all you need to fix it.

Otherwise you can tune the tolerances of how close you get to the goal position before deciding the goal is reached. It is in these parameters:



Regarding your comment:

I saw that move_base sent cmd_vel commands at both linear.x and angular.z at same time. How I can set that it send the commands not in the same time.

For differential drive robot it is perfectly acceptable for both X and Z velocities to be issued together. It means the robot is turning as it is driving. That is the way it should be.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2018-12-18 06:56:27 -0500

Seen: 335 times

Last updated: Dec 19 '18