Ask Your Question
2

Building a firefighting robot using ROS: a good idea?

asked 2012-03-20 17:15:28 -0500

eschulma gravatar image

I have entered a firefighting robot competition which is similar to the famous Trinity College one. The robot must conduct a search of rooms in a known map with a known starting position.

My thought was that I could use some sonar or IR sensors along with encoders on the robot, and use ROS via XBee to a PC to localize the robot and publish the necessary cmd_vel to control the motors. I have already gotten teleop with a joystick to work (which is good news, my kids will be able do to their part of the competition). However, as I sit and wait for parts to arrive, I am wondering if my solution has any chance of working. Is the navigation stack on ROS fast enough to keep up with a speedy little robot? Will it do a decent job on localization if don't have a laser scanner or Kinect? I do know the map and the starting position.

I know that Fergs is a prior Trinity winner and he used wall following as his primary form of navigation. Perhaps a combination approach of that with ROS doing corrective localization would work? Or is this a completely crazy idea.

I realize this is largely a "try it and see" type of situation, but I'd welcome any comments or advice.

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
0

answered 2012-03-21 08:10:44 -0500

Ryan gravatar image

I would recommend for ROS, but against using the nav stack for your particular application. The default mapping, localization, and planning algorithms in the nav stack are fairly CPU-intensive, and would be unlikely to be able to keep up with the speeds your robot would likely be running at. Though you can fake a laser with sonar as Dimitri said, you really have to be sitting still if you want to simply drop that data in place of the LIDAR data the nav stack wants (since a LIDAR scan is much more of a snapshot than a slow sonar/IR scan is).

Though the nav stack can be modified to meet your needs, it would likely be easier for you to use ROS as the underlying infrastructure and write your own behaviour node(s) if you're not already familiar with transforms and the nav stack.

edit flag offensive delete link more

Comments

Ryan, thank you, that is what I suspected. I think I could work around the slowness of a IR pan, but even so, it is more complicated than necessary.

eschulma gravatar image eschulma  ( 2012-03-21 09:00:26 -0500 )edit
1

answered 2012-03-21 04:59:35 -0500

DimitriProsser gravatar image

I'm sure that ROS could do what you want to do. If your IR or sonar sensor is on a gimble or turret, you can easily use that system to "fake" a LaserScan message. All you need is the sensor and an encoder on the turret, and you have a cheap LIDAR (much slower of course). This could then be converted to a LaserScan message for use with the navigation stack.

Wheel odometry from the wheel encoders will provide fairly realistic odometry over short to moderate distances, provided that the robot's driving dynamics aren't outlandish (4-wheel skid-steer also poses a problem).

ROS provides this stack for the LegoNXT. If that robot can be used with ROS, there's no reason that yours can't.

edit flag offensive delete link more

Comments

Thank you! I have seen the approach you mention used for Pi Robot, haven't checked the LegoNXT stack but will soon. The real question in my mind has been, will it be fast and reliable enough, as mentioned in the next comment...

eschulma gravatar image eschulma  ( 2012-03-21 08:58:27 -0500 )edit
0

answered 2012-03-21 09:05:57 -0500

eschulma gravatar image

I've decided to avoid the ROS navigation stack. Based on the comments here and my own intuition, it would almost certainly be too slow. This contest is based on speed, after all.

I have looked at what previous winners did and the wall following approach makes sense. It can also be handled fairly easily by the microcontroller itself. Mike Ferguson's tutorials and code have been very valuable.

I will be using ROS for the teleop version of the bot in the kid's contest, and at some point I may make use of the ROS navigation stack for another task. It's been a fun learning experience.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2012-03-20 17:15:28 -0500

Seen: 438 times

Last updated: Mar 21 '12