I'm developing the Falling-Up Robot, a 6-foot tall balancing inverted pendulum bot, using the Teensy 3.6 microcontroller with the Arduino IDE 1.6.12. I want to learn feedback control systems through practice & experience. It's tall so it can stand with people and be interactive. The main microcontroller board is placed midway so I can tinker with it at desk level. So far, the brain and chassis is in place, and the basic balancing control system is in place to keep it from falling over.
See video: https://www.youtube.com/watch?v=Xmt67HTI2Hg
I used stepper motors to take advantage of high torque at low RPM and zero backlash (or zero freeplay). This allows very steady stand-still performance. Dealing with the stepper-induced mechanical vibration was an issue, but was solved with analog filters on the IMU and an Extended Kalman Filter in software.
More details here: https://forum.pjrc.com/threads/41442-Falling-Up-Robot-Project-for-Teensy-3-6
Next step is to add a remote control capability. Eventually I want it to roam autonomously and interact with its environment.
@Cbenson, thanks. The clean wiring was by necessity. Had issues with spurious readings from the LSM6DS3 accel/gyro chip. I2C and SPI communication really wants very short connections, prefereably on the same board with the master device. Otherwise, EMI wreaks havoc. The Teensy 3.6 microcontroller is roughly mid-way up the 6 foot robot, and the LSM6DS3 device as at the bottom of the robot. So the cables are ~4 feet long.
So to make it work, I used a CAT6 cable, shielded with a wire mesh sleeve, and a ferrite bead near the master device. I use SPI communication because it’s more stable than I2C based on my observations, and ~20X faster, at the cost of just two additional wires. Also optoisolated the stepper driver and encoder readings. All this is essential in calculating a clean tilt angle signal. More details here for those interested:
I didn’t have the heart to cut the 6 foot long aluminum extrusions. It makes for a very interactive robot because it stands with you.
Extrusions are great for making very light and stiff robot frames. It’s easy to add parts without having to disassemble your project. They’re like legos for adults.
Got the XBEE communication working with the Teensy 3.6, and able to send motion commands to the Falling-Up Robot. Able to yaw and translate while maintaining tilt stability. It’s no longer tethered to the USB port and the power supply unit. See latest video below. Recommend headphones.