Warnings with base_link in namespace for robot_localization
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.
"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?
It shouldn't matter what you name it as long as everything is consistent. Do any of your sensor messages reference
base_link
?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" />
Can you please try this -
<node name="controller\_spawner" pkg="controller\_manager" type="spawner" args="jackal\_joint\_publisher jackal\_velocity\_controller" ns="$(arg ns)" />