Ask Your Question
0

Unable to send UTM move base goals to Rover

asked 2018-12-27 14:38:59 -0500

jawsqb gravatar image

updated 2018-12-28 03:22:15 -0500

gvdhoorn gravatar image

Hello!

I am attempting to implement a GPS guided rover.

However when I send a UTM goal to /move_base_simple/goal

I get the following issue:

[ WARN] [1545940576.270461738]: MessageFilter [target=odom ]: Discarding message from [/move_base] due to empty frame_id.  This message will only print once.

Followed by repeating:

[ WARN] [1545940576.270723864]: Invalid argument passed to canTransform argument source_frame in tf2 frame_ids cannot be empty

I checked if all my frames transformations were being published and they all seem to be correct, so I am at a loss in finding the source of the empty frame_id error.

Oddly when I send a move base command in the "map" frame_id it works fine.

rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped '{header: {stamp: now, frame_id: "map"}, pose: {position: {x: 2.0, y: 1.0, z: 0.0}, orientation: {w: 1.0}}}'

Here are my navigation .yaml files:

costmap_local.yaml:

global_frame: odom
rolling_window: true


width: 10.0
height: 10.0
resolution: 0.05


plugins:
  - {name: obstacles_laser,           type: "costmap_2d::ObstacleLayer"}
  - {name: inflation,                 type: "costmap_2d::InflationLayer"}

costmap_global_static.yaml:

global_frame: map
rolling_window: true
static_map: false
track_unknown_space: true


plugins:
  - {name: static,                  type: "costmap_2d::StaticLayer"}
  - {name: inflation,               type: "costmap_2d::InflationLayer"}

costmap_common.yaml:

footprint: [[-0.25, -0.33], [-0.25, 0.33], [0.25, 0.33], [0.25, -0.33]]
footprint_padding: 0.01

robot_base_frame: base_footprint
update_frequency: 1
publish_frequency: 3.0
transform_tolerance: 10
resolution: 0.05

obstacle_range: 5.5
raytrace_range: 6.0

#layer definitions
static:
    map_topic: /map
    subscribe_to_updates: true

obstacles_laser:
    observation_sources: laser
    laser: {data_type: LaserScan, clearing: true, marking: true, topic: scan, inf_is_valid: true}

inflation:
    inflation_radius: .5

Here is my tf tree:

TF Tree

Let me know if there is anything else that can be provided!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2018-12-28 00:26:34 -0500

ahendrix gravatar image

It looks like the timestamps on your transform from the map to utm frame on your TF tree are set to 0 instead of the current time. Correcting that may help.

edit flag offensive delete link more

Comments

Thank you for the response!

The map to utm transformation is being published by the navsat node (part of the robot localization package for doing sensor fusion)

How would I go about changing the timestamps?

When I " tf echo /base_link /utm " everything works find and I get valid transforms.

jawsqb gravatar imagejawsqb ( 2018-12-28 08:18:36 -0500 )edit
1

I'm not sure; the robot localization package doesn't mention anything about timestamps: http://docs.ros.org/melodic/api/robot...

ahendrix gravatar imageahendrix ( 2018-12-28 11:23:10 -0500 )edit
1

The source code for the indigo version of the navsat_transform_node uses the current time when timestamping the UTM transform: https://github.com/cra-ros-pkg/robot_...

ahendrix gravatar imageahendrix ( 2018-12-28 11:23:52 -0500 )edit
1

The only thing I can think of is if you had the use_sim_time parameter set when you started the navsat_transform_node, but that it wasn't set when you started the other nodes. Maybe check all of your launch files and make sure none of them are setting use_sim_time ?

ahendrix gravatar imageahendrix ( 2018-12-28 11:26:09 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2018-12-27 14:38:59 -0500

Seen: 82 times

Last updated: Dec 28 '18