6.9020 HTMAA Machine Week
[this week is pretty much entirely group work!]
Machine Concept
For our collaborative machine, the EECS cohort took inspiration from vintage and contemporary fears around mind control and technology to merge the threats of "brain rot" and the "Dalek" into an autonomous bot that follows people around while automatically scrolling and amplifying social media content.
Timeline and Contributions
EECS shop began our machine week design and development with a slight false start on Nov 6th that prompted us to initiate a collaborative mode of working as of Friday Nov 7th. We added ideas to a shared doc in advance of an initial meeting on Tuesday Nov 11th to discuss ideas.
Tuesday, 11/11, 8:00-9:30pm
: Group ideation meeting. We reviewed proposed ideas from the team and settled on a "brainrot roomba" concept.
Wednesday, 11/12, 4:00-5:30pm
: Machine planning meeting. We started sketching the machine and decided to design it like a Dalek from Dr. Who. We started to identify subsystems and teams in the below table.
We also started to devleop the machine's design:
I joined subteams B and C which dealt with drivetrain and navigation.
This was a lively discussion!
Thursday, 11/13, 7:30-9:00pm
: Group design meeting. We approached speicfic design questions like scale and structure, and we started towards a design for the chassis.
This involved considering drive options; we reviewed a ton of references but settled on differential drive with two wheels and castors.
We reviewed items from the machine kit and started 3D printing rotary axes and the phone holder / amplifier parts of the design.
Friday, 11/14, 3:00-5:30pm
: Beginning to program. I worked with Maya and Claire to understand how the motors were controlled, reviewing SerCAT and receiving some help from Quentin when we blew out a motor by plugging it in backwards. I also started experimenting with our esp32 camera module, working from one of Saleem's sketches.
Saturday, 11/15, 3:30-7:30pm
: Chassis refinement. I connected with Maya who had downloaded a face detection model to the esp32. We didn't end up using either of our work on this, but the progress was useful anyway for collective learning.
Realizing there were too many coders in the proverbial kitchen, I moved towards a physical task for the drivetrain. Taking input from the drivetrain subteam as well as the interior structure and exterior design teams (and integrating all of their Fusion models in our shared folder) I designed and laser-cut a first prototype of our chassis, so that everyone could confirm that it worked for their purposes.
It was important to make this test version before we used a rare big-enough piece of acrylic to make a final version.
Sunday, 11/16, 8:30-10:30pm
: Individual documentation. I blocked in most of this page during that time, so that the documentation would be faster during the end-of-week crush.
Monday, 11/17, 11:00am-1:00pm
: Beginning group documentation. I added the structure and content of our team README on GitLab and prompted all subteams to elaborate on their components.
Monday, 11/17, 3:00pm-7:00pm
: Drive control programming. I worked with teammates as well as Quentin and Jake to understand how the wheels would need to be controlled in relation to camera server responses and experimented with camera streaming sketches.
Tuesday, 11/18, 10:30am-3:00pm
: Drive control programming. I worked with teammates to coordinate between motors and camera streaming, primarily focusing on controlling motors via an Arduino sketch uploaded to the esp32.
Tuesday, 11/18, 6:30pm-10:00pm
: Documentation. I made our team's presentation website based on the readme and the "brainrot" concept.
Wednesday, 11/19, 9:00am-12:00pm
: Documentation. I made our team's presentation video using a song by Jessica and video clips taken primarily the previous night, when the robot finally worked! Sorry to Neil for the unusually large file... I tried all of my usual ways of compression but could not get this 3:20min video with sound to be smaller than 130 MB, even with major sacrifices to quality.
Trials and Tribulations
Following are some observations of the process this week, and some challenges or disappointments to record:
- Communication was by far the toughest part of this week's work, as is to be expected among 15 people who have never worked together before and are now having to build a robot in a week. In particular, we would often have handoffs of one person talking to a TA and then inadequately passing information along, or code being written and passed aroudn without enough explanation. It often felt as though every change in who was working on a given technical task required an hour of work on the second person's part to catch up to the first.
- Concurrently with communication challenges were documentation challenges-- I managed to fill in sufficient documentation for our presentation in the hours before we gave it, but this was after having asked all subteams to add to the ReadMe and send documentation which never took place. In the class presentations, it was clear that the other shops had much more seriously documented as they went (and maybe seemed to work in a more coordinated way, with more people in person together at the same time?), and this made their presentations easier to follow.
Learnings and Progress
Below is the delta between where I started on the skills for this week and where I arrived:
- I learned a lot about streaming and communications this week; Flask was new to me, as was serial control like SerCAT.
Resources and Acknowledgments
Another huge thank-you to Anthony whose knowledge was crucial to steering us away from some of the worst pitfalls (and whose wisdom allowed us to find some pitfalls anyway). Also thank you to Quentin and Jake for the amazing work putting together the control protocols and CAD components for these kits; this project would obviously not be possible in the given timeframe without that contribution, in particular Quentin's special ESP board that allowed us to control the steppers. Finally, thank you EECS shop! Good job team!
Design Files
All of our collaborative design files are in the Fusion cloud, and our code is in GitLab.