ROS Navigation on heavy robot Aborting!

asked 2022-04-02 07:09:42 -0600

mwbb gravatar image

updated 2022-04-02 07:14:24 -0600

I am working on a platform with like 100 kg weight and a diff drive robot. The wheels are geared and only two.

Currently, I have implemented the navigation stack and can see that the robot drifts to the left sometimes when Nav Goal is sent or does random rotations drifting away from the trajectory.

One other problem is the Navigation Stack says something similar "Aborting...due to oscillations" even without enough retries sometimes. I have tried with both rf2o_odometry and wheel odometry but the results are somehow the same. Also, both DWA and Trajectory planner.

My setup is: Topside computer: ROS Noetic The embedded device on the robot: ROS Melodic

Below are my launch files and config files:

Sensor and TF:

<?xml version="1.0"?>
    <!-- start sensor-->
    <!--include file="$(find lslidar_c16_decoder)/launch/lslidar_c16.launch"-->
    <include file="$(find rplidar_ros)/launch/rplidar_a3.launch">
    <node name="serial_node" pkg="rosserial_python" type="" output="screen">
        <!--param name="_port" type="string" value="/dev/ttyACM0" /-->
        <param name="port" value="/dev/ttyACM0"/>
        <param name="baud" value="57600"/>
    <node name="publish_odom" pkg="publisher" type="" output="screen">
    <!--include file="$(find rf2o_laser_odometry)/launch/rf2o_laser_odometry.launch">
    <node pkg="tf" type="static_transform_publisher" name="static_tf_broadcaster_basetolaser" args="0.165 0 0.47 0 0 0 base_link laser 10" >
    <!--node pkg="tf" type="static_transform_publisher" name="static_tf_broadcaster_basetoodom" args="0 0 0 0 0 0 odom base_link 10" >


<?xml version="1.0"?>

  <arg name="map_file" default="map"/>

  <!--node name="map_server" pkg="map_server" type="map_server" args="$(find ara_nav)/maps/$(arg map_file).yaml"/>

  <include file="$(find ara_nav)/launch/amcl.launch"/-->
  <include file="$(find ara_nav)/launch/gmapping.launch"/>
    <param name="angularUpdate" value="0.2"/>
    <param name="maxUrange" value="25"/>
    <param name="map_update_interval" value="2.0"/>
    <param name="linearUpdate" value="0.5"/>
    <param name="transform_publish_period" value="0.033"/>
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <!--remap from="/map" to="/rtabmap/proj_map"/-->
    <rosparam file="$(find ara_nav)/config/costmap_common_params.yaml" command="load" ns="global_costmap"/>
    <rosparam file="$(find ara_nav)/config/costmap_common_params.yaml" command="load" ns="local_costmap"/>
    <rosparam file="$(find ara_nav)/config/local_costmap_params.yml" command="load"/>
    <rosparam file="$(find ara_nav)/config/global_costmap_params.yml" command="load"/>
    <rosparam file="$(find ara_nav)/config/base_local_planner_params.yaml" command="load"/>
    <!--rosparam file="$(find ara_nav)/config/dwa_local_planner_params.yaml"/-->
    <rosparam file="$(find ara_nav)/config/move_base_params.yaml" command="load" />
    <!--param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" /-->


Gmapping node:

  <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen">
        <!--remap from="scan" to="/scan_topic" /-->
    <!--remap from="odom" to="/odom_rf2o"/-->
        <rosparam file="$(find ara_nav)/config/gmapping.yaml" command="load" />
        <param name="base_frame" value="base_link" />
        <param name="odom_frame" value="odom"/>
        <param name="map_frame" value="/map"/>
        <param name="throttle_scans" value ...
edit retag flag offensive close merge delete


Is it a mistake in the route you are trying to travel, or is the motor following the travel instructions? I suggest checking cmd_vel and visualizing the paths issued by the DWA planner and the global planner (navfn, etc.). If the motor is not running according to the visualized path, the motor is not being controlled according to the running instructions.

miura gravatar image miura  ( 2022-04-02 23:32:39 -0600 )edit