iRobot Revamp

Tufts University · Senior Mechanical Engineering Design

The Concept

What if you could feel like you were home, no matter where you were? My senior mechanical engineering design group expanded the existing iRobot Create's capabilities to include telerobotic functionality. Improvements allow users to see their homes virtually and interact with their environment through the robot.

The most obvious challenge was getting a robot that exists to be as unintrusive as possible to interact with surroundings designed for people — creatures much taller than your average Roomba.

With these thoughts in mind, our task was to design modifications that allowed the robot to interact with the world while allowing its user to remotely control it. The design process started with rough sketches to ideate the various ways we could accomplish our goals.

iRobot Create base platform

Ideation & Sketching

Above are examples of sketches we collaboratively drew during a session where we'd draw for a few minutes and swap sketches to improve each other's designs.

CAD Development

After creating improved sketches, we each chose one to CAD and present to our sponsor from iRobot. I decided to model a scissor lift. Because we decided it would require very tight tolerances to be as extendable as it needed to be, it was an obvious no moving forward.

To the right is an animation of the scissor lift mechanism that would move the platform holding the camera and an arm up and down.

Final Design

We settled on a fixed-height platform as our final design. We compared it against other solutions involving movement and determined that minimizing moving parts would ease the building process — a necessity given our accelerated timeline. This would also improve structural stability (at the cost of displacing the center of gravity much higher while moving compared to a movable design).

Another upside of this approach was that fixed-length legs would be easy to manufacture with sustainably sourced bamboo.

Final CAD model of Raba

Overcoming Challenges

Raba robot in progress

Of course, nothing goes exactly as planned. We quickly realized that our CAD model lacked lateral stability. We fixed this by adding an additional leg to make the platform on Raba more like it was sitting on a tripod.

Another issue was the strength of the motors. Our calculations suggested the motor would be strong enough to lift the bamboo arm with a plastic end piece, but it turned out the power supply for the motors couldn't provide sufficient current. This illustrated the importance of including electrical systems in the detailed design to ensure correct components are selected.

Software & Electromechanical Integration

I took the lead on integrating the electromechanical systems, to create an opportunity to learn how to use microcontrollers (in this case a Raspberry Pi). Raba needed to be controlled remotely while streaming video footage back to the user.

I created a Flask webserver that served a simple HTML-based user interface with buttons to move the robot forward, backward, left, and right, in addition to moving the arm up and down. The buttons sent calls back to the server running on the Raspberry Pi, telling it how to move the Create or spin the motors. The beauty of using a Pi was that implementing a webstream only required importing a library and setting up a camera referenced in an HTML image element.

The problem with a default Flask server is that every time a user sends a GET request (i.e. presses a button), the entire page refreshes — making the robot uncontrollable. The solution was to implement AJAX (Asynchronous Javascript And XML), which allows data to be asynchronously transmitted between the user and Pi without refreshing the page. Implementation required substantial research and iterative trial and error.

First time controlling the Create with the Raspberry Pi!
Testing the code controlling the arm (and verifying the webstream worked) and the motors/light flipper.

Reflections

Future improvements to be made include using CSS to improve the user interface of the webpage that users control Raba from and building an enclosure to hide the electronics on the base. The motor wires can also be run through the bamboo legs (since they are hollow) but time did not permit us to include this aesthetic improvement in version one of Raba.

While this was not the project I wanted to work on at the beginning of the class, I found a way to leave my mark on the robot and utilize skills I developed through teaching myself basic web design and server creation.

I also learned how to deal with a teammate who can be better described as a "ghost partner" and how to delegate their responsibilities among the rest of the group. While this might sound pessimistic, that was the reality of the project and an obstacle that we overcame remarkably well considering every feature that made it onto the final robot worked when it was time to present.

The Team

The project team
The project team (from right to left): Andrew Voss (me), Bo Newberry, Alp Ege, Rachel Eaglin
Bo demonstrating Raba
Bo demonstrating features of Raba to classmates at a demonstration of senior design projects.