Hello,
<group if="$(arg enable_ekf)" >
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" >
<rosparam command="load" file="$(arg ekf_yaml_path)" />
<param name="map_frame" value="map"/>
<param name="odom_frame" value="$(arg ns)/odom"/>
<param name="base_link_frame" value="$(arg ns)/base_link"/>
<param name="world_frame" value="$(arg ns)/odom"/>
</node>
</group>
The above are the relevant lines in my launch file, but when I try it to run it, there are warnings thrown and the functionality is not as expected. The warnings are as below:
[WARN] [1617652671.519795535,
1553.900000000]: Could not obtain transform from base_link to jackal2/base_link. Error was "base_link" passed to
lookupTransform argument source_frame does not exist.
[ WARN] [1617652673.364580966, 1555.740000000]: Could not obtain transform from base_link to jackal1/base_link. Error was
"base_link" passed to lookupTransform argument source_frame does not exist.
I don't understand why these would come up since I am specifically assigning a base_link_frame. Why does it matter if "base_link" exists or not?
Originally posted by pointsnadpixels on ROS Answers with karma: 23 on 2021-04-05
Post score: 0
Original comments
Comment by tryan on 2021-04-06:
It shouldn't matter what you name it as long as everything is consistent. Do any of your sensor messages reference base_link
?
Comment by pointsnadpixels on 2021-04-06:
Looks like the velocity controller which is used by the ekf sends 'odom' with 'base_link' header, instead of robot_namespace/base_link.
Any idea how I could correct this?
Below is how I spawn the controllers.
<node name="controller\_spawner" pkg="controller\_manager" type="spawner" args="jackal\_joint\_publisher jackal\_velocity\_controller" />
Comment by skpro19 on 2021-04-06:
Can you please try this -
<node name="controller\_spawner" pkg="controller\_manager" type="spawner" args="jackal\_joint\_publisher jackal\_velocity\_controller" ns="$(arg ns)" />