iRobot (?!?)
(slightly intimidated before starting, too much to learn, also too busy)
Well obviously the name has yet to be finalized, and no actual process on implementation has been made. Basically, I watched this video:
and was inspired/disappointed at the process of creating a walking robot. Working at Boston Dynamics, I am surrounded everyday by people doing incredible things with robots, and I am not one of them, but I feel like through osmosis and a dedicated class or two I have absorbed some info on robots and kinda want to try my hand at creating my own.
The idea behind project-yet-to-be-named would be: try to use an Android app as a robot development pipeline.
The full scope of the idea here is like ~5 years of work and a lot of expertise that I think it unlikely I'll ever actually have, but it was interesting to think through, and maybe at some point I'll get some subset of the functionality working?
User Story
Theoretically how this works is: you have an Android phone, with a number of sensors and communication abilities. You download my app on it.
Phase 1: Find your robot
- Browse available robot designs
- Upload robot designed elsewhere
- Design a robot in the app itself
A "robot" in this point is probably some sort of URDF file, representing actuators and dimensions of components and linkages. In most (? all?) cases, the design also includes your Android phone - when operating, it is expected that the phone will ride in the robot, performing all the necessary compute and comms. Potentially you could sub it out for another computer (ideally all underlying robot code is written in either Rust (if you want to do cool stuff), C++ (cause a lot of robotics seems to be C++), or Python (if compute is a bit less of a bottleneck), and which is bound to the android app and is hopefully portable to other systems e.g. Raspberry Pi).
Phase 2: Program your robot
On one hand, with the design, and this is a bit of a giant unanswered question, some behaviors of the robot would be automatically programmed. Given a generic robot, making it walk or drive in a direction should be a solvable problem? But might be very tough? But so theoretically you have both automatically generated behaviors and the ability to program your own behaviors, on the phone or on another device connected to the phone. I also imagine behaviors can register requiring input by either a bluetooth connected game controller or another phone - so by default you should be able to plop your phone into the robot, scan a QR code, and use another phone as joystics to drive it to places.
At minimum, assuming the phone is riding the robot, you can get behaviors like "play sound file" or "take picture" or "display face (emotion happy)".
Phase 3: Simulate your robot
Well ok so this is probably a very big ask again, but would be nice to have an in-app simulator (embedded Mujoco?)
Phase 4: Build your robot
Build instructions, 3d printer files, CNC files?
Important part that I have done 0 work to figure out: how do the electronics work? My basic idea is to have signals routed through to the android device via USB C as a USB Accessory, and then some sort of chip to convert these signals to signals interprettable by sensors and actuators. Once again, big unknown here.
Phase 5: Profit
I imagine you plug the app into the USB Accessory, calibrate some stuff, press start, and then control the robot via QR code or something along those lines. Easy peasy
Ok but what will you actually build
I can't really tell how much I am committed to this as an idea. I think it seems cool and worthy, but also more outside my comfort zone than the usual projects I cook up. Also it is of large enough scope that I don't necessarily have fun results by the end of a long weekend, which is kind of my limit