robot mapping and navigation
- I have a Kinect sensor and a laptop on a small differential drive robot - similar to a turtlebot, but homebrew with better motors and Phidgets to interface the laptop to the encoders and motor drivers.My plan was to use Linux and ROS for mapping and navigation. It turns out that this isn't so easy....I've spent over a year and I've had a lot of help - I can now run the robot around using a joystick while building a map, then I can indicate a start position and a goal position on the map, the robot then successfully plans, plots and displays a path from the start to the goal... then it heads off in the wrong direction.I suspect that I'll eventually be able to get this to work - but about then ROS will upgrade something... and in the past when that's happened stuff stops working until you reload everything and figure out what (poorly documented) changes you have to make to get it all working again like changing pathnames. Very frustrating.More importantly I'd like to bring this to the Leaf Project community - an on-line free open source home robotics project. And, quite frankly, I don't think that most home hobbyists are going to be able to get ROS to work - so far the only 2 in our group that I know of are both PhD's.So my question for this group is does anyone know of and have you had personal experience with a better solution. Basically I want the robot to be able to localize using the Kinect (I'm in the middle of the living room) then plot a course to a destination (I think I'll go to the kitchen) then go there while avoiding any obstacles in it's way (replanning if it encounters something like a closed door). Other than ROS, is there available software out there that does this?I don't care if the platform is Linux or Windows - in fact I'd prefer Windows since the AI software is running on Windows and that would make that interface that much easier.BTW, rereading this it may sound like I'm bashing ROS - and I'm not.... but I think it may be on a different level than the average hobbyist... more like something for a team of university graduate students...Anyway thanks for your help - this group has always been helpful and informative!Dr. Bruce.
> I've spent over a year and I've had a lot of help - I can now run the robot around using a joystick while building a map, then I can indicate a start position and a goal position on the map, the robot then successfully plans, plots and displays a path from the start to the goal... then it heads off in the wrong direction.Bruce,
I'm exactly at the same point you are. My robot immediately drives to the closest wall and sits there and looks stupidly at the wall.
This page http://www.ros.org/wiki/turtlebot_navigation/Tutorials/Autonomously%20navigate%20in%20a%20known%20map says:
"The teleoperation can be run simultaneously with the navigation stack. It will override the autonomous behavior if commands are being sent. It is often a good idea to teleoperate the robot after seeding the localization to make sure it converges to a good estimate of the position. "
I'm thinking that it is not a good idea to initially drive manually but maybe it is a requirement. Maybe just rotate 360 degrees before moving autonomously would be good enough? I haven't tried that. You can see the "cloud of uncertainty" get smaller (the cloud of red arrows around the robot) as you manually drive it around.
I also have a hard time trying to figure out the ROS documentation. But I plan to continue on when I get time.
As far as other approaches, there is MRPT (Mobile Robotics Programming Toolkit). I don't know much about it but the YouTube videos make it look like it is comparable to ROS. It appears to be a collection of libraries. But you may be left to figure out how to piece them together.
A product like RoboRealm that is built on top of ROS would be fantastic. Imagine dragging a Kinect module into the list followed by a SLAM module. Then drag a 2Dnav module into the list. And imagine it all magically connecting and working. Somebody should write that program! :-)
Thanks for the reply. It's interesting that we're both stuck at the same
point - let me know if you figure out how to get this going. In the
meantime, I have used RoboRealm quite a bit and I'm considering returning to
it to attempt navigation using the Kinect, odometry and fiducial landmarks.
Separately MRPT has a steep learning curve - and no navigation module as
yet.... so I'm staying away from that for now...