ROS functionality includes:
- Support for various sensors and robots including Neato XV-11, Roomba, IRobot, Pioneer/ARIA, Nao, Android, KUKA, Sick, Hokuyo, Bumblebee, Firewire cameras, Webcameras, Xsens, Wiimote, EtherCAT, CAN
- Support for a number of other libraries/packages including CUDA, OpenCV, Eigen, PCL, SVM/Bayesian, Spatial subdivision, OGRE, XML, and many more.
- Motion planning library for mobile robots
- 3d Navigation stack
- Inverse dynamics for robotic manipulators with calibration points
- SLAM packages including Graph SLAM (see Laser SLAM), RGBD 6D SLAM and Spares visual SLAM (also ScaViSLAM)
- Multi target tracking
- People detection with laser (leg) and vision
- Physics engines including ODE and Bullet, and the Gazebo and OpenRAVE simulators and COLLADA loaders.
- ROS functionality overview at the CoTeSys ROS school held at the Technical University Munich (my old visiting University).
I've never been a fan of massive (disorganised!) frameworks that force a work structure onto you, but the robotics world isn't leaving you with much choice anymore. After implementing a graph based information flow architecture in ImprovCV and working closely with DirectShow's graphfilter I'm also keenly aware of the limitations of a graph-based approach to software development. It's not a one-size-fits-all solution, unfortunately ROS leaves little choice.
Thankfully some ROS packages are largely stand alone, so there is still some hope that one day some organisation will put in the effort to streamline and clean up ROS overall.
In any case getting ROS running on Apple Mac OSX 10.6 was not too difficult, however I lost my install notes in an untimely crash, so I'll only give a brief overview. ROS installation relies on MacPorts. I'd been holding off on installing MacPorts as it has historically been unstable, and doesn't play nicely with already installed libraries. MacPorts is now stable and well tested, but it still doesn't play nice with the rest of your system.
To install ROS I followed the ROS diamondback OSX installation instructions, all without any major dramas. I did have to alter the CMakeLists.txt as suggested in the troubleshooting section.
MacPorts gave me a few headaches, some of the errors I encountered were:
- Error: Target org.macports.install returned: no destroot found
To solve, use:
sudo port clean NAME
- Error: NAME already exists and does not belong to a registered port
To solve, use:
sudo port -f activate NAME
Once ROS is all installed you can source setup.sh. Remember to add in any additional packages to ROS_PACKAGE_PATH.
All in all, I wouldn't recommend running ROS on OSX, although the base ROS install works without any major dramas, installing each individual package is a bit of a struggle.
I believe ROS is an appropriate name, it really should be a stand alone operating system. I would strongly advise setting up a separate linux OS dedicated to your ROS install, running ROS ontop of OSX is quite problematic.