We are just beginning to collect technology tools, environments, libraries & other cool projects done in Python for the Robotics area. If you know of any other projects that we are missing, please add to your blog, Reddit comments or anywhere on the web and we will add it back to our list and refer back to you. If you plan to chime in via Twitter, just hashtag #pythonrobotics and we will track it from there.

Pyro

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.

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 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.

CellBots

Cellbots started as a single Python file, but has grown into a significant libray to support multiple communication methods and a variety of robot platforms. The use of Python on Android is possible thanks to the Scripting Layer 4 Android, an open source project that allows scripting languages such as Python, Lua, PHP, Perl, and others to work on your phone. While this doesn’t support rich UI’s like Android primary Java language does, you can whip up some new code quickly and experiment with robotics.

With the Cellbots Python library, you can run your phone as a remote control or as the robot’s onboard brain. Commands can be sent via Google Talk as chat messages (XMPP), through Telnet, voice recognition, over HTTP using the local network. The primary way for the phone to talk to the robot is using Bluetooth on any Android 2.0 and up phone, but methods for modding the phone to accept serial input can also be used.

The Python codebase currently supports talking to Arduino robots like Truckbot and Tankbot, the VEX Pro, and iRobot Create & Roomba.

Pypot

Pypot is part of the Poppy project aiming at developping robotic creations that are easy to build, customise, deploy, and share. It promotes open-source by sharing hardware, software, and web tools.

Pypot is a library developed in the inria FLOWERS team to make it easy and fast to control custom robots based on dynamixel motors. This framework provides different levels of abstraction corresponding to different types of use. More precisely, you can use pypot to:

directly control robotis motors (both protocol v1 and v2 are supported) through a USB2serial device,

define the structure of your particular robot and control it through high-level commands,

define primitives and easily combine them to create complex behavior.

Pypot has been entirely written in Python to allow for fast development, easy deployment and quick scripting by non-necessary expert developers. It can also benefits from the scientific and machine learning libraries existing in Python. The serial communication is handled through the standard library and thus allows for rather high performance (10ms sensorimotor loop). It is crossed-platform and has been tested on Linux, Windows and Mac OS.

Pypot is also compatible with the V-REP simulator. This allows you to seamlessly switch from a real robot to its simulated equivalent without having to modify your code.

RosPy

rospy is a pure Python client library for ROS. The rospy client API enables Python programmers to quickly interface with ROS Topics, Services, and Parameters. The design of rospy favors implementation speed (i.e. developer time) over runtime performance so that algorithms can be quickly prototyped and tested within ROS. It is also ideal for non-critical-path code, such as configuration and initialization code. Many of the ROS tools are written in rospy to take advantage of the type introspection capabilities. Many of the ROS tools, such as rostopic and rosservice, are built on top of rospy.

OpenRavePy

openravepy Package allows Python to use the OpenRave C++ API seamlessly. The bindings are developed using the Boost.Python library. Because openravepy directly links with OpenRAVE instead of going through the network, it allows much faster execution times in a much more natural setting. In fact, most of the python bindings match the exactly C++ header files exactly.

Python Library for HummingBird Robotics Kit

The Hummingbird Robotics Kit is a spin-off of a six year (and on-going) research project at Carnegie Mellon's CREATE lab. The project began in 2006 as Robot Diaries, which aimed to create an after school engineering and robotics activity that could appeal to middle school girls as much as or more than to boys. Initial pilots with groups of girls, followed by an expanded focus that included both boys and girls as well as teachers and in-school curricula led to a renaming of the project to Arts and Bots and a focus on creating curricula and technologies that integrate arts and crafts with engineering education.