15-494 Mini Projects 1

Gamepad Interface for ControllerGUI

This project will add ControllerGUI support for the XBox 360 gamepad. The ControllerGUI will read gamepad events and send a stream of data to Tekkotsu on a dedicated port. Resources:
  • JInput package for Java.

  • Building a Game Pad Controller with JInput (tutorial)

  • See HeadPointGUI.java and HeadPointListener.java in /usr/local/Tekkotsu/tools/mon/org/tekkotsu/mon to understand how the head controller works. It reads mouse clicks and sends tilt, pan, and roll inputs to the robot. Your code will do something similar. Note: it's possible to run the head controller directly, but normally, you use the ControllerGUI to launch it for you by clicking on the "H" button in the ControllerGUI window.

  • See the documentation in HeadController.h in /usr/local/Tekkotsu/Behaviors/Mon for an explanation of the message format used on the head controller port.

Game Pad Event Generator for the Robot

This project will implement a Tekkotsu background service to listen on a dedicated port for game pad inputs sent by the ControllerGUI. Upon receiving something, it will generate a Tekkotsu event (an instance of EventBase) with event generator ID of gamepadEGID (a new generator ID) and the necessary game pad details. Resources:

  • See HeadController.h and HeadController.cc in /usr/local/Tekkotsu/Behaviors/Mon for the code that reads input from the head controller port.

  • See the documentation for the EventBase class or look at EventBase.h in /usr/local/Tekkotsu/Events to understand how to create a new event generator. The event's source ID will indicate which button was pressed on the game pad.

Visually Recognizing a Robot

This project will look at ways to visually detect a robot, either on a level field (one robot looking at another), or using a perched camera. Possibilities include putting AprilTags on the robot, using brightly colored costumes that can be detected as large blobs, or using flashing lights. Each has its advantages. The goal is to see what works and what doesn't work under various conditions.

Dave Touretzky
Last modified: Tue Feb 3 03:42:08 EST 2015