siddhu95 / albany-ros-pkg

Automatically exported from code.google.com/p/albany-ros-pkg
0 stars 1 forks source link

ros coreslam wrapper not properly processing Laser to base_link transform #4

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
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