Buscar este blog
viernes, 13 de agosto de 2010
Create a map of the lab with the robot Pioneer and SICK LMS:2
Yesterday I made a map of the laboratory using data from the laser recorded into a bag file and running slam_gmapping node.
I found a very simple mistake in my tf_listener.cpp code and searching through the sscrovers svn I found the same one. It is approximately at line 20 and it concerns the transformation of the new point created.
The original file displays the following:
try{ geometry_msgs::PointStamped base_point;
listener.transformPoint("base_laser_link", laser_point, base_point);
The transformation is in fact supposed to be from base_laser_link frame to base_link frame. And that is why base_point is created, to store the same information as laser_point (of base_laser_link frame) but now in the desired frame that should be base_link. The result is the following:
try{ geometry_msgs::PointStamped base_point;
listener.transformPoint("base_link", laser_point, base_point);
I then ran all of the nodes in exactly the same way I had been doing it and this time a map.pgm and a map.yaml file were created.
The only difference in my procedure was that, exactly at the time I was going to play the bag file, I pushed the reset button on rviz. In spite of this, gmapping still displays the TF_OLD_DATA error. I have been reading about it and several users in the mailing list argue that they had dealt with this same problem, both when running gmapping and other nodes.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario