|
Robot Software
|
For those new to robotics, it is natural to think that constructing the robots electronics and body (the hardware), is where most of the time is spent. Although these tasks can be time consuming, most of the development, effort of any robot project, is focused on the software. Robot software can be divided into the following categories:
- Design - Deciding on how the robot will be made
- Control system - Controls the movement of the robot
- Testing - Checking for errors in the control system
- Simulation - Simulating how the robot will behave in the real-world
The following sections describe a selection of the most popular robot software available. For those new to robotics, we highly recommend having a look at Robomind. This free software is a great place to start and should help you understand many key robotics concepts. For Intermediate and Advanced users, we recommend Microsoft Robotics Developer Studio if you are using Windows and Pyro if you are using Mac OS X or Linux.
User: Intermediate / Advanced
Microsoft Robotics Developer Studio 2008 (MRDS), previously known as Microsoft Robotics Studio (MSRS), is a Windows-based environment for hobbyist, academic and commercial developers to create robotics applications for a variety of hardware platforms. RDS includes a lightweight REST-style, service-oriented runtime, a set of visual authoring and simulation tools, as well as tutorials and sample code to help get started.
Microsoft Robotics Developer Studio Simulation
|
Microsoft Robotics Developer Studio supports a broad set of robotics platforms by either running directly on the platform or controlling it from a Windows device through a communication channel such as Wi-Fi or Bluetooth.
In addition to providing support for Microsoft Visual Studio, Microsoft Robotics Developer Studio 2008 R2 Express Edition provides a visual programming environment which allows developers to create applications simply by dragging and dropping components onto a canvas and wiring them together.
The powerful Visual Simulation Environment provides a high-fidelity simulation environment powered by NVIDIA™ PhysX™ engine for running game-quality 3D simulations with real-world physics interactions.
To help developers getting started, the studio contains extensive documentation and a large set of samples and tutorials that illustrate how to write applications ranging from simple "Hello Robot" to complex applications that simultaneously run on multiple robots.
MRDS Sumo Simulation
|
User: Beginner
ROBO is a new and very simple educational programming language that will familiarise you with the basics of computer science by programming your own robot. In addition to an introduction into popular programming techniques, you will also gain insight into areas such as robotics and artificial intelligence.
ROBO is designed in such a way that you can start exploring and programming right away. A special programming language has been created that consists of a concise set of rules and is aimed at programming a robot. As a result there are a lot of opportunities to create programs on your own and experience the principles that lay at the heart of most other programming languages.
The entire RoboMind environment is completely free for both individual as well as educational and commercial use. There are no unpleasant surprises such as trial periods, restricted functionality or advertisements.
User: Intermediate
Pyro stands for Python Robotics. The goal of the project is to provide a programming environment for easily exploring advanced topics in artificial intelligence and robotics without having to worry about the low-level details of the underlying hardware. That is not to say that Pyro is just a toy. In fact, Pyro is used for real robotics research as well as courseware.
Pyro is written in Python. Python is an interpreted language, which means that you can experiment interactively with your robot programs. In addition to being an environment, Pyro is also a collection of object classes in Python. Because Pyro abstracts all of the underlying hardware details, it can be used for experimenting with several different types of mobile robots and robot simulators. Until now, it has been necessary to
View of the Robocup Soccer field |
learn very different and specific control languages for different mobile robots, particularly those manufactured by different companies. Now, a single language can be used to program many different robots, allowing code to be shared across platforms as well as allowing students to experiment with different robots while learning a single language and environment.
Robots: Currently, the robots supported include the Pioneer family (Pioneer, Pioneer2, PeopleBot robots), the Khepera family (Khepera, Khepera 2 and Hemisson robots), the AIBO, the IntelliBrain-Bot, and the Roomba.
Simulators: Pyro is integrated with several existing robot simulators including Robocup Soccer, Player/Stage, Gazebo and the Khepera simulator.
Pyro has the ability to define different styles of controllers which are called the robot's brain. For example, the control system could be a neural network, behaviour based, or a symbolic planner. One unique characteristic of Pyro is the ability to write controllers using robot abstractions that enable the same controller to operate robots with vastly different morphologies. That is, a controller program written for a Khepera robot (hockey puck-sized, with infrared sensors) could work equally well for a Pioneer robot (medium suitcase-sized, with sonar sensors).
Features:
- Open source - available for study, or changing
- Designed for students, faculty and researchers
- Works on many real robotics platforms and simulators
- Extensive course modules include control methods, vision (motion tracking, blobs, etc.), learning (neural networks, reinforcement learning, self-organising maps, etc.), evolutionary algorithms, and more.
User: Intermediate / Advanced
The Player Project creates Free Software that enables research in robot and sensor systems. The Player robot server is probably the most widely used robot control interface in the world, and supports a wide variety of hardware. Client libraries in C, C++, Python, and Ruby are officially supported, while Java, Ada, Octave, and others are supported by third parties. Its simulation backends, Stage and Gazebo, are also very widely used.
Released under the GNU General Public License, all code from the Player Project is free to use, distribute and modify. Gazebo is developed by an international team of robotics researchers and used at labs around the world.
Stage
Stage is a 2D multiple-robot simulator from the Player project.
Stage simulates a population of mobile robots, sensors and objects in a two-dimensional bitmapped environment. Stage is designed to support research into multi-agent autonomous systems, so it provides fairly simple, computationally cheap models of lots of devices rather than attempting to emulate any device with great fidelity. We have found this to be a useful approach.
Gazebo
Gazebo is a 3D multiple robot simulator with dynamics from the Player project.
Gazebo is a multi-robot simulator for outdoor environments. Like Stage, it is capable of simulating a population of robots, sensors and objects, but does so in a three-dimensional world. It generates both realistic sensor feedback and physically plausible interactions between objects (it includes an accurate simulation of rigid-body physics).
Click here to read more about the Player Project
User: Intermediate / Advanced
MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualisation, data analysis, and numeric computation. Using the MATLAB product, you can solve technical computing problems faster than with traditional programming languages, such as C, C++, and Fortran.
You can use MATLAB in a wide range of applications, including signal and image processing, communications, control design, test and measurement, financial modelling and analysis, and computational biology. Add-on toolboxes (collections of special-purpose MATLAB functions, available separately) extend the MATLAB environment to solve particular classes of problems in these application areas.
Click here to read more about MATAB
|
|
|
|