Skip to content

echelon/robot2

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

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.

About

A new robotics platform for myself

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published