• Welcome to Redshift Project Depot.

Driver station - beyond the joystick and game controller

Started by Louis L, April 12, 2018, 05:05:04 PM

Previous topic - Next topic

Louis L

I'm putting this here for lack of a better place on the Forum.

For next year, I want to try and experiment. I want to extend the control interface beyond just the (driver) joysticks and (operator) game controller. I want to build a custom input device (CID).

Why? Adding another device probably isn't the smartest thing to do, and on the surface, it's also not the most necessary. But I'm looking at this not from a pure Drive Team perspective but past that. For a given game the Drive Team knows the ins and outs of the controls - be they on the joysticks or the game controller. That's not an issue. They have put in the time needed to be good at the controls in order to use them in competitions. The software developers are also sometimes good with some/all of the controls. They have to use them during software development. The problems comes in when the rest of the world needs to use the robot and none of the people who know how it works are available. We try to keep the Forum UI topic up to date as a reference for this reason but it's not handy to have to refer to this document all the time.  What we need is something more intuitive and flexible.

What? The standard Driver Station consists of a Windows laptop and some controllers. Usually this consists of 2 joysticks for robot motion control by the Driver and one or more additional controls for the Operator. The joysticks are USB joystick devices and the controls are USB game controllers.

Some teams make an entire custom Driver Station where the Operator controls are embedded into a single panel.  The problem with this setup is that it the array of buttons and controls are fixed. I would like to have controls that are more intuitive. Here's what I have in mind.

  • The main Driver Station remains unchanged. This is a laptop with 2 joysticks and is for the Driver
  • The CID is a separate unit that is cheap to build; so cheap that we can build a new one every year. We can recycle old ones for parts as the robots are disassembled. Each one has a button layout that "makes sense" relative to the challenge. For added clarity we place a plastic overlay with diagrams, words, symbols, icons, or whatever else is needed to make it crystal clear what each button does.
  • The CID is just buttons and digital joystick(s) connected to a USB board that, when plugged into a Windows laptop, looks like a generic USB controller device. Boards like this are popular in the DIY arcade community. In fact AndyMark sells a kit that pretty much covers what I would like to do. As I write this, it is out of stock. Related arcade parts can easily be found on the internet. [A "digital joystick" just means it returns 0 and 1 when the stick is moved in a particular direction. There is no analog signal that corresponds to the magnitude of the movement. Digital joysticks usually have 4 or 8 directions of movement.]
  • The CID is not intended to replace the game controller. Depending on the game, it may end up doing so but that's not necessarily so. A device like the Microsoft USB Game Controller contains analog joysticks that are very useful and (depending on the implementation) may not be replicated by the CID. Also a true game controller provides portability and ease of use that can't be overlooked. Naturally, if the challenge is such that the CID does replace the game controller entirely, it will be one less item for the Drive Team to have to deal with that year.
  • There is also the possibility of adding custom input devices that are not the traditional buttons and joysticks. This is an exercise for the reader!
  • Cost is projected to be about $50 for the controller board and array of buttons. The actual cost will depend on the number of physical controls. Implementation is pretty simple - just a box of the appropriate size and shape.
There are of course pitfalls to doing something like this.

  • It's one more thing for the Drive Team to have to deal with. If the Operator is also using a game controller using 2 hands it can be cumbersome to have to reach for the CID to press a button.
  • If a game controller is still used, that partially defeats the goal of having everything neatly labeled. Someone not familiar with the UI will not know the controls on the game controller.
  • Having to build a custom device each year is actually a feature. But it's still something to build and that's not always a good thing.
That's all I have for now. I'll probably get some parts to test with over the summer. I've used similar devices before for Arcadia and don't expect any issues.

Louis L

I ordered a "kit" that consists of a small USB board with headers and a bunch wiring for connecting to arcade-style buttons and joysticks. Actually I got 2 different ones. They sent me the wrong one the first time; then sent the right one but told me to keep the first one. The first one has half the number of connections as the second one.

I need to poke around and see what this all means in terms of how the various supported buttons and joysticks map to a "real" controller like an xbox unit.