ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
In your specific case, the issue exists since there is no frame called /odom as such that can be found. The odometry frame in the context of the Hector Mapping node is available as the argument "odom_frame" that you are setting as base_link. This has to be set as /odom to be used in your configuration.
I would recommend using the following for your use-case :
<arg name="base_frame" default="base_footprint">
<arg name="odom_frame" default="odom"/>
<node pkg="tf" type="static_transform_publisher" name="odom_to_basefootprint" args="0.0 0.0 0.0 0 0 0.0 odom base_footprint 100" />
<node pkg="tf" type="static_transform_publisher" name="basefootprint_to_base" args="0.0 0.0 0.0 0 0 0.0 base_footprint base_link 100" />
<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.0 0 0 0.0 base_link laser 100" />
If there really are no transformations between the different frames and they lie on the same point, you can just omit the base_footprint and odom link altogether by setting both base_frame and odom_frame to be equal to base_link and keep only the transform between laser and base_link.
2 | No.2 Revision |
In your specific case, the issue exists since there is no frame called /odom as such that can be found. The odometry frame in the context of the Hector Mapping node is available as the argument "odom_frame" that you are setting as base_link. This has to be set as /odom to be used in your configuration.
I would recommend using the following for your use-case :
<arg name="base_frame" default="base_footprint">
<arg name="odom_frame" default="odom"/>
<node pkg="tf" type="static_transform_publisher" name="odom_to_basefootprint" args="0.0 0.0 0.0 0 0 0.0 odom base_footprint 100" />
<node pkg="tf" type="static_transform_publisher" name="basefootprint_to_base" args="0.0 0.0 0.0 0 0 0.0 base_footprint base_link 100" />
<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.0 0 0 0.0 base_link laser 100" />
If there really are no transformations between the different frames and they lie on the same point, you can just omit the base_footprint and odom link altogether by setting both base_frame and odom_frame to be equal to base_link and keep only the transform between laser and base_link.
3 | No.3 Revision |
In your specific case, the issue exists since there is no frame called /odom as such that can be found. The odometry frame in the context of the Hector Mapping node is available as the argument "odom_frame" that you are setting as base_link. This has to be set as /odom to be used in your configuration.
I would recommend using the following for your use-case :
<arg name="base_frame" default="base_footprint">
<arg name="odom_frame" default="odom"/>
<node pkg="tf" type="static_transform_publisher" name="odom_to_basefootprint" args="0.0 0.0 0.0 0 0 0.0 odom base_footprint 100" />
<node pkg="tf" type="static_transform_publisher" name="basefootprint_to_base" args="0.0 0.0 0.0 0 0 0.0 base_footprint base_link 100" />
<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.0 0 0 0.0 base_link laser 100" />
If there really are no transformations between the different frames and they lie on the same point, you can just omit the base_footprint and odom link altogether by setting both base_frame and odom_frame to be equal to base_link and keep only the transform between laser and base_link.
4 | No.4 Revision |
In your specific case, the issue exists since there is no frame called /odom as such that can be found. The odometry frame in the context of the Hector Mapping node is available as the argument "odom_frame" that you are setting as base_link. This has to be set as /odom to be used in your configuration.
I would recommend using the following for your use-case :
<arg name="base_frame" default="base_footprint">
<arg name="odom_frame" default="odom"/>
<node pkg="tf" type="static_transform_publisher" name="odom_to_basefootprint" args="0.0 0.0 0.0 0 0 0.0 odom base_footprint 100" />
<node pkg="tf" type="static_transform_publisher" name="basefootprint_to_base" args="0.0 0.0 0.0 0 0 0.0 base_footprint base_link 100" />
<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.0 0 0 0.0 base_link laser 100" />
If there really are no transformations between the different frames and they lie on the same point, you can just omit the base_footprint and odom link altogether by setting both base_frame and odom_frame to be equal to base_link and keep only the transform between laser and base_link.