Tutorial 6/7 issue?

I have attempted completing tutorial 7 but have been unsuccessful. I am using the ROSbot 2.0. The best way I can describe the issue is that the LiDAR map does not remain constant. When viewing through rviz, as the robot turns, the frame of the laser scan does as well. My guess is it has to do with the odometry but I am a beginner and am still learning.

My current process to run this tutorial is to run roscore, then drive_controller_node, then path_planning.launch. Finally I use rviz to select a point on the map to navigate to.

Below are is the output from path_planning.launch and some images:

… logging to /home/husarion/.ros/log/f7c27eea-50de-11ec-b9bc-5dafc6bb0158/roslaunch-husarion-1327.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://husarion:41601/

SUMMARY

CLEAR PARAMETERS

  • /rosbot_ekf/

PARAMETERS

  • /gmapping_node/angularUpdate: 0.05
  • /gmapping_node/base_frame: base_link
  • /gmapping_node/delta: 0.01
  • /gmapping_node/linearUpdate: 0.05
  • /gmapping_node/map_update_interval: 1
  • /gmapping_node/maxUrange: 5
  • /gmapping_node/odom_frame: odom
  • /gmapping_node/particles: 100
  • /gmapping_node/temporalUpdate: 0.1
  • /gmapping_node/xmax: 5
  • /gmapping_node/xmin: -5
  • /gmapping_node/ymax: 5
  • /gmapping_node/ymin: -5
  • /move_base/TrajectoryPlannerROS/acc_lim_Y: 2.5
  • /move_base/TrajectoryPlannerROS/acc_lim_theta: 0.25
  • /move_base/TrajectoryPlannerROS/acc_lim_x: 2.5
  • /move_base/TrajectoryPlannerROS/holonomic_robot: False
  • /move_base/TrajectoryPlannerROS/max_vel_theta: 0.35
  • /move_base/TrajectoryPlannerROS/max_vel_x: 0.2
  • /move_base/TrajectoryPlannerROS/meter_scoring: True
  • /move_base/TrajectoryPlannerROS/min_in_place_vel_theta: 0.25
  • /move_base/TrajectoryPlannerROS/min_vel_theta: -0.35
  • /move_base/TrajectoryPlannerROS/min_vel_x: 0.1
  • /move_base/TrajectoryPlannerROS/xy_goal_tolerance: 0.15
  • /move_base/TrajectoryPlannerROS/yaw_goal_tolerance: 0.25
  • /move_base/controller_frequency: 10.0
  • /move_base/global_costmap/always_send_full_costmap: True
  • /move_base/global_costmap/footprint: [[0.12, 0.14], [0…
  • /move_base/global_costmap/global_frame: map
  • /move_base/global_costmap/height: 15
  • /move_base/global_costmap/inflation_radius: 2.5
  • /move_base/global_costmap/map_topic: /map
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/clearing: True
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/data_type: LaserScan
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/marking: True
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/max_obstacle_height: 5.0
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/min_obstacle_height: 0.0
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/obstacle_range: 6.0
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/raytrace_range: 8.5
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/sensor_frame: laser
  • /move_base/global_costmap/obstacle_layer/laser_scan_sensor/topic: scan
  • /move_base/global_costmap/obstacle_layer/observation_sources: laser_scan_sensor
  • /move_base/global_costmap/obstacle_range: 6.0
  • /move_base/global_costmap/origin_x: -7.5
  • /move_base/global_costmap/origin_y: -7.5
  • /move_base/global_costmap/plugins: [{‘name’: 'static…
  • /move_base/global_costmap/publish_frequency: 2.5
  • /move_base/global_costmap/raytrace_range: 8.5
  • /move_base/global_costmap/resolution: 0.1
  • /move_base/global_costmap/robot_base_frame: base_link
  • /move_base/global_costmap/rolling_window: True
  • /move_base/global_costmap/static_layer/map_topic: /map
  • /move_base/global_costmap/static_layer/subscribe_to_updates: True
  • /move_base/global_costmap/subscribe_to_updates: True
  • /move_base/global_costmap/transform_tolerance: 0.5
  • /move_base/global_costmap/update_frequency: 2.5
  • /move_base/global_costmap/width: 15
  • /move_base/local_costmap/always_send_full_costmap: True
  • /move_base/local_costmap/footprint: [[0.12, 0.14], [0…
  • /move_base/local_costmap/global_frame: map
  • /move_base/local_costmap/height: 3
  • /move_base/local_costmap/inflation_radius: 0.6
  • /move_base/local_costmap/map_topic: /map
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/clearing: True
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/data_type: LaserScan
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/marking: True
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/max_obstacle_height: 5.0
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/min_obstacle_height: 0.0
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/obstacle_range: 6.0
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/raytrace_range: 8.5
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/sensor_frame: laser
  • /move_base/local_costmap/obstacle_layer/laser_scan_sensor/topic: scan
  • /move_base/local_costmap/obstacle_layer/observation_sources: laser_scan_sensor
  • /move_base/local_costmap/obstacle_range: 6.0
  • /move_base/local_costmap/origin_x: -1.5
  • /move_base/local_costmap/origin_y: -1.5
  • /move_base/local_costmap/plugins: [{‘name’: 'obstac…
  • /move_base/local_costmap/publish_frequency: 5
  • /move_base/local_costmap/raytrace_range: 8.5
  • /move_base/local_costmap/resolution: 0.1
  • /move_base/local_costmap/robot_base_frame: base_link
  • /move_base/local_costmap/rolling_window: True
  • /move_base/local_costmap/static_layer/map_topic: /map
  • /move_base/local_costmap/static_layer/subscribe_to_updates: True
  • /move_base/local_costmap/static_map: False
  • /move_base/local_costmap/subscribe_to_updates: True
  • /move_base/local_costmap/transform_tolerance: 0.5
  • /move_base/local_costmap/update_frequency: 5
  • /move_base/local_costmap/width: 3
  • /rosbot_ekf/acceleration_gains: [0.8, 0.0, 0.0, 0…
  • /rosbot_ekf/acceleration_limits: [1.3, 0.0, 0.0, 0…
  • /rosbot_ekf/base_link_frame: base_link
  • /rosbot_ekf/control_config: [True, False, Fal…
  • /rosbot_ekf/control_timeout: 0.2
  • /rosbot_ekf/debug: False
  • /rosbot_ekf/debug_out_file: /path/to/debug/fi…
  • /rosbot_ekf/deceleration_gains: [1.0, 0.0, 0.0, 0…
  • /rosbot_ekf/deceleration_limits: [1.3, 0.0, 0.0, 0…
  • /rosbot_ekf/frequency: 20
  • /rosbot_ekf/imu0: imu
  • /rosbot_ekf/imu0_config: [False, False, Fa…
  • /rosbot_ekf/imu0_differential: True
  • /rosbot_ekf/imu0_linear_acceleration_rejection_threshold: 0.8
  • /rosbot_ekf/imu0_nodelay: False
  • /rosbot_ekf/imu0_pose_rejection_threshold: 0.8
  • /rosbot_ekf/imu0_queue_size: 4
  • /rosbot_ekf/imu0_relative: True
  • /rosbot_ekf/imu0_remove_gravitational_acceleration: True
  • /rosbot_ekf/imu0_twist_rejection_threshold: 0.8
  • /rosbot_ekf/initial_estimate_covariance: [‘1e-9’, 0, 0, 0,…
  • /rosbot_ekf/map_frame: map
  • /rosbot_ekf/odom0: odom/wheel
  • /rosbot_ekf/odom0_config: [True, True, True…
  • /rosbot_ekf/odom0_differential: False
  • /rosbot_ekf/odom0_nodelay: False
  • /rosbot_ekf/odom0_queue_size: 6
  • /rosbot_ekf/odom0_relative: True
  • /rosbot_ekf/odom_frame: odom
  • /rosbot_ekf/print_diagnostics: True
  • /rosbot_ekf/process_noise_covariance: [0.05, 0, 0, 0, 0…
  • /rosbot_ekf/publish_acceleration: False
  • /rosbot_ekf/publish_tf: True
  • /rosbot_ekf/sensor_timeout: 0.2
  • /rosbot_ekf/stamped_control: False
  • /rosbot_ekf/transform_time_offset: 0.0
  • /rosbot_ekf/transform_timeout: 0.0
  • /rosbot_ekf/two_d_mode: False
  • /rosbot_ekf/use_control: True
  • /rosbot_ekf/world_frame: odom
  • /rosdistro: noetic
  • /rosversion: 1.15.13
  • /rplidarNode/angle_compensate: True
  • /rplidarNode/frame_id: laser
  • /rplidarNode/inverted: False
  • /rplidarNode/serial_baudrate: 115200
  • /rplidarNode/serial_port: /dev/ttyUSB0
  • /serial_node/baud: 525000
  • /serial_node/port: /dev/ttyS1

NODES
/
gmapping_node (gmapping/slam_gmapping)
imu_publisher (tf/static_transform_publisher)
laser_publisher (tf/static_transform_publisher)
move_base (move_base/move_base)
msgs_conversion (rosbot_ekf/msgs_conversion)
rosbot_ekf (robot_localization/ekf_localization_node)
rplidarNode (rplidar_ros/rplidarNode)
rviz (rviz/rviz)
serial_node (rosserial_python/serial_node.py)

ROS_MASTER_URI=http://master:11311

process[rplidarNode-1]: started with pid [1342]
process[laser_publisher-2]: started with pid [1343]
process[serial_node-3]: started with pid [1344]
process[msgs_conversion-4]: started with pid [1349]
[ INFO] [1638167938.766732282]: RPLIDAR running on ROS package rplidar_ros. SDK Version:1.12.0
process[rosbot_ekf-5]: started with pid [1356]
process[imu_publisher-6]: started with pid [1358]
process[gmapping_node-7]: started with pid [1363]
process[move_base-8]: started with pid [1370]
[ WARN] [1638167939.050808962]: Both imu0_differential and imu0_relative were set to true. Using differential mode.
process[rviz-9]: started with pid [1376]
RPLIDAR S/N: EBE999F6C9E59AD2C5E59CF7173B3412
[ INFO] [1638167939.279889519]: Firmware Ver: 1.28
[ INFO] [1638167939.279993940]: Hardware Rev: 7
[ INFO] [1638167939.282801353]: RPLidar health status : 0
[ INFO] [1638167939.863000506]: current scan mode: Sensitivity, max_distance: 16.0 m, Point number: 7.9K , angle_compensate: 2
[INFO] [1638167940.315431]: ROS Serial Python Node
[INFO] [1638167940.333833]: Connecting to /dev/ttyS1 at 525000 baud
[INFO] [1638167942.446359]: Requesting topics…
[INFO] [1638167942.463989]: Note: publish buffer size is 512 bytes
[INFO] [1638167942.492377]: Setup service server on config [rosbot_ekf/Configuration]
[INFO] [1638167942.801496]: Setup publisher on battery [sensor_msgs/BatteryState]
[INFO] [1638167942.819215]: Setup publisher on pose [geometry_msgs/PoseStamped]
[INFO] [1638167942.830230]: Setup publisher on velocity [geometry_msgs/Twist]
[INFO] [1638167942.841818]: Setup publisher on range/fr [sensor_msgs/Range]
[INFO] [1638167942.856936]: Setup publisher on range/fl [sensor_msgs/Range]
[INFO] [1638167942.882362]: Setup publisher on range/rr [sensor_msgs/Range]
[INFO] [1638167942.894103]: Setup publisher on range/rl [sensor_msgs/Range]
[INFO] [1638167942.904644]: Setup publisher on joint_states [sensor_msgs/JointState]
libEGL warning: DRI3: failed to query the version
[INFO] [1638167942.922598]: Setup publisher on mpu9250 [rosbot_ekf/Imu]
libEGL warning: DRI2: failed to authenticate
[INFO] [1638167942.937888]: Setup publisher on buttons [std_msgs/UInt8]
[INFO] [1638167942.947919]: Note: subscribe buffer size is 512 bytes
[INFO] [1638167942.964293]: Setup subscriber on cmd_vel [geometry_msgs/Twist]
[INFO] [1638167942.986919]: Setup subscriber on cmd_ser [std_msgs/UInt32]
[INFO] [1638167942.996044]:


| ___ | _ |/ || | | | / |
| |
/ /| | | |\ --. | |__ ___ | |_ | |_ __ __ | / | | | | –. | ’
\ / _ \ | __| | |\ \ /\ / /
| |\ \ \ _/ //_
/ /| |
) || (
) || |_ | | \ V V /
_| _| _/ _/ |./ _/ _| || _/_/

Firmware version: 0.14.3

[INFO] [1638167943.002972]: Detected sensor: BNO055_ADDR_B

qt.qpa.xcb: QXcbConnection: XCB error: 1 (BadRequest), sequence: 421, resource id: 340, major code: 155 (Unknown), minor code: 1
Laser Pose= 0 0 -3.13287
Laser Pose= 0 0 -3.13287
[ WARN] [1638167943.838589490]: local_costmap: Pre-Hydro parameter “static_map” unused since “plugins” is provided
Registering Scans:Done
Laser Pose= 0 0 -3.13287



This is what I mean:

In addition to this the laser seems to be correct in relation to real space, but the transform figure does not appear in the correct location on the map. The transform should be further right such that the laser lines up with the map.
Please help…

Hi Steven,
Could you tell me which ros you use? It will help me to check this tutorial with the same system as yours.

Kind regards,
Karol Konkol
Husarion Team

Hello Karol,

I am using ros noetic on ubuntu 20.04.

Thanks,
Steven

Hi,
I recommend to use ros melodic for those tutorials ( we created and tested them based on ros melodic ). However I installed ros noetic and first thing you have to do is to install some packages that are missing ( propably you will have to install grid-map packeges" ).
Did you build tutorial_pkg and install all of the missing packages?
cd ~/husarion_ws
catkin_make

I did make sure to build the catkin packages, I will attempt to repeat the tutorial using a melodic build and see if that works.

Hi Steven,
If you still want to do those tutorials using ros-noetic instead of ros-melodic you have to upgrade firmware. You can find it on this site firmware. The one you are looking for is firmware_diff_noetic.bin.

Kind regards,
Karol Konkol
Husarion Team