Robotics StackExchange | Archived questions

move_base not subscribing to "/odom"

I'm trying to set up movebase, with odometry provided by robotlocalization. When I launch, however, movebase does not seem to subscribe to "odom" - the topic is not visible in `rqtgraphand doesn't get listed byrostopic 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 http://wiki.ros.org/navigation/Tutorials/RobotSetup):

<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,
                                   true,true,true,
                                   true,true,true,
                                   true,true,true,
                                   true,true,true]</rosparam>

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

<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>

<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"/>
</node>

Asked by SuperConfused on 2019-04-29 01:59:09 UTC

Comments

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.

Asked by gvdhoorn on 2019-04-29 02:06:31 UTC

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

Asked by gvdhoorn on 2019-04-29 02:14:42 UTC

Sure, just updated it.

Asked by SuperConfused on 2019-04-29 02:20:32 UTC

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

Asked by mgruhler on 2019-04-29 04:26:53 UTC

Answers