CS291I Final Project Walking Robot

by Huake He in Workshop > 3D Printing

3495 Views, 30 Favorites, 0 Comments

CS291I Final Project Walking Robot

ezgif.com-gif-maker.gif
ezgif.com-gif-maker.gif

I am always interested in robotics, especially about the gear system that transform the energy source to different kinds of motion mechanics. Since in previous assignments our 3d printed objects are all static, I decided to incorporate a motor that provide energy for animating my design to let it walk. In the CS291I computational fabrication course's final project, I want to explore different kinds of walking mechanism, implement a walking robot from one of the mechanism, and add something interesting on top of the design.

Some of the designs I explored:

1. https://www.youtube.com/watch?v=Pfw_jybhvHU (I implemented Type2 from this video)

2. https://www.youtube.com/watch?v=VbSL5W8Ua6M

3. https://www.youtube.com/watch?v=fIbN5pPSByo

4. https://www.youtube.com/watch?v=R8NXWkGzm1E

Supplies

1. Fusion 360 (specifically its "SpurGear" add-ins)

2. Rhinoceros

3. 3D printer (Ender 3 Pro)

4. DC gear box motor

5. 9V battery and battery holder

7. Number 4, 1/2 inch screws and Number 4, 3/4 inch screws

8. Double-sided tape

Understanding the Walking Mechanism With Simulation

ezgif.com-gif-maker copy.gif
ezgif.com-gif-maker.gif
Screen Shot 2021-05-26 at 6.23.12 PM.png
Screen Shot 2021-05-26 at 6.28.51 PM.png

The walking mechanisms in all four designs in the previous videos are representational, but since my focus is to incoporate gear system into the robot design, I decided to implement the type 2 in the first video (Figure 1). Even though the demo in the video makes the mechanism easy to infer, I decided to make some initial simlulation on Fusion 360 as an experiment to avoid errors. I found a good tutorial on creating gears using "SpurGear" add-ins and making simulation:

Creating Gear Set

From Design->tools tab under Scripts and Add-ins section, you can find the SpurGear option. As shown in the Figure 3, there are several choice options, and the most important one is the Module and Number of Teeth. If we want to create a set of gears that match one and the others, the module of them must match. The number of teeth determine the rotation speed of a gear in a gear set. I choose module "1" to create relatively small gears and number of teeth to be "20" and "40" to reduce the rotation speed of the legs to a half. In the simulation procedure, the parameters including thickness and hole diamter do not matter that much. As shown in Figure 4, a set of two gears are created. By extruding a base and setting it to ground, and extruding three pin cylinder to fix the gears, we are ready for creating simulation.

Creating Simulation

1. Allow gear rotation

From Design->Solid->Assemble dropdown, click the As-build Joint option:

- select one gear and the ground base as components

- select the pin cylinder as the joint,

- set the motion type to be Revolute, and rotation around z-axis

- repeat for all three gears

2. Specify gear set rotation relation

From Design->Solid->Assemble dropdown, click the motion-link option:

- select the two joints that should be linked

- set the two revolutions around z-axis

- set the large gear's angle to be 180 degree, and small gear to be 360 degree, and reverse the two rotation direction to make a physical simulation of 2:1 gear set

- repeat for another small-large gear set

3. Add leg into motion system

Now the gear set can run simulation, and a leg component is extruded to connect to the joint on the gear to reproduce the walking mechanism in the video. Similarly, create an as-built joint to connect one side of the leg to the joint on a large gear, and repeat this procedure on the other large gear (Figure 2). There is some bug in this simulation because once I created two joints, the motion cannot be simulated. However, we can get the idea of the walking mechanism: the relative distance between the joints on two large gears is the same, and rotation led by the small gear will move the leg in circular movements. With one leg on the groud, another leg will provide the power to move forward, which enables walking.

Designing the Gear Set

Screen Shot 2021-05-26 at 6.23.12 PM.png
Screen Shot 2021-05-26 at 9.46.56 PM.png
Screen Shot 2021-05-26 at 9.07.30 PM.png
Screen Shot 2021-05-26 at 9.34.08 PM.png
IMG_3649.JPG
IMG_3663.jpg

The gear parameters are mostly tested and settled down in the simulation stage. In order to slow down the rotation speed from the gearbox motor, I decided to use a 2:1 gear set to reduce the rotation speed of legs to 1/2 of the original speed. Module 1.00 is most suitable in size, as it will generate a gear with 20 teeth of diameter 20 mm (Figure 1), and one with 40 teeth 40 mm (Figure 2). From measurement from Fusion in Figure 3, the distance between the central holes of the two large gear is 66 mm, so the distance between the holes of large and small gear is 33 mm, which is useful when designing the body. For the root fillet radius, I just used the largest value that is feasible in current setting, which is 0.59 mm. For the thickness of the gear, since the screw is 12 mm, I decided to make it 6 mm to fit the screw well when connecting the gears to the body. The rest parameters are all set to default value, and the above are the parameters fed into SpurGears add-in.

Then, I separated the gears in another file to customize them, shown in Figure 4. The reason why I separate them is because when I print the design in Figure 3, the gears actually merged together and became one piece, as shown in Figure 5. For the small gear, the central hole is a 4mm * 5.8mm rectangle to fit in the motor's spinning axis. For the large gear, there are two layers in the central hole. Firstly a cylinder of 6mm diameter base circle and 3mm height, which is used to contain the head of the screw to avoid its collision with the leg. Secondly a cylinder of 4mm diameter base circle and 3mm height, which is slightly larger than the body of the screw to allow the gear to rotate around the screw freely. The smaller holes with 2mm in diameter is a locator for screws that fix the leg on the gear. The printed gears are shown in Figure 6.

Designing the Body and Legs

IMG_3665.JPG
Screen Shot 2021-05-26 at 9.58.39 PM.png
Screen Shot 2021-05-26 at 10.23.50 PM.png
Screen Shot 2021-05-26 at 10.32.15 PM.png
IMG_3667.JPG

The body part is used to hold the battery case and gear box motor as shown in Figure 1. I am more familiar with Rhinoceros, so I switched from Fusion to it.

I started with measuring the dimension of the batter case, because it is a more regular shape compared to the gearbox motor. As shown in Figure 2, by first printing a testing part with tolerance, I can quickly figure out a suitable dimension for the battery case holder: the inner dimension is 22mm*33mm*44mm, and outer dimension is 28mm*39mm*47mm.

The next part is the holder for the gearbox motor. In order to first get a working version of my robot, I just followed the basic design from the video, except changing the distance between the holes to 66mm, which satisfy my gear design, and the resulting body is shown in Figure 3. Figure 4 is the printed version which fits the battery case and motor relatively well.

The leg part is relatively more simply in shape. Since this walking mechanism ensures that firstly the leg is always vertical to the ground, and secondly, there is always at least one leg that supports the robot, we can design the leg in a more steady way that even one leg can support the whole structure. Similar to the design from the video, I created the leg with two holes 66mm apart, which two screws can be screwed into the two large gears in the same relative location. This enables the leg to be always vertical to the ground. The legs are 13cm long, and feet are 8cm in length. Figure 5 and 6 are the legs.

Assembling and Test Run

ezgif.com-gif-maker copy 3.gif
Screen Shot 2021-05-26 at 10.41.49 PM.png

Since the smallest screw for sale are #4 screws, I adjusted all the hole parameters to fit in this screw size, and fortunately it worked out. Another difficulty in assembling is that the two large gears need to have their side holes in the same relative position with distance 66mm apart, which is a bit hard to control (Figure 2). Also, when there are lots of components and requires higher precision with gears, the tolerance is hard to calculate. The theoretical 66 mm distance is actually 64-65 mm when measuring with different condition (e.g. how tight the screw is, how the quality the 3d printed holes are, etc.). After assembling it many times, it finally worked out and can run relatively steady. A working version of the robot is finished.

Downloads

Designing the Arms and Head

Screen Shot 2021-05-29 at 6.24.02 PM.png
Screen Shot 2021-05-29 at 6.28.09 PM.png
Screen Shot 2021-05-29 at 6.28.42 PM.png
Screen Shot 2021-05-29 at 6.36.59 PM.png

Since I have a little bit more time, I decided to add two arms and a head to the robot.

For the arms, I want to simulate human arm movements when walking, so the movement frequency of the arms should match that of the legs. With that in mind, the intuitive way is to attach the arm onto the top large gear with the top of the leg. In order to simulate movement, another side of the arm should attach to a stationary part on the body. Thus, this also involves re-modifying the leg and body component, and needs more measuring work.

- For the body part, I extended the top of the body 40mm, and made another set of holes for the screws, shown in Figure 1.

- For the leg part, I divided the upper half of the leg into two equal layers (3mm and 3mm), and remove the top layer, which enables my arm to fit in the position, shown in Figure 2. The hole on the top is fixed onto the top hole on the body using the 3/4 inche screw.

- For the arm part, I designed it to be 3mm thick to fit in the reduced thickness in leg. I also hollowed the upper half of the arm to enable sliding movements of the joint, shown in Figure 3. With the lower screw fixing one side of the arm on the large gear, and the other side sliding on a fixed joint on the body, the arm simulation is realized.

- For the head part, the first thing that comes to my mind is the head of Creeper in MineCraft, so I mimic the design, shown in Figure 4. The inner space for the head is 26mm, which match the body width.

Failures

IMG_3678.jpg

To all of the failed parts, RIP. In this project, failures comes mainly from two aspects:

1. The filament are entangled and messed up during the print, so it cannot be fed into the printer properly. I don't remember how many times when I setup a long print, and get back to see that the printer only prints half the shape (OH NO). The solution for me is to cut a reasonably long segment of filament, and check if there is potential entanglement. This method is better, but there sometimes bad things always happen in long prints....

2. Lack of simulation. Since I am a beginner on Fusion 360, I did not fully take advantage of the powerful simulation function in the software (in fact I only run simulation for gear). What I do is to draw the design and simulate on paper and in mind, so there will always be bugs, which requires another round of printing. Having a good simulation before the actual printing always reduce time, energy, and material.

Final Adjustments

ezgif.com-gif-maker.gif
ezgif.com-gif-maker copy.gif

In order to make the feet more frictional, I used double-sided tape to attach to the bottom of the feet. Then I used several ways to make the tape less sticky so that the feet will not attach to the ground, but have some extend of friction. This is a tricky part, because if the tape on different foot are not the same, the robot cannot walk in a straight line, and it is hard to find out how to fix. Figure 1 shows this problem, and the robot actually walk in a circle. Figure 2 is after some adjustment. It is worth noted that if the two legs cannot be in a same level at some point, then the robot will fall because of unbalanced feet.