What steps will reproduce the problem?
1. use coreslam with a laser frame != base_link frame
What is the expected output? What do you see instead?
Expected: Laser range data should be aligned with the frame indicated in the
LaserScan message header.
Whats Happening:
The code to transform the Laser readings from the frame in the LaserScan
message header to the base_frame is incomplete.
It is currently only processing the X offset so if the laser is offset in Y or
Z or rotated in any way the transform is incorrect.
Also the X offset that is handled is not being scaled by the METERS_TO_MM
factor, therefore giving an incorrect offset.
What version of the product are you using? On what operating system?
albany-ros-pkg - Revision 225: /trunk/slam_coreslam/coreslam/src
running on Linux Ubuntu. 10.10
Please provide any additional information below.
In method initMapper in file slam_coreslam.cpp make corrections as shown in
comments below.
bool SlamCoreSlam::initMapper(const sensor_msgs::LaserScan& scan)
{
…
// configure laser parameters
lparams_.offset = laser_pose.getOrigin().x(); // SHOULD BE Multiplied by METERS_TO_MM !!!!
// lparams_.offset = laser_pose.getOrigin().x() * METERS_TO_MM; // This would be correct !!!!
// Also full transform in X,Y,Z and rotation in X,Y,Z should be fully handled.
…
}
Original issue reported on code.google.com by ralph...@gmail.com on 22 Mar 2011 at 9:38
Original issue reported on code.google.com by
ralph...@gmail.com
on 22 Mar 2011 at 9:38