Open Innovation (T3)

11/29/2018: Complete prototype

Zongxi Huang

Today, I worked on constructing the complete prototype leg of my robot. I began by trying to figure out a way to extend the motor shaft long enough to reach the supporting structure placed on the opposite side of the stepper motors. My first idea was to buy a motor shaft adaptor, but this option was expensive and I would have to wait until the order arrived. Furthermore, I would need to re print one of the linkages to adjust to the increased diameter of the shaft adapter. 

My next idea was to screw a second motor handle wheels to the one already used to drive the upper leg and link it to the supporting sturcture with a short screw. While this option would increase the weight of the leg, I decided to use it because the materials used were abundant and I did not have to wait for new orders. Once the decision was made, I put myself to work on extending the shafts of both stepper motors.

During the process, I faced a number of challenges. For instance, i had to widen the screw holes to fit the screws that were used to link the two hand wheels together. In another’s case, I had to change the height of the lock nut in order for the screw to fit into the hand wheel. After a whole period dedicated to this task, I managed to solve all the issues and I succeeded in extending the motor shaft.

I also worked on reinforcing the support structure. While I initially tried to use a 3D printed piece to link the support structure to the main body of the robot, I decided to use acrylic instead, as it was simpler and took much less time to make. 

Next class, I plan on studying what Mr. Luis has sent me. I also plan on working on a testing rig, which I will be using on exhibition day.

Today, I continued my work on trying to figure out the Arduino Code used to control the stepper motors. I decided to focus on making the motors move to a certain specific angle first before proceeding to making them repeat a swinging motion. After some research online, I found a code on the Adafruit forum that could in theory work with stepper motors. However, I soon found out that it was incompatible with motor shields, and I was forced to look for alternatives.

In the meantime, I decided to work on the feet for my robot. I refined the design I made before Thanksgiving break and printed it out for testing. Experimentation on the prototype foot proved that it would work in the leg setup. The question remains, however, about whether I should put 1 spring instead of two, as the foot seems to be very stiff when I tried to displace it when attached to the springs. In my opinion, the setup is fine as it is right now, as the weight of my robot, estimated at 2kg, would be enough to put the foot on a horizontal position, which would maximize the surface in contact with the ground.

Tomorrow, I plan on consulting Asli about controlling the stepper motor and while also making progress on testing the foot.

26/11/2018: FIRST CODE BREAKTHROUGH

Zongxi Huang

In today's class time, I focused on creating a test code to control the stepper motors that just arrived. After looking up several sources online, I decided to try the Arduino codes from some of the tutorials. However, most of them were unfortunately incompatible with my Arduino motor shield setup. As a result, I was initially unable to test the quality of the new stepper motors. However, after much revision, I decided to try the example code once more. This time, I changed the way with which the wires were connected to the motor shield and I managed to make the motors turn after uploading the code to the Arduino. 

I then proceeded to start experimenting with the code to control the motor to create a swinging motion of around 45 degrees. After making adjustments to the speed, the orientation of the spin and the amount of steps the motor would make, I was able to create a one way motion with pauses. However, I was unable to control the motors to produce a swinging motion. 

Next class, I plan on exploring how to improve my code so that I can control the motors to create the swinging motion. Once this is done, I would mount the leg onto the motor shaft and start adjusting the movement for the leg



Video: 

https://drive.google.com/file/d/1W5lLFxouEPjY4InxUjW2BoAOag4OAzNy/view?usp=sharing

https://drive.google.com/open?id=1KcQkIARnnfevxRrDhvMMHtZ8rWWjttDk


11/16/18: Coding and designing the feet

Zongxi Huang

In today's class, I worked on coding for the stepper motor and on the foot design of the robot. I first tried to use the example codes in the Arduino system to control the stepper motor. However, my attempts to do so with the motor shield setup proved to be unsuccessful and, due to a lack of time, I was forced to abandon further testing of the code. I instead made more research on alternative ways to control the stepper motor, mainly through an online electronic diagram website I found online called_. 

In between periods of waiting for the code to compile and upload to the Arduino, I also worked on a foot design for my robot. It is meant to improve the walking efficiency of my robot and to absorb the weight of the robot when it lands after a jump. I have considered using a ball joint to link the leg to the foot, but I determined that this would be unnecessary for the moment, as the leg would not be subject to uneven terrain with great variation in height. The leg would be attached to two springs that lower the foot to the ground. In a situation where no weight is bearing on the leg, only the "toes" of the foot should be in contact with the ground. It would gradually straighten itself horizontally once weight is put onto the leg. When the leg is lifting up and in the process of being brought back forward, the foot would push the robot forward, which would help the robot to walk. 

After Thanksgiving break, I plan on continuing to experiment with codes. I also plan to print out the foot for further testing of its functionality. 

11/15/18: First *official* prototype

Zongxi Huang
1 / 9

Today, I worked on figuring out how to use the Arduino motor shield to control stepper motors and on the assembly of the first (official) leg prototype. I also worked on designing the feet for my walking robot. 

During the morning period, I used one of the sites I found to create the code for controlling the stepper motor using the Arduino motor shield. I succeeded in recreating the code and in uploading it to the Arduino. However, after plugging in the power source, I found out that it did not work. I tried to fix it, but my efforts availed to little results. 

While waiting for help, I worked on assembling the prototype leg for testing. This went rather well, as each piece fitted mostly where I wanted. For now, I used metal screws to put the leg together, but in the future, I plan on replacing them with nylon plastic screws. 

I also worked on the design for the feet of the robot. After assembling the prototype leg, I figured out where to attach the springs, which would work as both shock absorbers as well as components of the walking motion. 

In the end, I decided to figure out how to control the motors tomorrow. Once that is achieved, I would build a test rig and start adjusting the motion of the stepper motors to create a walking motion. Then, I would build another leg to figure out the overall walking pattern. Finally, I would work on the stair climbing and jumping part of the project.

midterm presentation

Aryana Moghadasi

Today, I worked according to the plan I laid out on Monday. First, I looked up and studied how to use the Raspberry Pi to to control motors. I went on the GitHub Website to create an account and start coding for the Raspberry Pi. Then, I followed the website's instructions to create and upload the code to GitHub for transfer to the Raspberry Pi. 

In the afternoon, I worked on designing the rear legs that are meant to be different from the front legs. While the front legs had 2 stepper motors, the rear legs would have only 1 stepper motor. This is done to lighten the overall weight of the robot and to reduce the problems that may arise from an overly complex machine. However, due to the fact that I had to leave for my A-team meet, I was unable to complete the design. 

Tomorrow, I will deliver my mid term presentations and continue work on learning how to code on the Raspberry Pi microprocessor.

Today, I worked on continuing to print the leg pieces for my robot. While there were some minor setbacks in the process, as one of my attempts to print all pieces of a single leg at the same time failed, I managed to print the pieces of a second leg. To solve the issue where the printing material failed to stick to the surface of the 3D printer, I let the machine cool off before restarting it for printing. To avoid further complications caused by the premature cooling of the pieces in the printing process, I chose to print the legs by sets of 2-3 instead of all of them together in a single file. 

I also discussed with Asli about how the stepper motors were going to be controlled. Due to the fact that the raspberry Pi was only shown from my research to be able to handle at most 6 stepper motors, I decided to change the design of the rear legs. While the front legs would retain my original design, the rear legs would have a much simpler layout (with only 1 stepper motor per leg).

After meeting with Tim, I listed a number of things I need to do before using the Raspberry Pi to control my legs. First, I plan on learning how to code a Raspberry Pi through a RC car mini project. Then I would learn how to connect and code the stepper motor controllers. Once this is done, I would need to test my legs on a testing rig, where I would figure out how the legs would move and how they would do so in accordance to other legs. Finally, I would assemble the whole robot.

Next class, I plan on starting on the RC car mini project. I would also be working on the design of new rear legs.

11/05/18: redesigning

Zongxi Huang

Today, I tested the viability of my first leg design. The results showed me that further improvements have to be made, as it had flaws in the motion of the leg. I changed the layout of the leg by adding an extra linkage, but that cause further issues, as the extra linkage cause the leg to become loose, which meant it could no longer stand. I returned to the simpler design I used earlier and locked both servos in place. In doing so, the leg could now imitate a walking motion. However, despite the improvements I implemented, the servos were simply too weak to hold the weight of the robot. As such, I plan on switching to stepper motors and enlarging the seize of the my robot. Tonight, I will make some research on the type of stepper motor I will be using 

leg and body 1627.jpg
leg and body626.jpg

This week, I worked on the planning and designing phase of my new walking robot project. After analyzing the previous iteration I made, I decided that a new design was required to achieve my new objectives. The walking robot I built in my Junior year was simply too restricted in its capabilities. Due to the use of gears and fixed motion legs, the robot did not possess the ability to do much else other than walking. Furthermore, the design was flawed in the sense that its main body was rather weak. With the new robot I am currently working on, the heavy metal motors would be replaced with other methods of propulsion. The legs would be able to be lifted higher of lower depending on the situation. 

I started work on this new project by making some research on specific types of linear drives that would create the walking motion. Though hydraulic cylinders seemed promising, the size that is required to make them work was simply too large to fit on the robot I want to build. The second option was to use pneumatic pumps to propel the legs, but I found it to be quite cumbersome and hard to control. Linear actuators were also considered, but their price limited the number I could use for my project.

In the end, I decided to rely on servos for my new walking robot. They were much lighter than the metal motors and could be controlled with greater precision. Though they may not move fast enough to make my robot run, they can achieve my goal of making it climb. 

Next, I started to work on the design of the legs and body. I drew two separate sketches of the robot and translated the design into Rhino. I printed a leg and test it to make sure it worked as intended. 

Next week, I plan on finishing testing and work on improving the existing design. I will then be moving on to assembly. After the building phase is completed, I will start coding the servos to allow my robot to walk and, hopefully, climb stairs.