Robots programming, tools and frameworks
Many environments and programming tools are competing to program robots. Even Microsoft, the creator of Visual Studio, is interested in this market and offer a product in its line of development tools.
Programming and simulation tools for robotics
OSRF. Free and open source. Linux Only.
Developed by the OSRF (Open Source Robotics Foundation), Gazebo has its own website. It is an interface to a virtual robotic world where you can control a population of robots. It provides a library of components of virtual worlds.
Microsoft. Free. Windows.
Robotics Developer Studio is produced by Microsoft for several years and became free in May 2010. It was at that time 60,000 active users.
The Visual Programming Language, VPL, allows to create applications by drag and drop of predefined components. A runtime, CCR (Concurrency and Coordination Runtime), operates asynchronously exchanges between equipment, arms, sensors, etc.. and the software that controls it.
The Visual Simulation Environment (VSE) is the strong point of this tool because it allows to experiment in a 3D virtual world robots interaction with objects, walls, and so programming becomes a game.
List of supported robot
- Mindstorms NXT from Lego. Transformable robot .
- iRobot. Roomba-like.
- Pioner 3Dx from Mobile Robots. A robot vehicle.
- Boe-Bot from Parallax.
- and several others.
Willow Garage and OSRF. Free and open source. Windows, Linux, Mac.
Robot Operating System is a system that controls the robot on which we can implement applications. It runs on Linux and seems rather incomplete on Windows, insofar as it contains many tools running under UNIX.
He wants to centralize existing frameworks into a single software. It is not in itself a real time tool, but you could add a module to do this.
The programming languages used are C and Python, while others are developing.
List of supported robot
- ROS wiki. Documentation.
Gostai. Open source.
As RDS, Urbi can program a robot or other automated system with components to be assembled.
The UrbiScript programming language is used to program in parallel and access objects in C describing interactions with the hardware. The language has a syntax similar to C with mandatory sentences reflects the orders passed to the machine.
- Urbiforge. Several videos describing the system.
POB Technology. Free.
For Windows only, this development environment is made of a graphical interface, Risbee, and a framework, POB Tools.
It is really simple to use but harder to install.
Free and open source.
Arduino is an electronic platform and open source development environment, based on Processing for all kinds of actuators of robots or automated equipment.
The Arduino language development (based on Wiring) is close to the C language
One develops on Arduino in a textual and non-visual way as with RDS.
National Instruments. $ 1250.
For industry, it provides an interface to program all sorts of instruments including automated and robotic systems.
Widgets are used to control interfaces to the data. Drivers (such as that of graphics cards) are used to identify different materials. Different languages, graphic, containing objects to combine into patterns are translated into C language to run on various platforms.
Interfaces between robots and software.
- Carmen. Software control of mobile robot.
- Orca. Framework of robotic software components.
- Orocos. Framework for robot control.
- Player. Interface control of robots and sensors. It is a competitor to ROS while other frameworks are incorporated into the latter.
- Yarp. Collection of programs to communicate with a robot. Used by RobotCube.
- Moos. Communication library.
- Robotnav offers a library for navigation.
- Brain. Neural network easy to use.
Vision and object recognition
- FastCV. Computer vision for augmented reality.
- SimpleCV. Framework to build applications making use of artificial vision.
- LibCCV. Object recognition library.
- OpenCV. Open source computer vision, libraries with multiple interfaces, including C++ and Java. Very popular but is limited.
- Waffles. Machine learning command line toolkit.
- NuPic. Library for intelligent computing, machine learning, in C++, works on Linux/Unix.
- Weka. In Java.