Spring 2018 AT-ST Walk Code

By: Samuel K Yoo (Electronic & Control – Software)

Verified By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Table of Contents

Introduction

During the creation of AT-ST, this is a program that allows AT-ST to walk. Note that this program is used for the current model and might need to be updated later on. The code is very straightforward as it only uses the motor and controls the speed. There are commented code for the servo to make it shift the weight of the bot.

Code

Figure 1: screenshot of code pt 1

Figure 2: Walk Code pt 2

Explanation

This code should not be used in the future irritations of the AT-ST. The major explanation of why it should not be used it because of the code being adjusted with some physical deformities with the leg. If the future irritations are going toused this AT-ST, then the code should be used to make the robot walk. However, a more appropriate approach to creating a walking motion code is setting the AIN pins and BIN pins to clockwise and counterclockwise. Keep in mind if the robot is facing you, the left motor must spin counterclockwise and the right motor must spin clockwise. The AIN pins should be programmed to the right motor and BIN pins should be the same with the left motor. To program the motor for a motor driver this table should be used

Figure 3: Table for motor control

The PWM should also be tested on each motor to determine what speed the motors are truely rotating at. This can be done with the shaft encoder, which I have not programmed with. There will be a link in the References for those who would want to learn how to program it.

References

  1. https://roboticbasicsblog.wordpress.com/tag/rotate/
  2. https://playground.arduino.cc/Main/RotaryEncoders

Spring 2018 AT-ST Which Way

By: Samuel K Yoo (Electronic & Control – Software)

Verified By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Table of Contents

Introduction

In this code we are creating a which way sub routine. There are two methods of doing this, one being, code one which is the switch case decision. The other method is the index method which saves a huge amount of coding. The method used for the AT-ST is the index method.

Code

Figure 1: Whichway Code Screenshot

Figure 2: Code Screenshot Cont.

Figure 3: Code Continue

Explanation

The maze.h file contains the maze array which should be given in the EE444 lab training, but if not, there would be a link to it in the Reference. The code in the maze.h file also contains the two tables and the structure for the main programs. The enterRoom, turnInMaze, stepInMaze and roomInMaze all use the index. The index moves the values on the table to point at the appropriate row and column for each desired value. This method is really good and saves a lot space as mentioned above.   

References

  1. http://web.csulb.edu/~hill/ee444/Labs/Lab%204%20Arrays/Lab%204%20(C++).pdf
  2. http://web.csulb.edu/~hill/ee444/maze.h

Spring 2018 AT-ST Final Code

By: Samuel K Yoo (Electronics & Control – Software)

Verified By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Introduction

This is the final code for the AT-ST for Spring of 2018. There are many problems with the code, not only with missing sections, but there is also no test for the other values. The robot can walk forward and turn, however, the code to test for the maze has not been done along with missing parts.  

Code

Figure 1: Final Code Screenshot

Figure 2: Continue

Figure 3: Continue

Explanation

This code has a lot of missing code. The biggest code that is missing is from the void loop, which uses the whichway code and the Bluetooth integration. For the future electronic and control engineer of the AT-ST read the 3DoT manual ahead of time. The coding for the bluetooth is extremely difficult. The lab sequence is not that difficult to understand however the bluetooth is. Another advice is to test the robot as quickly as possible to find the errors both in the program and physical movements. The walking program should work immediately, however, a physical error with one of the legs cause a lot of hardships. The code forward only works with the spring 2018 model. The program takes one small step with the messed up leg and four to five steps with the good leg. This will cause it to steer toward a direction, however, it still moves forward. The whichway code should be pretty much be the same, however, add the hitwall from lab 5 of the training sequence.

Reference

  1. http://web.csulb.edu/~hill/ee400d/Technical%20Training%20Series/3DoT/3DoT%20Training%20Documentation.pdf

Spring 2018 AT-ST Fritzing Diagram

By: Shweta Hebbalkar (Electronics and Controls – Hardware)

Verified By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Introduction

Fritzing is a tool for the student to create clean and professional images of electronics projects. Building a virtual circuit in breadboard view, using Fritzing, gives a better representation of circuit connection close to the real circuit. Fritzing introduces a user-friendly interface for a quick and easy workflow. A user can build and edit virtual electronic circuits, schematics, or PCBs. The concept is drag and drop; the user can drag and drop components from the part library to the project window. Parts are connected using the breadboard and wires. Wires are created instantly by clicking and dragging a part’s connector. Fritzing software made our life so easy because we can change the color of the wires and make the wires curve or bend them. If I click and hold on the connector, Fritzing will highlight all equipotential connectors. I can also select the schematic and PCB tabs to watch or edit my circuit.

Body

I found all components from the default library; if I could see any parts in the library, I can look in Fritzing official website or Google. Some of the parts I could not find, but lucky in Fritzing, we can make our custom parts, by opening the inspector then selecting the component whose properties that we want to change. Then we complete the circuit by connecting all the connection.

Figure 1: Fritzing Diagram

In this figure, I have the 3-DoT board, gyroscope, I2Cexpander, two UV sensor, two IR LEDs, Servo, Ultrasonic, two motors, actually, we are using the micrometer with shaft encoder and 3 volts.

Conclusion

This is a sophisticated tool to use to create a virtual breadboard, and it will help us build it physically. If we miss a connection, then we can always look back and fix any problem.

Spring 2018 AT-ST Assembly of Custom PCB

By: Shweta Hebalkar (Electronics and Controls – Hardware)

Verified By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Introduction

A custom PCB is used for less wires, clean look, and being neat as possible. This is a example of the small custom PCB made and manufactured by oshpark. This PCB has 13 surface mount components and seven through-hole parts for integration and testing of it. Customer wants us to build the PCB, implement, and integrate it into the three-dot board, which is another custom PCB (microcontroller). From that, create the design in eagle software and have him review it for approval.

 

Body

In this image, the surface mount is through the hole as per our requirement. For the project, we are using two UV sensors and two shaft encoders. As well as the gyroscope and the I2C expander for the UV sensor. The journey of getting it printed was rather quick because we had to pay extra for the service and shipping so we could get it on time.

Figure 1: Blank PCB board before any short of soldering take place.

This image shows the surface mount placed on the board. It was my very first time having to surface mount components, but I got lucky and my division manager helped me. Although I could have first assembled all the parts, I was waiting for one to arrive, so I did that later on with a heat gun. I never used a heat gun before, but I looked at a few youtube videos to get a better picture. I then used a heat gun and attached my last surface mount which was the I2C expander.

Figure 2: PCB on the pick and place machine. Having all components needed on it.

This picture shows the complete version of the board where I soldered the rest of the male headers. After that, I used a multimeter’s continuity test to see if there is a short circuit. Afterward, I mounted this on the new version of the three dot board.

Figure 3: PCB with all components on.

Conclusion


Overall I learned a lot in this class, like time management, keep working till you get the answer, and communicate with others. The PCB works fine and all that is left is to integrate it to the AT-ST robot!

Spring 2018 AT-ST Final Blog

By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Table of Contents

Introduction

By Intiser Kabir (Project Manager)

The purpose of this document is to provide a closure to the Spring 2018 AT-ST Project. This document will provide linkages to all aspects of the project for a future generation, including our recommendations, what we learned, and what we should have learned beforehand. We will also provide what went wrong with our project as well. It is recommended to use the table of contents to jump to sections if needed.

Project Members:

Intiser Kabir (Project Manager)

Danny Pham (Manufacturing and Design)

Shweta Hebbalkar (Electronics and Controls – Hardware)

Samuel Yoo (Electronics and Controls – Software)

Joseph Cho (Missions, System, and Testing)

Executive Summary

By: Intiser Kabir (Project Manager)

Mission Objective

The AT-ST Walker BiPed was inspired by Spring 2017 Velociraptor which uses the Theo Jansen’s leg design as the walking feature. We ended up having to choose this design from the negotiations made by both the customer and the Robot Company project teams. While our robot is a direct spin-off of the Velociraptor, we are incorporating a lot of their designs in order to not be mistaken as the BiPed team within the Robot Company. The AT-ST Walker BiPed should be able to go through both S’18 Project and Mission Objectives and EE400D S’18 Project and Mission Objectives documents.

Missions Objective: Source: https://docs.google.com/document/d/1kwObe9HkGBeCjMYAETA5GiChyxhY1o6bpcmhWKbNFv8/edit?ts=5aa836cb#heading=h.m8d2ovwute3k

Key Features

Shaft Encoders

As a way of controlling the motors moving at different speed as well as helping our AT-ST robot to walk and turn. The Shaft Encoder is used to help see our motor’s movement as our AT-ST walks forward.

Ultrasonic Sensor

As a way of avoidance control, the Ultrasonic Sensor is used to help the AT-ST avoid getting into any sort of collision when navigating through the maze.

UV Sensor

As a method for line following, the AT-ST use 2 UV Sensors and 2 UV lights to pick up UV color as it navigates through the maze.

Theo Jansen Leg

The method we are using for walking was inspired by the Dutch artist Theo Jansen. He made robots powered by wind as it walks around. We use his method to create our legs to get the same method.

Micro Motor

To control the leg movement we decided to use Micro Motors since it consumes less current and is compatible with the Shaft Encoders

Project Requirements

The Level 1 and Level 2 requirements follow both the S’18 Project and Mission Objectives and EE400D S’18 Project and Mission Objectives documents. Also what our team is hoping to accomplish by the deadline May 15. Level 1 is for general requirements that the AT-ST is hoping to achieve. Level 2 requirements go down to specific requirements for each member hoping to accomplish.

Level 1 Requirements

  1. AT-ST shall walk on a level surface
  2. AT-ST shall use Theo Jansen leg design
  3. AT-ST shall look like an AT-ST Walker from Star Wars
  4. AT-ST shall turn left, right or turn around
  5. AT-ST shall support its own weight
  6. AT-ST shall not exceed pass the size of 6’’x 6’’
  7. AT-ST shall not walk through walls
  8. AT-ST shall walk straight
  9. AT-ST should walk backward
  10. AT-ST should have a dynamic walk
  11. AT-ST should jump.
  12. AT-ST shall not exceed the budget of $250

Level 2 Sub – MST Requirements

  1. AT-ST shall use Gyro to obtain information for calculating the center of gravity.
  2. The 3DoT Board shall receive commands from the Arxterra app via Bluetooth Transceiver. It will decode and transmit data to servos, PCB and other components of the robot.
  3. The power source shall be able to fit inside our robot and must be integrated into the AT-ST such that it doesn’t conflict with the functionality of the robot.

Level 2 Sub – Electronic Requirements

  1. AT-ST shall use 2 DC Motor to move the legs (1 per leg).
  2. AT-ST shall use a Servo Motor to adjust the center of gravity of the robot so it can turn
  3. The Battery’s duration shall last up to an hour.
  4. AT-ST shall use 2 shaft encoder to keep track of the leg motion
  5. AT-ST shall utilize 2 Lithium Ion Battery – 2Ah for its power supply.
  6. AT-ST shall use an ultrasonic sensor to sense other robots within a 0.5-meter radius
  7. AT-ST shall use UV sensor to navigate through the maze.

Level 2 Sub – Manufacturing Requirements

  1. AT-ST shall have a total weight of 600 g and weight will be properly distributed to the body and legs to support its own weight while walking.
  2. AT-ST shall not exceed dimensions of 6” x 6” in order to fit in the maze and walk and properly turn without hitting the walls in the maze.
  3. AT-ST shall have its body 3D printed (ABS)
  4. AT-ST shall have legs 3D printed (ABS)

Reference:

  1. Verification Test Plan: https://www.arxterra.com/at-st-verification-test-plan/
  2. Preliminary Blog: linked once Published
  3. L1 & L2 Blog: https://www.arxterra.com/spring-2018-at-st-project-specific-requirements-and-objective-l1l2/
  4. Spring 2017 Velociraptor: https://www.arxterra.com/spring-2017-velociraptor-final-project-summary/
  5. https://www.arxterra.com/spring-2017-velociraptor-preliminary-design-documentation/
  6. Missions Objective: Source: https://docs.google.com/document/d/1kwObe9HkGBeCjMYAETA5GiChyxhY1o6bpcmhWKbNFv8/edit?ts=5aa836cb#heading=h.m8d2ovwute3k

System Design

System Block Diagram

By: Joseph Cho (Mission Systems and Testing)

Figure 1: System Block Diagram

The System block diagram above for AT-ST help visualize the system of the AT-ST.  The 3DoT board uses ATmega32U4 as the microcontroller. The 3DoT board consists of a microcontroller, Bluetooth transceiver,  servo header and dual motor driver. The 3DoT board (v6) will also be connected to the servos, motors and main custom PCB. PCB1 will be the master PCB that routes all input and output for the sensors. PCB 2 and PCB 3 are used for UV sensors which will be connected to the I2C expander on PCB 1. Bluetooth transceiver will connect to a mobile device using the Arxterra app via Bluetooth.

To read about it,

Blog post: https://www.arxterra.com/at-st-system-block-diagram/

Interface Matrix

By: Joseph Cho

Figure 2: 3DoT Interface Matrix

Figure 3: PCB 1 Interface Matrix

Figure 4: Custom PCB #2

Figure 5: Custom PCB #3

The interface matrix above shows the allocations of the components to the 3DoT board. List of connections to PCB1: ultrasonic sensor, gyroscope, shaft encoder 1, shaft encoder 2, PCB2 and PCB3.

On PCB1, there will be an I2C expander for the two UV sensors that share the same I2C address (0x60). The gyroscope has I2C address of 0x68 or 0x69, so it will not conflict with the UV sensor.  PCB2 and PCB3 will be connected to PCB1 to utilize the I2C expander.

List of connections that are not shown in the interface matrix: servo header connecting to two servos and the motor driver connecting to two motors. The figure below shows an older version of the 3DoT board that shows the I/O headers. The new version of the 3DoT board has the motor driver, Bluetooth, and servo headers integrated internally, so they are not listed on the interface matrix.

To Read More: https://www.arxterra.com/at-st_interface_matrix/

Resource Reports

By Joseph Cho (Missions, System and Testing)

The resource report contains three parts: Mass report, power report, and cost report). These reports will be covering the resources’ mass, power, and cost. An estimate of the total mass will be shown on the mass report. For power report, the current values were taken from previous projects’ blog posts as reference. Lastly, cost report will show that the AT-ST project is within the budget.

Power Budget

Figure 6, Power Report

To Read more about Power Report: https://www.arxterra.com/at-st-resource-reports-mass-power-and-cost/

Power Budget: https://www.arxterra.com/at-st-power-budget/

Mass Report

Figure 7: Mass Report

To Read More: https://www.arxterra.com/at-st-mass-report/

Cost Report

Figure 8: Cost Report

Figure 9: Extra Cost (included in the Cost Report)

To Read more Cost Report: https://www.arxterra.com/at-st-resource-reports-mass-power-and-cost/

Preliminary Blog to see old report: Link will be provided when Published

Manufacturing Design

By: Danny Pham (Manufacturing and Design)

Mechanical Drawing

For our robot to walk and turn successfully, we will be designing elements of the robot that will be able to balance itself and move smoothly. The AT-ST walker design will incorporate parts of the velociraptor and biped design from previous semesters. The AT-ST will also incorporate dc motors instead of servos, so we switched out from our previous Titrus III leg design. In our case, our robot designs will be using the Theo Jansen leg design and split leg function that the previous 2017 Spring velociraptor project used.

Initial Design – Mechanical Drawing

Figure 10, 1st preliminary concept drawing.

Figure 11, Theo Jansen leg design

Figure 12, Measurement Parts

Figure 13: Mechanical design of AT-ST

To Read More: https://www.arxterra.com/spring-2018-at-st-mechanical-drawings/

Preliminary Prototype

By: Danny Pham (Manufacturing and Design)

 

Figure 14: Preliminary Model of AT-ST

This is our first model that incorporated the Theo Jansen legs and split leg mechanism. I used a box for the body and implemented door hinges on the side that would act as the split leg mechanism that turns the legs. There are servos inside the box that are connected to these panels, and the servos would move the panel in and out to turn the legs. The DC motors are planted on the other side of the panels inside the box, and the motor is connected directly to the Theo Jansen leg. The motor rotates the leg and creates the walking motion for the robot.

To Read More: https://www.arxterra.com/at-st-preliminary-model/

Rapid Prototyping

Figure 15: These are the components we printed that will be put together to build the legs of the robot.

We printed the pieces with PLA so the printed components are brittle and easy to break. We had to replace these with new reprints and increased the number of layers and density so that the components weren’t as easy to break when putting the bot together.

Figure 16: Rotation Shaft

First print of the rotating shaft. It is a complex piece to print because of alternating circles and different sizes throughout the shaft. It was also very easy to snap because we printed it vertically.

To read more: https://www.arxterra.com/spring-2018-at-st-rapid-prototyping/

Cable Tree Diagram

By: Danny Pham (Manufacturing and Design) and Samuel Yoo (Electronics and Control – Software)

The cabling of this diagram contains the servo, ultrasonic sensor, and the dc micro motors. All of the cable used to connect the components were ribbon cable. These cables would make the cabling look cleaner compared to lose wires.

Figure 17: Cable Tree

To Read More: https://www.arxterra.com/spring-2018-at-st-cable-tree/

Final Prototype

Figure 18: Final Model

There are a few things I would fix for this model. Because there are gaps between components in the model, it would be nice to hide some of the wires with panels that covered these gaps. I would also fix some of the screw holes for the model. In Solidworks, it is easy to reach these holes to put screws in, but for the actual model, it can be impossible to reach. Finally, I would adjust some holes in the box. When you 3D print the part, the 3D printing can deform the part so that your dimensions for size and holes are off. We had to sand down the parts to fix that. The issue for this type of design is that these components were not meant to be 3D printed. The design worked as intended but could be improved on. A solution to this is to redesign each component so that it is held together by screws instead of the connections and edges already on the kit components. Redesigning the components to basic connector shapes and using more screws to hold each part together will allow for easier 3D printing but maintaining the function of this design.

To Read More: https://www.arxterra.com/spring-2018-at-st-final-model/

3D Printing

Figure 18: Print times

The Actual print time without the laser printable parts was 5 hours and 56 minutes. This is within the 6 hour project allocation for the 3D printing time.

To Read More: https://www.arxterra.com/at-st-3d-print-time/

PCB Design

By Shweta Hebbalkar (Electronics and Control – Hardware)

Custom PCB

Figure 19: Eagle Schemtic

Figure 20: Finalized and approved board

For the AT-ST project, one of our goals is to create custom PCB using Eagle software. This software allows the user to generate PCB layouts, in order to use the Eagle software, I need to learn how to use the software. With lack of experience using the Eagle software previously, it took me a week to two weeks to learn the general concept. So the overview of the concepts is learning a PCB, also it is most common named “printed wiring board” or “printed wiring cards”. So it is a board that has lines and pads that connect various points together.

 

To Read More: https://www.arxterra.com/at-st-custom-pcb-layout-design/

Final Assembly

The custom PCB is for us to use less wire and clean and neat as possible and this the example of the small custom PCB made and manufactured by osh park. In this PCB has 13 surface mount component and seven through-hole parts l integration and testing of it. Customer wants us to build the PCB and implemented and integrated into the three-dot board, which is another custom PCB (microcontroller). From that Created the design in eagle software and had him to review it for approval.

Figure 21, PCB with all components on.

To Read More: https://www.arxterra.com/spring-2018-at-st-assembly-of-custom-pcb/

Fritzing Diagram

Figure 22: Fritzing Diagram

In this Figure 22, we have the 3-dot board, gyroscope, i2cexpander, two UV sensors, two IR leds, Servo, Ultrasonic, two motors, but actual we are using the micrometer with shaft encoder and 3 volts.

Old Fritzing Diagram: Preliminary Blog will be linked when published

To Read More: https://www.arxterra.com/spring-2018-at-st-fritzing-diagram/

Software

By: Samuel Yoo (Electronics and Controls – Software)

Walk Code

During the creation of AT-ST, this is a program that allows AT-ST to walk. Note that this program is used for the current model and might need to be updated later on. The code is very straightforward as it only uses the motor and control the speed. There are commented code for the servo to make it shift the bots weight.

To Read More: https://www.arxterra.com/spring-2018-at-st-walk-code/

Whichway Code

In this code we are creating a which way sub routine. There are two methods of doing this code one which is the switch case decision. The other method is the index method which saves a huge amount of coding. The method used for the AT-ST is the index method.

To Read More: https://www.arxterra.com/spring-2018-at-st-which-way/

Line Following

For the robot to follow a line there must be two sensors in front of the robot. These sensors must be left and right of the line. The first reading from the sensor should be white or zero because it does not touch the line. Once the sensor touches the line the robot should move away from the line.

To Read More: https://www.arxterra.com/at-st-line-follower-code/

Turning

The turning part of the code relies only on the motor speed and direction. One of the motor speed has to be lower for the bot to turn. The turn is a bit wide however it will turn in the direction of the leg that slow down. The direction could also allow a pivot turn which in that case the motor must go the same direction.

To Read More: https://www.arxterra.com/at-st-turning-code/

Servo Control

The servo is controlled is set on a delay to move back and forth. This delay need to be in sync with the leg moving forward to replicate the Theo Jansen biped. There also need to be a heavy enough weight to move the center mass, however it can’t be too heavy to lose the balance of the biped.

Ultrasonic Sensor code

This code is helps detect objects in front of the robot. Once there something in front of the robot the code changes the path in the maze to avoid the object.

UV Sensor Code

The code here is to detect the line. The sensor also need a UV light, or any led that would result in finding the line. This led and sensor must be tested before line coding.

Shaft Encoder Code

This code allows the user to know where the shaft is located as the motor spins. The location of the shaft is important this can determine how robot would move forwards. With enough testing the values from the shaft encoder can have precise movement with correct speeds.

Custom Command Code for Arxterra

This code aids in controlling the robot movement through the app. Once the code on the app goes to the 3 dot board it would be able move.

Final Code & Calibration

At the end of the day the robot should be able to walk through a maze without falling down. It should be able to turn and detect robots in front of it. The motors might need to be set on differents speed to move straight because they are different.

To Read More: https://www.arxterra.com/spring-2018-at-st-final-code/

Verification Plan

By: Joseph Cho (Mission, Systems, and Testing)

Verification test plan is used to verify our L1 and L2 requirements through analysis, inspection, demonstration, and/or testing. The L1 and L2 requirements are listed in the spreadsheet below. The test plans will be generated from the spreadsheet. Few of L1 and L2 requirements have been reworded by MST.

Figure 24: Verification Test Matrix Continued

Figure 25: Verification Test Matrix Continued

To Read More: https://www.arxterra.com/at-st-verification-test-plan/

AT-ST Verification Matrix and Test Plans: https://docs.google.com/spreadsheets/d/1HHaQliwvLYbqErqJi2AVOlqGEzNX7grKOYJ2CBUFQ7M/edit#gid=0

AT-ST L1 and L2 requirements:

https://docs.google.com/document/d/1xd6XmBhFJmCM-EjkpJS05NfXEHCaKcGz9SlAz1I7_4M/edit?usp=sharing

AT-ST Set and User Guide

By Intiser Kabir (Project Manager)

Assembly

The assembly of the robot take around an hour to physically build the kit. First part that need to be created are the two legs. Then the next step is to get the shaft for each legs. After finishing the legs connect the whole body together and connect the pieces from the leg to the shaft.The electronics connection on the other hand will take less than a few minutes, as they have ribbon cables.

Project Documentation

Project Manager Resources

Project Burndown: https://docs.google.com/spreadsheets/d/1BA9CalRxpTEMkaj8f5vmxWCxLu6S8eY3skgKfgoj3_0/edit?usp=sharing

Project Task Matrix: https://docs.google.com/spreadsheets/d/1tRwaMMoftwmn_mTPSmE4tkiAcbTXb15QuQ_Iaq3tRSA/edit?usp=sharing

Project Gnatt Chart:  https://docs.google.com/spreadsheets/d/1qJi5Dn5vKa3LCvSwmjcABUZHhiHcZaAdZUwo20mh_dQ/edit?usp=sharing

Work Breakdown Structure:  https://drive.google.com/file/d/1kZrGJFDMnC0kTgMegdcvJuCHic7w2qYE/view?usp=sharing

WBS Blog: https://www.arxterra.com/spring-2018-at-st-work-breakdown-structure-wbs/

Creative Solution: https://docs.google.com/presentation/d/15-R1zJiGFsAFutUOhRmU5uyTVYaGsuqz92BFf58_nCg/edit?usp=sharing

Project Preliminary Budget: https://docs.google.com/spreadsheets/d/1oxZsYJLEbIrbdFIPajqWeOOjfz4Kuyb-HZ5zrYufdqY/edit?usp=sharing

AT-ST PDR Presentation:  https://docs.google.com/presentation/d/1-NQhuu86UMHXlMK_8aWX3uDd6Hr-O2HtnjHZ4MrP_hY/edit?usp=sharing

AT-ST PDR Blog: Linked when Published

Weekly Meetings: https://drive.google.com/drive/folders/1gVZSaHw7cnSAfjJnVRijB9rwGvk1QtHc?usp=sharing

E&C Resources

PCB & Fritzing Diagrams: final PCB and Fritizing, link if broke: https://drive.google.com/file/d/1JSqOuvCCSRSwIWFCpZrfkfj4Ga_RjFsW/view?usp=sharing

AT-ST Arduino Codes:  Code-20180517T100914Z-001, link if broke: https://drive.google.com/drive/folders/1DZBI-riP9-Pr2yBkuRpEFd-wREy2lyig?usp=sharing

MST Resources

System Block Diagram: https://drive.google.com/file/d/1j5_l9pjMIDLRvQ1kjKGN6JH-4fDHt6XK/view?usp=sharing

SBD Blog: https://www.arxterra.com/at-st-system-block-diagram/

Project Breakdown Structure: https://drive.google.com/file/d/1TlbJeORAzsJNmbRW44lwExin888p_u7W/view?usp=sharing

PBS Blog: https://www.arxterra.com/at-st-product-breakdown-structure-pbs/

Resource Report: https://drive.google.com/drive/folders/1zvRPpSIN7W8F0zzLFqQXKC7xtbaw7mvQ?usp=sharing

Power Budget: https://docs.google.com/spreadsheets/d/1OaWtFrqYVQsylEh2nXOvKjFT-g2KG72ej-pF6OJWQ54/edit?usp=sharing

Mass Report: https://docs.google.com/spreadsheets/d/1_q0K2hwcqDshcp3e7MT1azD3lbXh80qJeSJ1bALZQZ0/edit?usp=sharing

Interface Matrix: https://docs.google.com/spreadsheets/d/1BBBQAYeuzqONEjrJYas0pvlGR3igG8wluO_shYIF2mE/edit?usp=sharing

AT-ST Command and Telemetry (Mobile App.) Blog: https://www.arxterra.com/at-st-command-and-telemetry-mobile-app/

Verification Matrix: https://docs.google.com/spreadsheets/d/1HHaQliwvLYbqErqJi2AVOlqGEzNX7grKOYJ2CBUFQ7M/edit?usp=sharing

Manufacturing Resources

Final Solidworks Model: Solidworks files-20180517T101958Z-001, Link if Broken: https://drive.google.com/drive/folders/1NlfKwoVS82mzJICGQdZJKbr_0ODFaeZI?usp=sharing

Lessons Learned

By: Intiser Kabir (Project Manager)

From this class. The most important thing I learn is time management and trying to find different ways of communicating with the group to get everyone together. One of the most Critical things to do is Planning and Scheduling, even then a lot of things don’t go to plan as one may expect.

  • Things Don’t Always Go Into Plan! Whenever you are scheduling meetings with your group, make sure to have a back-up plan. Especially since there are members that aren’t available on certain days and sometimes you or someone in the group will get sick. Always have some to plan around those situation.

 

  • Communication. One of the biggest issues I have faced as my time as Project Manager is certain members not informing issues they have, I recommend finding a way with such member that like voice chat on Discord or calling them up. Is best to know when they are free so you can talk them individually to see what issues they are having and see what can you do to help out.

 

  • Research. At the very beginning, do a lot of research on previous projects see why they fail, and see their advice on how to improve it. Do research on the parts you may buy. For us we had to buy specific type of Male to Male pins and had to custom make our housing just to connect the Shaft Encoder. If we never knew this a long time ago, we wouldn’t have as much issues regarding the Shafts.
  • Always Get Customer’s Approval. I myself learned this the hard way. For our preliminary design our Customer didn’t like the fact we were using servos to move our leg and especially wanted us to use motors. We had to go back into the drawing board at a crucial point of our project. The customer was generous enough to help and advice us on how to improve our project or what we should look into while doing our project. Don’t be afraid to approach him when you are facing issues.
  • Get a Prototype working ASAP. The Customer made a huge point on it especially before Spring break to get a working model ready. The long you hold off on that the harder it will take to get your project up and ready. You will find out issues a lot faster the quicker you make your prototype. Especially since you don’t have much time to begin with in class to work on such a massive project.
  • Plan to iterate the 3D model at least 5 times and don’t rely heavily on the 3D printing for some parts, find alternatives and don’t rely on one company for your prints. There are many parts that need to consistently be changes there will always be issues regarding 3D printing such deformation or parts come out too fragile. Find alternative ways to make certain parts like model injects. Research on how to do that!
  • PCB is Not Easy to Make. It took my E&C any different iterations to finally get approved. Assembling is the hard part of making a PCB. Please remember the quicker you quicker you can make your PCB the more money you can save. Also try to Remind your Customer you have more than 1 custom PCB so he doesn’t just focus on 1 and never check  the other ones.
  • Provide Weekly Goals. To keep your project on task, see what each person has to do per task so they can work independently. Planning isn’t easy but, but as Project Manager just form a general goal and see how everyone is doing.
  • DON’T RELY ON 1 PERSON TO DO ALL THE WORK. There are some points where my E&C Software had to build and test by himself. Please don’t let this happen, make sure everyone do their part because you can’t let someone do all the work.

 

This class went fast and you will realize how important time is. Is hard to take breaks at time for this class. Plan accordingly, help each other, learn from your mistakes, and most importantly get in your Customer’s good side. You want the Project succeed as much as you can. Don’t wait to the last minute to get everything ready always have back up, 1 of our motors failed in the last minute which ended up hindering us. So having multiple replacements isn’t a bad thing!

Future Improvements

  1. Find alternative ways on making some of the parts and don’t rely heavily on 3D Printing. Somethings aren’t designed to be 3D Printed!
  2. Research on how to code Shaft Encoders.
  3. Look into current regulators to prevent your motors draining out.
  4. Find a way to control the balance of the the AT-ST so it doesn’t wobbles as it walks.
  5. Look into getting a boost converter to give more voltage out for the motors.
  6. Redesign leg components into simple connector shapes that work with screws to make 3D printing easier and more accurate.
  7. Create panels to cover gaps in the model to hide wires and to make the robot more stable. Also to make the robot look cooler.
  8. Implement more holes in the design for screws so that the holes are in the correct exact locations of the model and so that the screw holes in the model are easy to access.

Project Video

–Linked When Made–

Spring 2018 AT-ST Gyro

By: Intiser Kabir (Project Manager) and Danny Pham (Manufacturing)

Approved By: Miguel Garcia (Quality Assurance)

Table of Contents

Introduction

Our research on the Gyro is to see if it is a good mechanism to help balance our AT-ST robot. We are 1st going to test how the Gyro calibrates when moved around. After that, we are going to see if the Gyro can help control the head and “tail” feature of our AT-ST robot, which are going to be used as a balancing mechanism. To do so, we are trying to see how Gyro can control Servos to give us an idea how to set up the Gyro-Servo balancing mechanism.

Materials

  • 1 x MPU-6050 (Gyro)
  • 1 x Arduino Uno
  • 1 x connection cord
  • 1 x Micro Servo
  • 4-7 x Wires
  • 1 x breadboard (however it might not be needed depending on the type of wires you use)

Testing the MPU6050

Fritzing Diagram

Figure 1: The circuit above is used to see calibration of the Gyro

Figure 2: The circuit above is where you control the servo arm with a Gyro

For our build since MPU6050 Wiring:

  • SCL – A5
  • SDA – A4
  • VCC – 3.3V
  • GND – GND
  • INT – PIN3
  • Servo Wiring:
  • VCC – 5V
  • GND – GND
  • Control – PIN3

Instruction

Gyro Calibrations:

  1. Connect the gyroscope to the Arduino using the fritzing diagram (Figure 1).
  2. Download the MPU6050 and I2Cdev libraries in the GitHub link in the references below.
  3. Copy the MPU6050 and I2Cdev folders into the Arduino libraries.
  4. Now open up the MPU6050_DMP6 file in Arduino under examples.
  5. Make sure the board and port are selected. Verify and upload the code to the Arduino.
  6. Open up the serial monitor and set the Baud rate to at least 15000.
  7. Follow the instructions. Enter a character and the coordinates will be given shortly.

Gyro – Servo Control:

Set up circuit like this: 

Figure 3: Physical Set Up

MPU6050 Wiring:

  • SCL – A5
  • SDA – A4
  • VCC – 3.3V
  • GND – GND
  • INT – PIN3

Servo Wiring:

  • VCC – 5V
  • GND – GND
  • Control – PIN3

 

  1. Download this Code: https://drive.google.com/file/d/0B0SU0douW9lVenJ0Vng0QlEyUDQ/view
  2. In order for the sketch to work you will need to install i2cdevlib library to Arduino library folder:https://github.com/jrowberg/i2cdevlib
  3. Bring the MPU close to servo
  4. Move MPU around to see the servo around moving around

Watch this video as reference: https://www.youtube.com/watch?v=vSKEH0FwhUE

Results

Figure 5: Output of the Calibration code

The calibration tells the x,y,z directions of the gyro.

Figure 6: servo arm moves at the same time as the gyro

It is sort of hard to tell from the picture, the servo arm moves depending on the change of position of the gyro just to be aligned with it.

Conclusion

From this research, we can see the Gyro can be useful in our balancing mechanism since we can control the directions the servos move. From the research, we can see how the Gyro can be calibrated when we move it around. We are planning to do more testing regarding our balancing mechanism for a future task using the Gyro.

Reference

  1. https://github.com/jrowberg/i2cdevlib
  2. https://www.youtube.com/watch?v=GjHxwDLBh00
  3. https://www.youtube.com/watch?v=vSKEH0FwhUE
  4. http://fritzing.org/projects/arduino-uno-gy-521
  5. https://maker.pro/arduino/tutorial/how-to-control-a-servo-with-an-arduino-and-mpu6050

Spring 2018 AT-ST Custom PCB Layout/Design

By: Shweta Hebbalkar (Electronics and Controls – Hardware)

Verified By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Table of Contents

Introduction

For the AT-ST project, one of our goals is to create custom PCB using Eagle software. This software allows the user to generate PCB layouts, in order to use the Eagle software I need to learn how to use the software. With lack of experience using the Eagle software previously, it took me a week to two weeks to learn the general concept. So overview of the concepts is learning a PCB, also it is most common named “printed wiring board” or “printed wiring cards”. So it is a board that has lined and pads that connect various points together.

Transformation #1

The first thing I ever built in the Eagle CAD is the flowing figure, a schematic and PCB layout. In the figure one the schematic is for the op-amp amplifier I followed this schematic from the workshop that was directed by Chris and others.  Creating the PCB layout was easy to follow basically I moved all the components into the black box and then AutoRoute the trace.

Figure 1: Schematic

Figure 2: PCB #1

Figure 3: Frontside of PCB #2

In the picture above, there are traces that electrically connect the various connectors and component to each other. A PCB allows signals and power to be routed between physical devices.

Transformation #2

After two weeks of refining my skill in Eagle CAD with help of the Chris and others at the workshop. I was finally started designing my very first custom PCB layout schematic. When I was designing the circuit, it took me four days to find the library that I need it to create the custom PCB layout. Eventually, I was successful to get all the all the library that I need it, for example, the ultrasonic sensor the gyroscope and i2c expander as shown below in schematic and the board.

Figure 4: Iteration #2 schematic

In fig 4 the schematic was just placed on the template thinking that they will be all connecting in the board.

Figure 5: PCB layout

In Fig 5 the board layout, I placed all the components in the black box and then arranged in preferred to make it in compact space due to requirement. Afterward, I try to route the i2c expander with an ultrasonic sensor. In conclusion, from these we all understand that I need more practice then I thought and also need more clear instruction as well.

Transformation #3

In order to send in the custom PCB layout to print, I have to illustrate my board to get approval from our Customer. Which is very useful because professor Hill helped me the lot to make my board even more efficient. For example, the routing line has to be the 45-degree angle and it should be the clean line. If I am using polygon plane the top one supposed to be ground and the bottom one should the source. Always make sure to have the right parts if not then I redo the board design. According to the team consensus, we decide that we are going to make our PCB as the front shield.

Though this images below is my final version before getting approval. I had to go through many iterations. I had to connect all the lines in the schematic and I have to make it look easier to read for others.

Figure 6: New updated Schematic

Figure 7: Updated PCB

Unfortunately, we did not inform our professor that we are changing our custom PCB from top shield to the front shield. Still, the images above and I went with and I design our PCB.  Then After emailing professor this board to get approval from our professor however he emailed me back saying that why am I using the front shield. Then I respond to him saying that we need to use the analog pin, therefore, we are using the front shield. However, the professor said we don’t need to use analog pin we need digital pins and that pin is given in the top shield so I have to redo the custom PCB again.

In conclusion, we did not inform the customer beforehand with my design. Which means that I need I made myself double the work. The more time I spent with design PCB, I became more cautious because we would have to save time and print the board right away because printing board takes a lot of time.

Transformation #4

After getting some feedback from Customer, I already lost a big amount of time, which means that I get to have less time printing board, however, I started designing the top shield. With many changes like the routing and the get the right parts package size for schematic chaining any specifications according to professor liking I get approval the image below.

This is schematic is final schematic after many variations.

Figure 8: Finalized Schematic

The final PCB board that we send it to OSHPARK to print.

Figure 9: Finalized Custom PCB

Maintaining low expectation with my first board design because they had lots of problems and the final was my 25th board design that had the fewer error. The schematics are important and trying to design a board with a good schematic in place first is an exercise in futility.

In conclusion, I have learned lot more from Hill then division manager although they were helpful, mostly it is our job own responsibility to learn the eagle software.

Spring 2018 AT-ST Work Breakdown Structure (WBS)

By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Table of Contents

Introduction

The idea of the WBS is to breakdown who does what for the project. The Project Manager assigns all tasks to the group and divides the work into who is the best fit for the job as well list out the tasks from the task matrix. WBS looks like a flowchart that shows where each specific task goes to per division.

WBS

Figure 1 Workbreak down structure

Description

The idea of the WBS is the breakdown who does what for the project based on the task matrix and job description. It is broken down to each division the task belongs to. Some people within groups also volunteer to task outside of their specialty or working with others. So the breakdown is structured around this. This WBS will be used to help create PBS.

References

  1. https://docs.google.com/spreadsheets/d/1hYPJQWkk-FtJcmEzwJh0wv_LhTuU2_OUg5NqZrFQ7T0/edit#gid=1180904142
  2. http://web.csulb.edu/~hill/ee400d/Lectures/Week%2001%20Company%20and%20Mission/d_Job%20Application.pdf
  3. http://web.csulb.edu/~hill/ee400d/Lectures/Week%2001%20Company%20and%20Mission/c_Job%20Descriptions.pdf

Spring 2018 AT-ST Project Specific Requirements and Objective (L1&L2)

By: Intiser Kabir (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

Table of Contents

Introduction

The Level 1 and Level 2 requirements follow both the S’18 Project and Mission Objectives and EE400D S’18 Project and Mission Objectives documents. Also what our team is hoping to accomplish by the deadline May 15. Level 1 is for general requirements that the AT-ST is hoping to achieve. Level 2 requirements go down to specific requirements for each member hoping to accomplish.

Level 1 Requirements: assigned to all Members

  1. AT-ST shall walk on a level surface
  2. AT-ST shall use Theo Jansen leg design
  3. AT-ST shall look like an AT-ST Walker from Star Wars
  4. AT-ST shall turn left, right or turn around
  5. AT-ST shall support its own weight
  6. AT-ST shall not exceed pass the size of 6’’x 6’’
  7. AT-ST shall not walk through walls
  8. AT-ST should walk backward
  9. AT-ST should have a dynamic walk
  10. AT-ST should jump.

Level 2

Level 2 – MST System/Subsystem Requirements: Assigned to Joseph Cho (MST)

  1. AT-ST shall use Gyro to obtain information for calculating the center of gravity.
  2. The 3DoT Board shall receive commands from the Arxterra app via Bluetooth Transceiver. It will decode and transmit data to servos, PCB and other components of the robot.
  3. The power source shall be able to fit inside our robot and must be integrated into the AT-ST such that it doesn’t conflict with the functionality of the robot.

Level 2 – Electronics & Control Requirements: Assigned to Shweta Hebbalkar (Hardware) and Samuel Yoo (Software)

  1. AT-ST shall use 2 DC Motor to move the legs (1 per leg).
  2. AT-ST shall use a Servo Motor to adjust the center of gravity of the robot so it can turn
  3. The Battery’s duration shall last up to an hour.
  4. AT-ST shall use 2 shaft encoder to keep track of the leg motion
  5. AT-ST shall utilize 2 Lithium Ion Battery – 2Ah for its power supply.
  6. AT-ST shall use an ultrasonic sensor to sense other robots within 0.5-meter radius
  7. AT-ST shall use UV sensor to navigate through the maze.

Level 2 – Manufacturing Requirements: Assigned to Danny Pham (Manufacturing)

  1. AT-ST shall have a total weight of 600 g and weight will be properly distributed to the body and legs to support its own weight while walking.
  2. AT-ST shall not exceed dimensions of 6” x 6” in order to fit in the maze and walk and properly turn without hitting the walls in the maze.
  3. AT-ST shall have its body 3D printed (ABS)
  4. AT-ST shall have legs 3D printed (ABS)

Conclusion

The Specific Requirements and Objectives help incorporate design ideas and ways we can make our robot function. It will also help us understand our restrictions regarding features and objectives the robot can successfully do. We incorporate ideas used in the previous Velociraptor for our AT-ST Walker because they have similar ideas that we want to use. We also try to understand why they didn’t work in the past and want to fix issues regarding the Velociraptors for our design. We are basically like the Velociraptor without the head and tail, and the BiPed without servos to control the leg movements.

 

References

  1. https://docs.google.com/document/d/1cyjXSxK7dr–Xwo8d_XS3zJ5vIeamPyu2YjNbjs5Hzw/edit#heading=h.ieqe41766sxa
  2. https://docs.google.com/document/d/1kwObe9HkGBeCjMYAETA5GiChyxhY1o6bpcmhWKbNFv8/edit
  3. https://www.arxterra.com/spring-2017-velociraptor-preliminary-design-documentation/
  4. https://docs.google.com/spreadsheets/d/1HHaQliwvLYbqErqJi2AVOlqGEzNX7grKOYJ2CBUFQ7M/edit#gid=0