Design Process

Clicking on the following links will scroll the page to the relevant section:


The Legs (return to top)

We decided we would attach motors to only the hind legs of the dog. The forelegs would balance on casters, a design similar to the SciBorgs. Turning on and off the motors for the left and right hind legs would enable the dog to turn right and left respectively.

Hind Legs

LEGO was used for supporting a gear system that connected a motor to a wheel at the bottom of each leg.

Design 1
We had to compromise torque for structural convenience. Only 40t gears would match the diameter of the large wheels, and although we geared up to a ratio of 1:5, we had to gear down from 5:1. Overall the total gearing was 1:3, in addition to the internal gearing of the gray motor. Due to the lack of torque, the dog started stalling. Although it moved fine on whiteboard, it stalled quite a bit on the cardboard, especially the left leg.

The size of the wheels caused a lot of backwards gearing.

Design 2
We decided to change the whole design. To get around the large wheel problem (see Design 1), we used rubber band to connect gears at a 3:5 ratio at a distance. We ended the gearing with a worm gear for extra torque. However, the rubber band slipped under the enormous weight of the dog, and the torque generated by the worm gear sometimes became useless in this case. The dog stalled when attempting to turn, but it could go back and forth slowly. We tried to solve this by reducing dog weight.

The rubber band slips under heavy weight.

Design 3
Due to the slipping of the rubber band, we replaced the rubber bands gears with toothed gears that could hold chains. The chains worked better because they did not slip. However, they did add considerable friction, and it was lucky that it worked because of the enormous torque brought on by the worm gear.

The new and improved leg with bike chains!

Forelegs

Design 1
We made two LEGO legs for the front of the dog. Each leg was created by overlapping beams to make 4 walls, each balanced on a caster. The legs were sturdy but very heavy.

There were just too many LEGO pieces in this leg.

Design 2
We used 4 LEGO beams as pillars to support the single foreleg. By placing two blocks of Styrofoam between these pillars we made the leg sturdy without much additional weight. This design, although considerably lighter than the first, did not provide enough stability for the dog, and was also hard to attach to the base.

The styrofoam made the leg a LOT lighter.

Design 3
We found a compromise between the Designs 1 and 2, and used one leg made from overlapping LEGO. However, each layer of the leg had 2 horizontal beams, instead of the 4 used in Design 1. This kept the leg light but sturdy enough not to break. We also added wings on each side of the leg to prevent it tipping over, one of the main drawbacks of Design 2.

To prevent tipping, two wings were added
LEGOs were removed (again) to make the leg lighter.

The Body (return to top)

Frame
The frame connects the front and back legs, as well as provides a base for the head and neck of the dog. It is mostly composed of beams that are attached horizontally with black pegs, then reinforced on the top and the bottom with flat plates of LEGO. We left a hole near the back end for the trap door for the poop. When we went from Back Leg Design 1 to 2, we modified the base so that it was sturdier, removing excess pieces of unneeded LEGO, and also lighter. Because of the design of the new legs, the dog also got longer, so we could remove a few pieces from the base to make it shorter.

The head went through three iterations: the first design was too small and was never used. It also included two photocell light sensors as “eyes” - these were replaced by bumper sensors on the legs instead. The second design was pretty much a larger replica of the first, without the photocell eyes, and with extra reinforcing on the side. Most of the beams making up the top and bottom of the head were stripped on the third design: only four pieces remained on each side, reinforced by axels and flat LEGO pieces. This made the head overall much lighter.

Building the frame from the legs. A hole is left for the poop/pee to come out later.
The small head, just to see what it would look like.
Another view of the body frame. There are walls to prevent anything falling out.

The head is connected to the body by a long neck, made up of a wall of LEGOS 1 brick thick. The neck was one of the hardest pieces to stabilize, and easily broke. We attempted to strengthen it with black pegs and vertical LEGO beams. However it was still unstable as it was connected by only one LEGO piece at the body and the head, and ended up being much heavier than necessary. In the second neck design, the design was similar, but there are only 2 reinforcing beams in the front, rather than several small ones. Also, the head is also attached to two LEGO pillars behind the front of the neck. So far, this seems to be a more stable design.

Trying to stabilize the neck.

Version 2
The new head and neck turned out to be too heavy for the new motors to turn, so we created a new neck out of Styrofoam reinforced by vertical LEGO beams glued on. Since the LEGO head would be too heavy, we also created a new head out of two egg carton pieces, attached with LEGO beams and hot-glued to the Styrofoam neck. The new head and neck removed much of the weight on the front end.

Drastically changing the head and next to carton and styrofoam.

Exterior

Once the base was completed, and all of the sensors and actions had been tested, we added fur to the dog, mostly by gluing pieces of LEGO onto the fur and sticking it to the LEGO of the dog’s frame.

Cute doggie! All furred up and ready for showtime.

Sensitivity to the Environment (return to top)

Movement and Avoiding Obstacles

The dog moves forward, moves sideways (to the left and to the right) and stops randomly. The hind and forelegs are designed with one bumper each. The bumper uses a touch sensor to detect when the dog encounters an obstacle. When the front bumper is hit, the dog moves backwards and vice versa for the back bumper.

The back bumper (on the old legs...)

Design 1
The dog’s movement was initially programmed to perform 5 tasks: stop moving, move forward, turn to the right, turn to the left and chase its tail. The tasks were performed randomly each time with a probability of performing each single task being 20%, but the tail-chasing task was randomly selected more often than the other 4 tasks.

Design 2
We changed the random movement. The movement now comprised 10 random tasks instead of 5. The dog could move forwards, stop moving or turn to the right or left. While the probability of moving forwards was set to 60%, stopping was 30% and turning was 10% for each direction. The dog no longer chased its tail, since it moved far too slowly and had trouble turning, even with the bicycle chains.

Pooping
The dog poops the food that is fed to it. Pooping is stimulated by stroking the dog on its back leg where a touch sensor was placed.

Design 1
Food could be fed in from the tip of the tongue. The tongue led to a foam tube which carried the food from the head to the bottom of the dog’s frame. This process magically transformed the food into poop. The poop was then allowed to collect in a hollow space which was sealed off by a motor-operated trap door. The trap door allowed the dog to retain its poop. When the poop sensor was triggered, the trap door flipped open and released all the poop.

Big floppy red tongue! AHHHHHHH!!
The esophagus/large intestines, represented by the big foam tube.
The trapdoor closed with poop inside. When the motor is activated, the trapdoor will open and let everything out.

Development
The dog could be fed a variety of food - different pieces of LEGO, and release poop of one kind-the brown beads. This would involve 2 separate mechanisms: one to collect the food, and one to release the poop, and a way for the 2 to communicate so that poop would be released only when the dog had been fed. We decided that having the poop being what you fed it would be a lot easier and fun. There would be no need to refill the dog with reservoir poop.

Peeing
A touch sensor placed on the nose stimulated the peeing.

Design 1
This design never made it past the design table. We placed a wet sponge in an aluminum foil funnel and planned to squeeze the foil when a sensor was triggered. A pipe would be used to channel the released pee out of the dog’s interior. The challenge was finding a gear system that was small but strong enough to squeeze the sponge hard. Also, as the dog peed more and more, the motor-powered “pee-releaser” would have to generate more squeezing power. We tried the following gears: a single red motor (internal gearing) with an attached axle, a gray motor (internal gearing) a 1:5 catapult, a 1:15 “wobbler”, a 1:25 “chomper” and a 1:50 worm with a gear rack. We also tried using a bigger sponge, softer layer of foil and substituting the sponge with a cotton ball.

Have a motor press down on the sponge?
Or have a motor push the sponge against something else?

Design 2
The design was based on a suggestion made by Scott in the initial stages of the project, “Fill a cup with water and tip it over occasionally.” We filled a small test tube with water and sealed it off with duct tape. Two small straws were placed in the middle of the tape, forming a nozzle. Small drops of water dripped out of the nozzle only when the test tube was held nozzle-down. The test tube was then attached to an axle. A motor rotated the axle so that the nozzle faced downwards when the sensor was triggered.

The tube (the bladder) with water inside.

Petting
A light sensor was placed on the fur of the head, and on the back of the dog. Darkness over the sensor, from stroking the fur, would be detected as petting the dog.

Design 1
If the dog was petted on the head or back, it would stop all movement and wag its tail 4 times.

Design 2
When the dog was petted on its head, it would wag its tail 4 times. When the dog was petted on the back, it would “chase its tail” by turning right then turning left and finally wagging its tail.

Various sensors

Barking
The dog barks when it hears a loud sound. Clapping one’s hands is often a loud enough sound to trigger the barking.


The Garden (return to top)

We decided early on to create an environment for the dog, in order to keep it contained. This meant that we also didn’t have to think about gearing the motors down so that it could run on carpet, and that we wouldn’t have to worry about any unexpected obstacles that might hinder it.

We created the garden out of cardboard boxes, hot-gluing the walls to the cardboard base. One of the things we had to think about was how high the walls should be in order that it would hit the bumpers, but not the head: when we switched gear designs, the dog became shorter than before so we had to cut down the walls to fit.

The box in process

A huge problem we had to think about is how well the dog could run on cardboard. Due to the enormous weight of the dog--so much weight that the wheels were actually turning but slipped against some surfaces--and certain design limitations with the legs (even after improvement), we had to choose a good surface for the dog to run on. In the end, we attached a table inside the box.

The dog at home!