# Week 1:  Computer-aided Design

Assignment: Model a possible final project

# Idea

For my final project, I am interested in building robots (hopefully more than one) capable of aggregate locomotion. This is based on the locomotion of sawfly larvae (genus Perreyia). I first saw this behavior in a video from Smarter Every Day on YouTube:

The larvae are moving on top of each other, using the layers below them like the moving walkway at an airport to speed up how fast they are moving. Counterintuitively, this leads to the group as a whole moving much faster than any individual could move on its own. In principle, if there are $$n$$ layers each with the same number of larvae and each larva is moving with velocity $$v$$, the velocity of the group as a whole is $v \cdot \frac{n+1}{2}$. With 3 layers, that 1.5 times as fast as they could move on their own!

This has some really cool implications for collective swarm robotics: it would allow a group of small, slow robots to move much more quickly between locations. For example, if (in some future world) you have a group of robots collectively constructing a skyscraper, they could move between sites on the tower a lot faster and get a lot more work done.

However, it looks like very little research has been done on this approach to aggregate locomotion, both in biological systems and in robotics. I want to build a simple robot that will be capable of this type of movement in two dimensions, including using detected forces between the individuals to stop and start the group’s movement.

# Modeling

This week’s assignment is to model our possible final project using a variety of tools. I started with a sketch and worked my way up to a simple CAD model of my robot.

## Initial Sketch

First, I did a quick hand-drawn sketch of the robot. The basic structure is a robot with two sets of grippy tracks for movement, seen most clearly on the bottom right. Having two independently controlled tracks also allows for future changes in control, such as differential drive of the tracks to allow turning of the collective. Over the top of the robot is a smooth (likely plastic) cover with angled or rounded ends that will allow the robots to climb on top of each other like the fly larvae. This top cover will also likely have a lip on the sides to keep the robot from falling off the side of each other. The robot will also incorporate a three-axis force sensor into its cover to detect whether there are robots on top of it (downward force) and whether to robots on top of it are moving (backwards force). The third axis could be used in the future to detect turning. In the top right of this sketch is a side view of what the collective behavior might look like.

## 2D Render (Inkscape)

Next, I translated my sketches into a simple Inkscape drawing. Here, it becomes clear that I have incredibly little knowledge of mechanics; I have no idea how the tracks will connected to the upper cover, where the motors will be placed, or how they’ll be coupled to the tracks. But I did leave space in between the tracks for a Raspberry Pi Zero or other electronics to control the robot!

I also made a better diagram of what the collective behavior entails (below). Robots on the bottom/lower layers will be slower (purple robots) and end of becoming “uncovered” at the back of the group, at which point they are unburdened by the robots on top of them and are able to start climbing of the back of the group (green robots). The robots on the top (light blue) use those below them as a moving walkway to reach the front and start descending (red). As they descend, they move slower and are eventually pulled under to the bottom layer.

I have used Inkscape before for more artistic things, but this exposes some of the really big limitations of using it for CAD-type work. It’s not parameterized, so a small change can mean a lot of work. Boolean operations lose the original shape, so you have to undo or start over if you want to make a change.