Ask Your Question
2

Gmapping with Husky A200 and SICK LMS100 [closed]

asked 2013-03-14 11:21:30 -0600

updated 2014-01-28 17:15:43 -0600

ngrennan gravatar image

Hi All,

I am attempting to get Gmapping to work with the Clearpath Robotics Husky A200 UGV using a SICK LMS100 laser range finder. I am pretty new to ROS, so please forgive me if I've made a glaring error. I am having trouble figuring out how to do the transforms. The wiki page for gmapping states that the base to odom transform should be provided by the odometry system, and that map to odom transform is provided. For the scan frame to base link though, the wiki says "usually a fixed value, broadcast periodically by a robot_state_publisher, or a tf static_transform_publisher." Has Clearpath made a tf package for the Husky, or can anyone that has done this give me a hand?

Thanks

UPDATE So I have added a static transform from base link to laser. When using view_frames I have links from /map->/odom and /base_link->/laser, but no link between /odom and /base link. I used another static transform to connect odom to base link, but it didn't do anything. When I run gmapping_demo.launch I get the message: "[WARN] [time stamp]: Waiting on transform from /base_link to /map to become available before running costmap, tf error: Could not find a connection between '/map' and '/base_link' because they are not part of the same tree. TF has two or more unconnected trees." How do I connect these trees?

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by Icehawk101
close date 2013-04-02 05:43:23

Comments

I'm not sure, but doesn't the Husky come without a laser? If you mounted that yourself, you'll have to do the config yourself. However if it is a fixed mount, you could even use a tf static_transform_publisher to send the fixed transform.

dornhege gravatar imagedornhege ( 2013-03-14 11:37:35 -0600 )edit

I tried adding a picture of view_frames to show everyone what's going on, but for some reason it won't let me. Apparently I need more karma.

Icehawk101 gravatar imageIcehawk101 ( 2013-03-20 09:24:04 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
1

answered 2013-03-14 13:38:22 -0600

Ryan gravatar image

The Husky should be running both a robot_state_publisher and joint_state_publisher by default on startup (startup launchfile)

These two wiki pages may also be of help:

husky_localization

husky_navigation

Of course, what is on your robot right now partially depends on when your robot was set up, but all of the source for the Husky ROS packages is on our github (our techs work from it, too)

edit flag offensive delete link more

Comments

husky_localization is made for the Kinect, so I don't think it will work with my sensor. I tried husky_navigation but I got two warnings. I think they are about the transforms and I found a similar issue about them in another thread.

Icehawk101 gravatar imageIcehawk101 ( 2013-03-15 09:23:04 -0600 )edit
0

answered 2013-03-20 10:19:11 -0600

After a great deal of work and some help from you fine folks, I got it working. I was able to get odom linked to base_link (through the base_footprint). Thanks all for your help.

edit flag offensive delete link more

Comments

Hey, do you think you could post a bit about how you solved this? I'm having similar issues and I'm curious how you solved it. Thanks

Toaster gravatar imageToaster ( 2013-03-22 17:08:02 -0600 )edit

Yes, I'd also like to hear what you had to do. I've asked someone else here to look into this (as far as we knew, things worked out of the box)

Ryan gravatar imageRyan ( 2013-03-25 03:49:05 -0600 )edit

Actually, I didn't fix it as well as I thought. The problem, as I mentioned, was that there was no link from odom to base_footprint. I used the tf static_transform_publisher to attach them.

Icehawk101 gravatar imageIcehawk101 ( 2013-03-25 04:34:45 -0600 )edit

The problem with this is that gmapping updates the map by tracking changes on the transform between odom and base_footprint. Since I used a static transform the map shows the first scan and then never updates as the transform never changes.

Icehawk101 gravatar imageIcehawk101 ( 2013-03-25 04:35:58 -0600 )edit
1

You should use something like robot_pose_ekf (http://www.ros.org/wiki/robot_pose_ekf ). This outputs a tf between odom_combined and base_footprint. The example launch file shows you how to configure it so that the tf is between odom and base_footprint.

Hope this helps!

pmukherj gravatar imagepmukherj ( 2013-03-28 06:05:08 -0600 )edit

That is what I am trying now, I don't see anything on how to configure between odom and base_footprint though.

Icehawk101 gravatar imageIcehawk101 ( 2013-03-28 06:18:43 -0600 )edit

Wow, this is late, but robot_pose_ekf did the trick. I had to edit the launch file and remap the input from "odom" to "encoder" and remap the output from "odom_combined" to "odom". It workds perfectly now.

Icehawk101 gravatar imageIcehawk101 ( 2013-04-18 12:28:59 -0600 )edit

Which launch file did you have to edit? Thanks!

2ROS0 gravatar image2ROS0 ( 2014-07-03 11:01:39 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2013-03-14 11:21:30 -0600

Seen: 1,510 times

Last updated: Mar 22 '13