Presented by

Abstract

ROS, the "Robot Operating System" is more accurately described as a framework of open source software that runs on Linux and helps you build robots by combining larger "nodes" of code. ROS helps these nodes communicate and can handle (re)starting them, monitoring them, and stopping them for you. With ROS you can use existing code to convert a depth sensing camera into fake laser scan data. Then you can insert your own code to update a map showing where obstacles are located. This way you can focus on the parts of the robot that are the most interesting to you at the time and draw on a large base of existing code to enable your robot to perform complicated tasks without having to write everything. Better yet you can drop parts of the code in and out of the robot to compare how well an idea works against an existing implementation. I will talk about ROS and about some of the robots I have built using it. There are many lessons along the way, some of which are only learnt the hard way it seems. It is always fun when your robot doesn't notice it is heading toward a wall and you pick it up off the ground only to have it stop moving and think it is magically "outside the room" on it's internal map. The books don't seem to cover the magical ghost_robot_mode=off option. Initially I attempted to run a low degree of freedom arm using MoveIt which is the ROS arm control software. I ended up writing that code manually and found that you need at least a 6 degree of freedom (dof) arm to succeed using MoveIt. While some cheap arm kits are sold as 6 dof they aren't and you will need some tinkering to make them real before MoveIt will yield acceptable results https://www.youtube.com/watch?v=qfx0TrbOsok I hope that some of the stories of long battles will inspire interest in using ROS and playing with robotics. I will have a few of my builds on hand including the outdoors "houndbot" with discussions about physical builds. http://monkeyiq.blogspot.com/2018/04/my-little-robotic-pals.html