Programming Robot

I am looking to budget a robot strictly for programming. If anyone has a list of parts with links that would be awesome. I am also looking for a simple manipulator to build. The goals of the programming robot would be to teach new students as well as challenge veteran students. Some of sensors I know I need but I don’t know the best sensor to use is:

  • Encoder
  • Gyro
  • Accelerator
  • Limit Switch
  • Ultrasonic sensor

Thanks for all your suggestions

What kind of control system do you plan to use?
roboRIO to match an FRC robot one for one?
A full control system, e.g., PDP/VRM/PCM/Talon SRX’s (CAN & PWN)/Sparks(PWM)/etc.?
A cheaper third-party system that support the language of your choice?

I plan on using a roboRio to match an FRC robot to give the students the best learning experience. It will consist of a full control system as well. I do not know what we are going to use for motor controllers but I am thinking I can budget for Talon SRX’s.

I know their are cheaper systems out there but I have access to a full set of electronics with no extra cost.

The plan is to have a fully derivable robot to test auto mode as well and have the students experiment with PID loops, motion profiling, and vision tracking.

Following with what Mark suggested, you can get all of the control system parts through Andymark.

As for the sensors, you can also get those at Andymark (depending on the sensor). My teams have used the NavX from Kauai Labs and we love it! That would cover the gyro/accelerometer.

We have a ‘test board’ which is basically just a piece of plywood with a roborio, PDP, a PCM with LEDs instead of real solenoids and a couple of MiniCIMs hooked up to a talon SRX and an encoder.

Also because this is basically the core of the robot, you can add anything else you need to it.

The point I am trying to get at is what is the best encoder to buy? A talon SRX encoder? A PG Encoder? A gearbox encoder? The purpose is to teach not to use practically.

I like the suggestion of the navX. I will add that to my list.

Here are some off the bat that the programmers should train with.

Encoders:
Absolute Encoder with Cable (am-2899)
Incremental Encoder-Grayhill 63R/61R

Encoders that integrate directly with your gearboxes/Talons/motors, e.g,
VersaPlanetary Integrated Encoder
SRX Magnetic Encoder (am-3445)
CIMcoder (am-3314a)

Pneumatics related:
Analog Pressure Sensor (am-3219)
Bimba or similar magnetic cylinder position sensors (these come free with the free Bimba donation if you ask for them-must be paired with special cylinders that incorporate internal magnets)

Touch/Range:
Push Switch (am-3372)
Ultrasonic proximity sensor, EZ0, MB1200, MaxBotix (am-2435)There are a variety of range types available
Bourne Potentiometers 5/10-turn
300 deg/sec or 16g Gyroscope
Infrared Sharp rangefinders
Banner Beam sensors both diffuse (qs18vn6d) and retro-reflective (qs18vn6lv)

USB/IP Cameras & vision processing

IMUs:
NavX
Pigeon IMU

LIDAR:
LIDAR-Lite

We do this too. We call ours Plyboy (evolved from Plybot?) and it has been useful for controls students to understand how to connect the robot control system, as well as to software students for unit testing their code or for trying out new sensors or new mechanisms without tying up one of the robots.

WOW thank you so much for getting me that list it helps a lot.

Does anyone have ideas for any simple manipulator that might help with some of these sensors? I am planning on build a drive-able frame so that will help with the PID loop testing and motion profiling.

For some testing mechanisms I’d suggest:

  • a spinner where the programmers have to reach and maintain a repeatable velocity, like a flywheel or a shooter wheel (but not to shoot anything).
  • a multi-jointed arm (2 are probably enough) that they have to coordinate the joints to keep the tip within an imaginary volume.
  • a single-joint weighted arm that goes ~270 degrees for the programmers to practice correcting for gravity and for changeable weight at the end of the arm.
  • a pneumatic gripper where the programmers have to squeeze with two different pressures (pick up an egg vs pick up a lead weight)
  • a turret that has to keep pointing at the driver no matter which direction the robot turns
    Stuff like that.

I would avoid getting too hung up on having a game playing robot.
You don’t want mechanisms that programmers never get time on, because the mechanics are constantly being “improved.”

You should consider asking some veteran teams in your area if they have spare old sensors to share. Generally veterans end up with piles of unidentified sensors from various KOPs and disassembled robots over the years.

Those are some really good ideas. I am interested in changing the pressure of a pneumatic gripper. How would you accomplish changing the pressure in the code?

I don’t think FRC allows for programatically adjusting regulators. There are digital pressure controllers available, but I have no idea if you can control those off of a roboRIO. Why do you want to change the pressure?

Here’s a description of how we did it for Rebound Rumble: On-the-Fly Adjustable Pressure
We varied our shot by adjusting the pneumatic pressure used by the catapult cylinder.

The system consisted of two pressure regulators-one to set the 60psi required by the rules, while the other was controlled by a window motor.
Then the code can use the pressure transducer feedback to adjust the pressure.
For training I’d recommend programmatically only allowing pressure to be changed when the pressure is above a given set point.