Hello,
I would like to use laser scans data recorded from a 2D scanner into laser_scan_matcher package in order to get a pose2D or odometry (purely laser odometry). (Ros kinetic on Ubuntu 16.04)
The scanner is mounted on the top of a vehicle at a particular orientation. We have a transformation matrix from the laser coordinate frame to the base frame (fixed to the vehicle) call it C_socs2base.
I am using a launch file created from the demo launch file of the package.
**Problem**:
I see that the base frame is not moving significantly and the trajectory is very short just centered around the origin. I am not getting any meaningful pose/trajectory.
**Questions:**
Q1. Can laser_scan_matcher package work fine with a scanner sensor which is not mounted horizontally to the base coordinate? Note: The maximum range of the scanner is upto 200m
Q2. Do I need to initialize the first pose of the robot (base coordinate) in the world frame? If yes then how? I have done this step as discussed below:
We have an initial pose of the base frame with respect to the world frame (x,y,z and roll,pitch, yaw at time 0 as t_0 ).
I edited the source code of the package in laser_scan_matcher.cpp
where I replaced f2b_.setIdentity() and f2b_kf_.setIdentity() with the following codes:
tf::Quaternion q;
q.setOrigin(Vector3(x,y,z at t_0));
q.setRPY(roll, pitch, yaw at t_0);
f2b_.setRotation(q);
f2b_kf_ = f2b_;enter code here`
Here is the launch file:
`
↧