A new robotics platform for myself
C++ Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
daemon
.gitignore
README.md
joycontrol.py
keycontrol.py
zmq_connect.py

README.md

robot2

After two years of nothing, I've decided to continue my work with elementary robotics. This time I utilize a vastly different, decoupled architecture that relies on ZeroMQ for messaging a central robot control daemon. This will make for a much more robust robot platform that can benefit from quick prototyping.

The central control daemon (written in C++) listens on port TBD for instructions and relays them to the robot.

Robot Hardware Support

Currently I am working with the Robotics Connection Serializer, but I plan to do work with Arduino in the near future. In the end I aim to support both platforms.

Components Included

Hardware Control

  • daemon/ -- Contains the main driver daemon; written in C++. There remains much work to be done to make the drive control more sophisticated, but it can handle basic movement and control timeouts.

Basic Clients

  • keycontrol.py -- Control the robot with the keyboard; written in Python/PyGame.
  • joycontrol.py -- Control the robot with a joypad; written in Python/PyGame.

Advanced Clients

I will be writing some basic AI to control the robot through sensor perception and simple heuristics. These will likely be contained in different repositories, but I will make note of them here.

API Documentation

TODO. Considering JSON protocol. This will follow when a more robust mechanism for controlling the robot speed differentials is implemented. It will probably also allow specification of timeouts in the event commands are being relayed over the network.

Gamepad Support in Unix

PS3 controller

For PS3 Sixaxis controller support, compile the QtSixA library. From there, Sixaxis controllers work out of the box over bluetooth.

  • sixad starts the service
  • qtsixa can configure individual device profiles, functions, features, etc.

Note: Remove xorg joystick input packages to prevent it from aliasing the mouse.

Xbox 360 controller

TODO

Wiimote

TODO

License

Copyright (c) 2008-2010, 2012 Brandon Thomas

This code is available under the MIT and GPL 2 licenses.