Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Navigation for Pepper: Cannot transform from map to base_footprint

1,531 views
Skip to first unread message

Jason Yang

unread,
Sep 28, 2016, 6:10:24 AM9/28/16
to ROS Sig Aldebaran

I'm trying to run AMCL for auto navigation with the robot Pepper. And I used the map that built by TurtleBot(gmapping). the result is shown as follow picture

image description

and the frame tree file is here It can load the map, and can set the initial position by 2D Postion estimate but when I set the 2D Navigation Goal, the robot bring up node out comes the message:

Cannot transform from map to base_footprint

My navigation launch file are follow:

  1. pepper_navagation.launch

    <launch>
        <!-- Set the name of the map yaml file: can be overridden on the command line. -->
        <arg name="map" default="/home/axmros/tmp/office0614.yaml" />
        <!-- Run the map server with the desired map -->
        <node name="map_server" pkg="map_server" type="map_server" args="$(arg map)"/>
        <include file="$(find pepper_navigation)/launch/includes/amcl.launch.xml"/>
    </launch>
  2. amcl.launch.xml

    <launch>
      <arg name="use_map_topic"   default="1"/>
      <arg name="scan_topic"      default="/pepper_robot/laser"/> 
      <arg name="odom_frame_id"   default="odom"/>
      <arg name="base_frame_id"   default="base_footprint"/>
      <arg name="global_frame_id" default="map"/>
    
      <node pkg="amcl" type="amcl" name="amcl">
        <param name="use_map_topic"             value="$(arg use_map_topic)"/>
        <!-- Publish scans from best pose at a max of 10 Hz -->
        <param name="gui_publish_rate"          value="0.5"/>
        <param name="transform_tolerance"       value="0.02"/>
        <param name="laser_max_beams"           value="61"/> 
        <param name="laser_max_range"       value="5.0"/>
        <param name="min_particles"         value="1000 * 4"/>
        <param name="max_particles"         value="5000 * 4"/>
        <param name="odom_model_type"           value="omni"/>
        <param name="resample_interval"         value="8"/>
        <param name="odom_alpha1"           value="1.1"/>
        <param name="odom_alpha2"           value="1.1"/>
        <param name="odom_alpha3"           value="10.0"/>
        <param name="odom_alpha4"           value="0.1"/>
        <param name="odom_alpha5"           value="0.1"/>
        <param name="laser_model_type"      value="likelihood_field"/>
        <param name="laser_likelihood_max_dist" value="4.0"/>
        <param name="update_min_d"          value="0.05"/>
        <param name="update_min_a"          value="0.02"/>
        <param name="recovery_alpha_slow"       value="0.0"/>
        <param name="recovery_alpha_fast"       value="0.0"/>
        <param name="laser_z_rand"          value="0.05"/>
        <param name="laser_z_hit"           value="0.95"/>
        <param name="laser_sigma_hit"       value="0.2"/>
        <param name="laser_z_short"         value="0.01"/>
        <param name="laser_z_max"           value="0.01"/>
    
        <param name="odom_frame_id"             value="$(arg odom_frame_id)"/> 
        <param name="base_frame_id"             value="$(arg base_frame_id)"/> 
        <param name="global_frame_id"           value="$(arg global_frame_id)"/>
        <remap from="scan"                      to="$(arg scan_topic)"/>
      </node>
    </launch>

and the robot can't move, if I set the global frame id ad base_link or base_footprint, the robot can move but the odom can not match with the map.

According to the messages, it seems that the tf has not been configured correctly, but I think the frame tree is all right.

So what should I do to fix the problem?

Karsten K

unread,
Sep 29, 2016, 11:17:40 AM9/29/16
to ros-sig-...@googlegroups.com
you want to make sure that you have only one TF tree and not multiple publishers on the same TF frame. The tree is basically "map" -> "odom" -> "base_link"
I remember that the base_link of pepper may not be necessarily on the same link as the footprint but rather in the hip. So that would make your odom having an offset in Z-direction.

Rather than the TF tree, can you double check with TF echo/monitor that your tree is correct, and only one publisher for each frame exists?

--
You received this message because you are subscribed to the Google Groups "ROS Sig Aldebaran" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ros-sig-aldebaran+unsubscribe@googlegroups.com.
To post to this group, send email to ros-sig-aldebaran@googlegroups.com.
Visit this group at https://groups.google.com/group/ros-sig-aldebaran.
To view this discussion on the web visit https://groups.google.com/d/msgid/ros-sig-aldebaran/9e26aef0-c3ec-49b9-815a-b02caf5aece3%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Message has been deleted

Jason Yang

unread,
Sep 30, 2016, 2:43:45 AM9/30/16
to ROS Sig Aldebaran
Hi Karsten,
My TF echo result is as follow:
axmros@axmros:~$ rosrun tf tf_echo /map /base_footprint
At time 1475217184.562
- Translation: [0.037, -0.004, -0.820]
- Rotation: in Quaternion [-0.002, -0.021, 0.000, 1.000]
            in RPY (radian) [-0.003, -0.043, 0.000]
            in RPY (degree) [-0.176, -2.461, 0.017]
At time 1475217184.787
- Translation: [0.037, -0.004, -0.820]
- Rotation: in Quaternion [-0.002, -0.021, 0.000, 1.000]
            in RPY (radian) [-0.003, -0.043, 0.000]
            in RPY (degree) [-0.176, -2.461, 0.017]
At time 1475217185.900
- Translation: [0.037, -0.004, -0.820]
- Rotation: in Quaternion [-0.002, -0.021, 0.000, 1.000]
            in RPY (radian) [-0.003, -0.043, 0.000]
            in RPY (degree) [-0.176, -2.461, 0.017]
At time 1475217186.680
- Translation: [0.037, -0.004, -0.820]
- Rotation: in Quaternion [-0.002, -0.021, 0.000, 1.000]
            in RPY (radian) [-0.003, -0.043, 0.000]
            in RPY (degree) [-0.176, -2.461, 0.017]

and the TF Monitor is:
RESULTS: for map to base_footprint
Chain is: map -> odom -> base_link -> torso -> Hip -> Pelvis -> Tibia -> base_footprint
Net delay     avg = 0.382667: max = 1.49801

Frames:
Frame: Hip published by unknown_publisher Average Delay: 0.0714069 Max Delay: 0.739803
Frame: Pelvis published by unknown_publisher Average Delay: 0.0714049 Max Delay: 0.739802
Frame: Tibia published by unknown_publisher Average Delay: 0.0714096 Max Delay: 0.739804
Frame: base_footprint published by unknown_publisher Average Delay: 0.0715691 Max Delay: 0.739874
Frame: base_link published by unknown_publisher Average Delay: 0.00109852 Max Delay: 0.00425786
Frame: odom published by unknown_publisher Average Delay: 0.143361 Max Delay: 0.920095
Frame: torso published by unknown_publisher Average Delay: 0.0715708 Max Delay: 0.739875

I think it's right, except too much delay.

在 2016年9月29日星期四 UTC+8下午11:17:40,Karsten Knese写道:

Patrick Hansen

unread,
Nov 1, 2016, 10:52:55 AM11/1/16
to ROS Sig Aldebaran
Jason,

Did you ever figure out this issue? 

I am trying to run use 2D Nav Goal with Pepper and getting the same error. I have similar launch files to get AMCL running.

Natalia Lyubova

unread,
Apr 6, 2017, 11:08:42 AM4/6/17
to ROS Sig Aldebaran
Hello,

did you try to use naoqi_driver_py (the one in naoqi_bridge)? The transform odom to base_link is updated more often there ...

Kiki Tina

unread,
Feb 14, 2025, 6:56:37 AMFeb 14
to ROS Sig Aldebaran

Hi,

anyone solve this and how?
četrtek, 6. april 2017 ob 17:08:42 UTC+2 je oseba Natalia Lyubova napisala:
Reply all
Reply to author
Forward
0 new messages