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

Using Husky with Kinect for GMAPPING

asked 2015-03-05 15:27:13 -0600

musiqsoulchild gravatar image

I am having the issue when I'm running gmapping. It says "Scan Matching Failed, using odometry". Not quite sure how to fix that. Searching online we found other people also experiencing similar problems. ( http://answers.ros.org/question/64308... ). The second answers there states that another person had the same issue with the kinect but when he used a laser it worked perfectly. Should we focus on user a laser instead of the kinect? One of the persons suggestions was to slowly move around but when we tried that, the map created was still incorrect. I was able to create a map of a small area but when I move the Husky around too much, the odom error increases and the map created is very inaccurate.

Another thing I have noticed is that when moving the robot around and displaying the transforms on rviz, the odom frame is significantly off from the rest of the transforms. Initially the odom frame starts at the same position as the other frames but as the robot moves around, the distance between odom and other frames increases. Pictures have been attached to show exactly what is happening. Is this supposed to happen because the odom data is so incorrect? Also when running gmapping, for some reason the rate at which the scans are registered is so slow. I updated the gmapping parameter responsible for the update rate however nothing changed.

Here is a video I took yesterday of the husky moving around. It gives a clear picture of the problem. I also attached a picture of the setup. Overall gmapping did a decent job at capturing the setup. However when we tried it in a bigger area, it struggled.

https://www.youtube.com/watch?v=HkTOk...

Since I can't attach files here. I have uploaded them:

http://i58.tinypic.com/105qoe8.png http://i60.tinypic.com/21kkwh4.png http://i57.tinypic.com/35byplj.png http://i62.tinypic.com/j589oy.jpg

Help is appreciated.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2015-03-11 20:29:20 -0600

paulbovbel gravatar image

updated 2015-03-22 14:33:59 -0600

The Kinect is, in general, not great for mapping/localization due to low FOV and poor accuracy. How's the odometry on your platform? ( http://wiki.ros.org/navigation/Tutori... )

Because Husky is skid steer, you are going to have quite a bit of rotational slippage. The best way to compensate for that is by using an IMU along with a filter such as robot_pose_ekf or robot_localization.

You can also compensate for slippage by adjusting width between the Husky's wheels used to calculate odometry in the skid-steer model. If you're on Hydro, that parameter is here ( https://github.com/husky/husky_base/b... ). Spin your Husky using teleoperation, and then tune that parameter until your odometry /encoder topic agrees with how much the robot is actually rotating. This is just applying scaling factor, so it'll only normalize the error, and only for a certain subset of driving surfaces.

edit flag offensive delete link more

Comments

I stopped using the odom from the husky and switched to a hokuyo laser scanner. Now I'm using hector_slam and using it to publish odom data.

musiqsoulchild gravatar image musiqsoulchild  ( 2015-03-22 15:28:09 -0600 )edit

Question Tools

3 followers

Stats

Asked: 2015-03-05 15:27:13 -0600

Seen: 785 times

Last updated: Mar 22 '15