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

Help regarding setting up ros navigation stack

asked 2022-08-20 09:40:48 -0500

hrshovon gravatar image

Hello, Beginner here. I made a robot and I plan to set up ros navigation stack on my robot. My software and hardware apecs are as follows: 1. Jetson Xavier NX running Ubuntu 18.04 2. Ros Melodic, running without any container. 3. Arduino UNO connected to Xavier NX to control the motors. 4. MPU6050 IMU(also got a compass but not using it ATM). 5. RPLidar A1M8

I am following this tutorial https://automaticaddison.com/how-to-s...

My problem is that I think amcl er unable to localize in the map. When I set inital goal and try to set a goal, the robot just keeps rotating even though rotation may or may not be necessary. I am pretty sure I am doing something wrong here. My launch file looks like this,

<launch>

  <!-- Transformation Configuration ... Setting Up the Relationships Between Coordinate Frames --> 
  <node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0.00 0 0.12 0 0 0 base_link laser 10" />
  <node pkg="tf" type="static_transform_publisher" name="imu_broadcaster" args="0 0.00 0.035 0 0 0 base_link imu 30" />
  <node pkg="tf" type="static_transform_publisher" name="base_link_broadcaster" args="0 0 0.05 0 0 0 base_footprint base_link 30" />
  <!-- odom to base_footprint transform will be provided by the robot_pose_ekf node -->
  <!-- map to odom will be provided by the AMCL -->
  <node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0 0 0 0 0 0 map odom 10" />

  <!-- Wheel Encoder Tick Publisher and Base Controller Using Arduino -->  
  <!-- motor_controller_diff_drive_2.ino is the Arduino sketch -->
  <!-- Subscribe: /cmd_vel -->
  <!-- Publish: /right_ticks, /left_ticks -->
  <node pkg="rosserial_python" type="serial_node.py" name="serial_node">
    <param name="port" value="/dev/ttyACM0"/>
    <param name="baud" value="115200"/>
  </node>

  <!-- Wheel Odometry Publisher -->
  <!-- Subscribe: /right_ticks, /left_ticks, /initial_2d -->
  <!-- Publish: /odom_data_euler, /odom_data_quat -->
  <node pkg="localization_data_pub" type="ekf_odom_pub" name="ekf_odom_pub">
  </node> 

  <!-- IMU Data Publisher Using the BNO055 IMU Sensor -->
  <!-- Publish: /imu/data -->
  <node ns="imu" name="imu_node" pkg="mpu_6050_driver" type="imu_node.py" respawn="true" respawn_delay="2" />

  <!-- Extended Kalman Filter from robot_pose_ekf Node-->
  <!-- Subscribe: /odom, /imu_data, /vo -->
  <!-- Publish: /robot_pose_ekf/odom_combined -->
  <remap from="odom" to="odom_data_quat" />
  <remap from="imu_data" to="imu/data" />
  <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
    <param name="output_frame" value="odom"/>
    <param name="base_footprint_frame" value="base_footprint"/>
    <param name="freq" value="30.0"/>
    <param name="sensor_timeout" value="1.0"/>
    <param name="odom_used" value="true"/>
    <param name="imu_used" value="true"/>
    <param name="vo_used" value="false"/>
    <param name="gps_used" value="false"/>
    <param name="debug" value="false"/>
    <param name="self_diagnose" value="false"/>
  </node>

  <!-- Initial Pose and Goal Publisher -->
  <!-- Publish: /initialpose, /move_base_simple/goal -->
  <node pkg="rviz" type="rviz" name="rviz">
  </node> 

  <!-- Subscribe: /initialpose, /move_base_simple/goal -->
  <!-- Publish: /initial_2d, /goal_2d --> 
  <node pkg="localization_data_pub" type="rviz_click_to_2d" name="rviz_click_to_2d">
  </node> ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-08-26 16:04:03 -0500

Edyger gravatar image

I also followed this tutorial, but it doesn't cover every problem you could have. I would first check if your odometry is good enough. You can follow this tuning guide first http://wiki.ros.org/navigation/Tutori....

Check with rostopic echo mytopic that your IMU message and odometry message make sense. Try to visualize them in rviz. I found that my IMU for example was not published in pose_ekf because it was not imu/data.

Do you have error message when you run your launch file ?

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2022-08-20 09:39:40 -0500

Seen: 42 times

Last updated: Aug 20 '22