Skip to content

Issues setting up robot on Humble in Ignition Gazebo #3586

@MarqRazz

Description

@MarqRazz
  • Operating System:
    • Docker image on Ubuntu 22.04
  • Installation type:
    • binaries
  • ROS Version
    • ROS2, Humble
  • Version or commit hash:
    • Package: ros-humble-navigation2
      Version: 1.1.6-1jammy.20230426.153445
    • Package: ros-humble-slam-toolbox
      Version: 2.6.4-1jammy.20230426.114424
  • Laser unit:
    • simulated in Gazebo Fortress
  • DDS implementation:
    • Cyclone DDS

Steps to reproduce issue

Expected behavior

I have been experiencing several issues with the clock as I setup my robot to run in Gazebo. As you can see in my launch file I have use_sim_time set to True and below have verified through the parameter server that its set properly.

Here is the output from a few of the nodes on the parameter server...

# ros2 param get slam_toolbox use_sim_time
Boolean value is: True
# ros2 param get bt_navigator use_sim_time
Boolean value is: True
# ros2 param get lifecycle_manager_navigation use_sim_time
Boolean value is: True
# ros2 param get robot_state_publisher use_sim_time
Boolean value is: True
# ros2 param get joint_state_broadcaster use_sim_time
Boolean value is: True

Here is what the beginning of my /scan message looks like:

header:
  stamp:
    sec: 3
    nanosec: 420000000
  frame_id: base_laser

and /tf_static data for the base_laser frame:

- header:
    stamp:
      sec: 0
      nanosec: 0
    frame_id: base_laser_mount
  child_frame_id: base_laser
  1. When I run the navigation stack with a dummy map that I have previously made I get errors about my LIDAR's frame_id data not being in sync with the system clock.
[component_container_isolated-2] [amcl 1684977727.446646155]: Message Filter dropping message: frame 'base_laser' at time 37.760 for reason 'the timestamp on the message is earlier than all the data in the transform cache'

And a map is never published so I get tf errors:

[component_container_isolated-2] [global_costmap.global_costmap 1684977727.002686044]: Timed out waiting for transform from base_link to map to become available, tf error: Invalid frame ID "map" passed to canTransform argument target_frame - frame does not exist
  1. If I try to run SLAM I get spammed with errors in the console saying the message queue is full and if I try to navigate the robot somewhere I can see that transformPoseInTargetFrame node is using the system clock.
[sync_slam_toolbox_node-5] [slam_toolbox 1684848588.260446441]: Message Filter dropping message: frame 'base_laser' at time 59.460 for reason 'discarding message because the queue is full'
[component_container_isolated-2] [transformPoseInTargetFrame 1684848588.293940594]: Extrapolation Error looking up target frame: Lookup would require extrapolation into the future.  Requested time 1684848585.909372 but the latest data is at time 59.498000, when looking up transform from frame [base_link] to frame [map]

Actual behavior

I cant navigate or SLAM in sim.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions