move_base not subscribing to "/odom"

asked 2019-04-29 01:59:09 -0600

SuperConfused gravatar image

updated 2019-04-29 02:20:17 -0600

I'm trying to set up move_base, with odometry provided by robot_localization. When I launch, however, move_base does not seem to subscribe to "odom" - the topic is not visible in rqt_graph and doesn't get listed by rostopic list.

My understanding of move_base (and the nav stack) was that it should be trying to subscribe to "odom" by default. Would anyone be able to tell me where I've gone wrong?

This is what the rqt_graph looks like:

image description

And this is what my .launch file looks like (note, I pretty much copied the .yaml configs from ):

<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization_node">
    <!-- switch on debug -->
    <param name="debug" value="true"/>

    <!-- node configuration -->
    <param name="frequency" value="30"/>
    <param name="sensor_timeout" value="0.1"/>
    <param name="two_d_mode" value="false"/>

    <!-- may need to change these depending on the frame_ids used by the playback data -->
    <param name="map_frame" value="map"/>
    <param name="odom_frame" value="odom"/>
    <param name="base_link_frame" value="base_link"/>
    <param name="world_frame" value="odom"/>

    <!-- SUBUSCRIBE to: IMU "/nova_common/IMU" -->
    <param name="imu0" value="/nova_common/IMU"/>
    <param name="imu0_differential" value="false"/> <!-- set false if with navsat transform -->
    <rosparam param="imu0_config">[true,true,true,

    <!-- PUBLISH to: "/odom" -->
    <remap from="odometry/filtered" to="/odom"/>

<node pkg="robot_localization" type="navsat_transform_node" name="navsat_transform_node">
    <param name="frequency" value="30"/>

    <!-- SUBSCRIBE to: "/nova_common/IMU"; "/nova_common/gps_data"; "/odom" -->
    <remap from="imu/data" to="/nova_common/IMU"/>
    <remap from="gps/fix" to="/nova_common/gps_data"/>
    <remap from="odometry/filtered" to="/odom"/>

    <!-- PUBLISH to: "/ekf/gps_data"-->
    <param name="publish_filtered_gps" value="true"/>
    <remap from="gps/filtered" to="/ekf/gps_data"/>

<node pkg="move_base" type="move_base" name="move_base" respawn="false">
    <rosparam file="costmap_common_params.yaml" command="load" ns="global_costmap"/>
    <rosparam file="costmap_common_params.yaml" command="load" ns="local_costmap"/>
    <rosparam file="local_costmap_params.yaml" command="load"/>
    <rosparam file="global_costmap_params.yaml" command="load"/>
    <rosparam file="base_local_planner_params.yaml" command="load"/>
edit retag flag offensive close merge delete


As I'm pretty sure one of the first questions you'll get will be "please show us a screenshot of rqt_graph", I've gone ahead and given you sufficient karma to post such a screenshot.

Consequently: please post a screenshot of rqt_graph, so we can preempt those questions.

gvdhoorn gravatar image gvdhoorn  ( 2019-04-29 02:06:31 -0600 )edit

Can you please post a screenshot of rqt_graph without Dead sinks and Leave topics hidden?

gvdhoorn gravatar image gvdhoorn  ( 2019-04-29 02:14:42 -0600 )edit

Sure, just updated it.

SuperConfused gravatar image SuperConfused  ( 2019-04-29 02:20:32 -0600 )edit

move_base itself does not subscribe to the /odom topic, rather the local planner plugins do that (though it will look the same on the outside, as this is just one node, in the end). So, what local planner are you using?

Also, did I understand you correctly that rostopic list does NOT list /odom? So it is not even published, is it?

Maybe try rostopic list | grep odom to see all topics related to odometry and rosnode info /move_base to check where it is subscribing to

mgruhler gravatar image mgruhler  ( 2019-04-29 04:26:53 -0600 )edit