Code:
https://github.com/ut-ras/CouchESP32
Couch Docs
We motorized a couch.

How to Use the Couch:
- Sit on it, it's a couch
- Turn on the couch by the main power switch in front (has labelled "on" and "off" positions; you can't go wrong).
- Hit the emergency stop button (E-stop) (the red thing by the power switch) to immediately stop the motors. The other electronics (e.g., Raspberry Pi) will stay on; the E-stop only tells the motor drivers to not drive the motors anymore. Undo the E-stop by turning it until it pops out again, and the motor drivers will move the motors again.
- How it's controlled depends on the programming at the moment, but right now (just after it's built, May 2019) there's a USB logitech dual action gamepad that plugs into the Raspberry Pi on the left side of the couch. When the couch power turns on, the Pi boots up and automatically runs a control program. The Y axes of the left and right gamepad joysticks are mapped to the speed of the left and right side wheels, respectively. If the gamepad USB cable becomes disconnected, the couch might stay moving and you probably want to hit the E-stop, turn off the couch, plug the joystick back in, and turn everything on again.
- Charge the couch by plugging in the charger cable (stored on the right side of the couch) to the wall. ALWAYS TURN THE COUCH SWITCH OFF BEFORE CHARGING (running the motor drivers, Raspberry Pi, etc. could confuse the charger). It's a smart charger and these are well-behaved lead-acid batteries, so it's best to always keep the couch plugged in when not in use (charger will protect against overcharging) and drive it a bit once per month or so.
- Battery life is probably 1-2 hours or more per charge.
- Caster wheels can be deployed to, e.g., move the couch sideways through doors and into elevators. To deploy the caster wheels, first pull the footrest all the way out. Take the metal pipe with the orange rubber handle that is stored in the back of the couch, put it on the 3/4" threaded rod sticking out of the back of the couch on the right side, and push down to deploy the right caster wheels. Do the same in the front left for the left caster wheels. Now, to keep the caster wheels off the ground, while holding the left caster wheels up with the pipe, push in the footrest a bit. Then hold the right caster wheels up again and push in the footrest more. Finally, you can hold the left caster wheels up a little bit more and push in the footrest as far as it will go (so a hex nut is holding the left caster wheels up). Put the metal pipe back in the rear of the couch. To retract the caster wheels, do the same in reverse.
- Keep the couch on caster wheels, not its drive wheels, when not in use. This is because the drive wheels currently squish a lot (see mechanical improvement project) and might be harmed if they are under load for a long time, but the caster wheels are designed for huge amounts of weight (900lb each, so ~ 4.5x safety factor).
- The top of the couch (i.e., the actual couch plus a little bit of strut channel frame) lifts off to access the electronics. Lift this off by the strut channel sticking out of the left and right sides. This top bit attaches onto the bottom by resting on four pins in the four corners of the couch; it's held on by gravity.
- There's a footrest. It holds retracted caster wheels (and also people's feet) off the ground.
- All documents (this, BOM, CAD) are stored in the Demobots Google Drive, save software, which is on GitHub.
FAQ:
- Why did we do this?
- Because we can.
- Why not?
- We need classy transportation.
- Biggest RAS robot yet! We beat IGVC for size.
- Our demobots team was bored.
- This is great for outreach; first time we drove it around, literally after 10pm the night we finished it, we got at least 3 people to seriously consider joining RAS (also see notes on EER opening demo in political background below). Also, this is perfect for UT orientation, Explore UT, and Introduce a Girl to Engineering Day. It just can't be brought off campus easily because ~500 lb. is really hard to move.