ROS Navigation: Simulation to Real Robot

Hello,
I’ve gotten my simulated robot pathing correctly to pre-recorded spots. I tried to make the transition to the real robot ran into problems. I’ve read through a few posts on this forum stating that base_link should be replaced with base_footprint.

If you substitute base_link with base_footprint in all your configuration files, your problem will be resolved. You need to make changes in amcl , planner , controller , recoveries and bt_navigator yaml files.

-@girishkumar.kannan

When looking through the suggested files, I only found base_link in the following config files: recovery.yaml and bt_navigator.yaml. amcl_config.yaml inside of the localization package already referred to base_footprint here:

amcl:
  ros__parameters:
    use_sim_time: True
    alpha1: 0.2
    alpha2: 0.2
    alpha3: 0.2
    alpha4: 0.2
    alpha5: 0.2
    base_frame_id: "base_footprint"

When launching the localization nodes and navigation nodes, I get the following error from the planner_server:

[planner_server-7] [INFO] [1713468888.722314867] [global_costmap.global_costmap]: 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 notexist

I’m not sure where its getting the base_link entry from and I don’t know why “map” is an invalid frame.

  1. Where should I be looking to troubleshoot this error?

  2. I’ve also noticed that in a few of these posts (posts that discuss the transition from the simulation to the real robot) there are mentions about “bridging” to ROS1. In the course notes from ROS Naviation, there is no mention of this. I’ve tried a few of the commands listed in these posts to attempt the bridge. None of the directories exist.
    Also, the notes inside of the rosject linked in ROS Navigation is titled “ROS Navigation in 5 days” which is a separate course from ROS Navigation. Are the rosjects the same for both ROS Navigation and ROS Navigation in 5 days? The rosject notes also do not mention anything about the “bridge.” Has that step been removed from the process now?

source ~/catkin_ws/devel/setup.bash
source /opt/ros/foxy/setup.bash
ros2 run ros1_bridge dynamic_bridge --bridge-all-topics

and

source ~/catkin_ws/devel/setup.bash
roslaunch load_params load_params.launch
source /opt/ros/foxy/setup.bash
ros2 run ros1_bridge parameter_bridge

Thank you.

After my real robot session ended, I immediately went into the simulation and got the same error, but after I provided a pose estimate, all the errors were gone. Since the real robot sessions are limited and time is valuable, is it likely that the real robot was just needing an initial pose estimate? If this is likely the issue, then I can book another real robot session without fear of wasting my session.

It is likely! And I can arrange more sessions for you if another attempt goes south.

Thank you for that offer. Indeed, the error disappeared once I gave the robot an initial pose estimate.

I would welcome more sessions per week if they are available. My presentation on ROS Navigation is May 2nd and I’d like to iron out any other issues.

When you have used up your sessions for the week, please leave a message here and I will assign you more.

This topic was automatically closed 5 days after the last reply. New replies are no longer allowed.