ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

observation buffer has not been updated

asked 2011-06-26 02:19:30 -0600

updated 2011-06-26 23:05:00 -0600

Hi folks,

There is one node publishing PointCloud type sensor messages to 10 different topics (e.g. /B0/motion_planner/pointcloud/map_state) at 60Hz. And there might be 10 nodes(one for each robot), subscribed to the corresponding sensor message.

There is a transform_broadcaster inside this node that publishes all sensor messages which broadcasts the transforms of the /field to each robot's base link such as /B0/motion_planner/base_link at a rate of 60Hz.

PointClouds are published with the frame id of "/field", which is already set with the parameter "sensor_frame" correctly (checked it by rosparam get).

I can visualize the sensor messages and transforms in rviz. And if "All topics" is clicked on the rxgraph GUI, I can see that the sensor messages are connected to the motion_planner nodes that each one contains a Costmap2DROS object(if "All topics" is not clicked, it can't show the connection, don't know why).

When I run a motion_planner, I get the following warning: The /B0/motion_planner/pointcloud/map_state observation buffer has not been updated for X seconds, and it should be updated every 0.03 seconds. Which keeps showing up, hence X gets larger and larger.

Nothing changes, if I call the updateMap inside the while loop manually. It seems costmap object doesn't receive the pointcloud msg. Because it says in the docs that it automatically subscribes to the sensor topic and updates the sensor information by itself.

I also set the frame_id, seq, and stamp before publishing the PointCloud message.

Any help would greatly be appreciated...


edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2011-06-26 23:33:33 -0600

updated 2011-06-26 23:37:08 -0600

I think I solved the problem,

I caught an error message in the sensor message publisher node's console indicating that the md5sums do not match. Then the connection is dropped.

This explains why I couldn't see the connection between the nodes through rxgraph.

In the costmap docs it is said that currently it only supports sensor_msgs/LaserScan and sensor_msgs/PointCloud messages. That's why I had set pointcloud/data_type parameter as PointCloud, but used it as PointCloud2 in the publisher node. Now I changed the parameter value to PointCloud2, and it works.

I checked the costmap_2d_ros.cpp and it seems it also supports PointCloud2, so I guess the costmap docs is a bit outdated.


edit flag offensive delete link more

Question Tools


Asked: 2011-06-26 02:19:30 -0600

Seen: 1,040 times

Last updated: Jun 26 '11