Team 9 F19S20 EOP Report
Team 9 F19S20 EOP Report
i
2) Mitigation Techniques ................................................................................................................................................... 26
B. Embedded System Development Time .............................................................................................................................. 26
1) Risk Description ............................................................................................................................................................. 26
2) Mitigation Techniques ................................................................................................................................................... 26
C. Scheduling Conflicts with Mechanical Engineering Team & Schoolwork ........................................................................ 26
1) Risk Description ............................................................................................................................................................. 26
2) Mitigation Techniques ................................................................................................................................................... 26
D. COVID-19 / Campus Closure ............................................................................................................................................. 27
1) Risk Description ............................................................................................................................................................. 27
2) Mitigation Techniques ................................................................................................................................................... 27
VIII. Design Philosophy ............................................................................................................................................................. 27
A. Brainstorming Philosophy .................................................................................................................................................. 27
B. Prototyping Philosophy ...................................................................................................................................................... 27
IX. Deployable Prototype Status ................................................................................................................................................. 28
A. Brief Description ................................................................................................................................................................ 28
B. Prototype Performance ....................................................................................................................................................... 28
1) Inertial Measurement Unit Performance ........................................................................................................................ 29
2) Brushless DC Motor Performance ................................................................................................................................. 30
3) Time of Flight Sensor Performance ............................................................................................................................... 31
X. Marketability Forecast .......................................................................................................................................................... 32
A. Increase Marketability Discussion ...................................................................................................................................... 32
B. Necessary Changes for Manufacturing ............................................................................................................................... 33
1) Hardware ........................................................................................................................................................................ 33
2) Software ......................................................................................................................................................................... 33
3) Construction ................................................................................................................................................................... 33
XI. Conclusion .............................................................................................................................................................................. 34
References ...................................................................................................................................................................................... 34
Glossary .......................................................................................................................................................................................... 35
Appendix A. User Manual ......................................................................................................................................................... A-1
Appendix B. Hardware ............................................................................................................................................................... B-1
Appendix C. Software ................................................................................................................................................................ C-1
Appendix D. Mechanical Aspects .............................................................................................................................................. D-1
Appendix E. Vendor Contacts .................................................................................................................................................... E-1
Appendix F. Resumes .................................................................................................................................................................. F-1
ii
Table of Figures:
Figure 2.1. Number of wildfires and acres burned in the U.S. from 1988 to 2017. Reprinted from “Wildfire Statistics.” ...............2
Figure 2.2. Top five years with the largest number of acres burned since 1960 in U.S. ...................................................................3
Figure 2.3. Burned/Unburned mapping of Pedrógão Grande in 2017 ...............................................................................................3
Figure 2.4. Map of historic earthquakes since 1769 ..........................................................................................................................4
Figure 2.5. 2011 Tohoku earthquake epicenter map ..........................................................................................................................4
Figure 2.6. Global tsunami events from 1890 to 2010.......................................................................................................................4
Figure 2.7. Annual percentage of flood peaks in the Easter United States ........................................................................................5
Figure 2.8. Potential Areas with High Risk of Wildfires. ..................................................................................................................6
Figure 2.9. Number of Natural Disasters from 1900- 2018 ...............................................................................................................7
Figure 2.10. End of Year Cost of Disaster Relief ..............................................................................................................................8
Figure 2.11. KOHGA3 Ground Robot for Search and Rescue and Vacant Building Inspection .......................................................8
Figure 2.12. Robot Snake, Biorobotics Laboratory Carnegie Mellon University ..............................................................................8
Figure 2.13. Boston Dynamics’ SpotMini .........................................................................................................................................9
Figure 2.14. Honda’s Asimo ..............................................................................................................................................................9
Figure 2.15. Thermite Fire Fighting Robot ........................................................................................................................................9
Figure 2.16. Prescribed fire in eastern Washington, United States .................................................................................................. 10
Figure 2.17. Firefighting Drone ....................................................................................................................................................... 10
Figure 2.18. Disaster Relief Drone .................................................................................................................................................. 10
iii
Table of Tables:
Tab. 2. 1 Table format of Fig. 2.1 Forest Service (FS) and Department of Interior (DOI). ............................................ 2
Tab. 2. 2 Number of personnel and losses for FS and DOI ............................................................................................ 3
Tab. 2. 3 Worldwide Earthquakes from 2000 to 2016 .................................................................................................... 3
Tab. 2. 4 Number of hurricanes and hurricane related deaths ......................................................................................... 5
Tab. 2. 5 Table demonstrating the most common chemical substances firefighters interact with. ................................. 6
Tab. 2. 6 Natural Catastrophe Losses in the US 2018..................................................................................................... 7
iv
EXECUTIVE SUMMARY
Our project is a semi-autonomous robotic quadruped to help aid in search and rescue and other operations.
In this report we provide a detailed explanation of the work performed and our experience with this project
over our timeline from Fall 2019 to Spring 2020. Our goal for our project was centered around the idea to
help workers in the field of search and rescue, and to help prevent those people being in dangerous situations.
The inspiration behind the creation of a robotic quadruped was looking at the world’s problems and
understanding that there are disasters throughout the world. Once we had a better understanding of the
societal problem, we had to figure out a way to solve the problem or best help solve the problem. Since
disasters, whether it be natural or not natural are common throughout the world and not preventable, we
wanted to focus on something that is achievable and can work to help when those disasters occur.
Our milestones consisted mainly of the creation of our features. Once we were able to complete each feature
one at a time, we knew that we were one step closer to completing our design. Some of the big milestones
were completing the first prototype as well as the second prototype to show the progress we had made as
well as giving us inspiration to work towards a final product. Also, big milestones were the December
showcase because of the valuable feedback given for the rest of our project and what we needed to do in
order to succeed with our final design. Each aspect of our robotic quadruped had risks. Though most of the
project consisted mainly of software, the hardware parts of the project had the most risks. This is because the
software errors would only be compiling errors and mostly from just testing the software if it works. Our
hardware is a different problem though since the robotic quadruped is a movable object, parts move a lot and
they could break with random falls or become short circuited without much notice. There is also the issue
with building our second prototype is the amount of power consumption as well as stress on the parts. After
diagnosing and finding the broken part, it could take days or weeks to replace our items. All and all, we did
not run into many issues throughout the product that set us back to far. The main issue that we ran into was
the lack of time to work on and test our robotic quadruped since it was so complex and a big learning curve
for a lot of the software.
Many factors have affected the ability to ‘roll-out’ the project as a fully formed product, namely the
resources that are available for use as well as the time to completely get the project fully operational. All
measurable metrics have been met throughout the project's timeline. To improve on our design, we believe
that the main features are solid and would just need more refinement. More things need to be added to
software to be more consumer friendly and more inviting as well as the capabilities of the product. Hardware
wise, we could look at using different boards and microcontrollers to make the robotic quadruped cheaper as
well as smaller. Also, more fabrication of better integration of our robotic quadruped could be made to create
a nicer more robust robotic quadruped.
Overall, this document walks you through how we got the idea to solve the societal problem as well as the
tasks it took to complete the robotic quadruped. The product specifications will be discussed to allow the
reader to provide insight about the cost, purpose, and ability to compare the project to similar products.
Throughout the report, you will also find how we broke down each part and combined them into one
product. Also, this document provides the details about the various robotic industries to provide context as
to how our robotic quadruped will fit in the real world
v
1
a) Wildfires
This subsection provides numerous statistical
datasets regarding wildfires. Wildfires are a form of
ground search and rescue; also, other forms of fires
can devastate urban areas to include them in urban
search and rescue. A recent example would be “The
Camp Fire” in Paradise, CA. They had to evacuate
52, 000 people throughout the city and surrounding
area. The fire lasted for two weeks and burned across
153,000 acres.
b) Earthquakes
This subsection presents statistical data regarding
earthquakes and other relevant earthquake-related
information.
One of the most recent big earthquakes was the
2011 Tohoku 9.0 earthquake which later caused a
Tsunami to hit the city. The combined total of
Figure 2.2. Top five years with the largest number of acres confirmed deaths and missing is more than 16,000.
burned since 1960 in U.S. Due to the earthquake and tsunami, the Japanese
Source: Please refer to [27] government ordered over 100,000 troops, a total of
236 aircrafts and 50 vessels/cargo planes were
deployed to aid in the field. This incident is classified
under the form of water and urban search and rescue.
c) Tsunamis/Hurricanes/Floods
Subsection C provides data related to tsunamis,
hurricanes, and floods, respectively.
d) Avalanches
Avalanches are a form of mountain search and
rescue. The largest avalanche in history was on May
30th, 1970 off the coast of Peru. An earthquake
caused the north slope of Mt. Huascaran to collapse.
The avalanche ran for almost 11 miles and estimates
that 20,000 people were killed in the event. Statistics
show that about 25% of victims were killed by the
trauma of the event. Of those that survive the trauma,
the first 15 minutes is crucial for survival. The search
for victims must start immediately if they are buried.
In the present day, ski patrols, helicopters and
mountain rescue teams are sent out to search and
rescue the buried victims. For avalanche rescue
teams, they usually have a first team that can travel
light and move quickly to locate and uncover buried
victims. After that depending on the severity, they
will transport the victim via the ski patrol or by
helicopter. Overall the plan for search and rescue
teams has evolved tremendously.
researchers analyze the health consequences of When it comes to flooding, there can be a variety
natural disasters; as the research focuses primarily on of toxins and carcinogens that become present in the
the populations impacted and the immediate water. Storm surges can create situations where
aftermath. Prochaska and Peters (2019) argue that water meets hazardous materials; which in turn, may
there has been very little research done on the health flow into bodies of water used by people.
effects of natural disasters in older adults over a long
period of time. The article proposes correlations Economic strain may also be an apparent
between exposure to these events and the long-term consequence of a natural disaster. For instance,
development of cancerous diseases in older adults. according to Munich Re, in 2018 the US saw an 82-
As discussed before, the current trends show an billion-dollar loss due to natural disaster events that
increase in occurrences of severe weather events in had occurred.
the United States; with, this increase has also led to
an increased exposure to natural disasters by the
general population.
5) Possible Solutions
Currently, Rescue Teams and Firefighters are put
into highly stressful and erratic environments. The
proposed, main solution to this problem is to add
more robotic technology to help analyze dangerous
situations, speed up the searching processes when
disasters do happen, react to fires more rapidly and
Figure 2.11. KOHGA3 Ground Robot for Search and Rescue
from more dynamic approaches, and give all this and Vacant Building Inspection
information to the teams in the situations so that they
can help people in need with better assurance of their Source: Please refer to [17]
own safety. Currently, robotic models are used as Another example of current robotic technology
live streams that feed information to a remote falls under snake-like robotics. These newer designs
location out of danger. Eventually, the goal would be are light, thin, and can fit into narrow areas rescue
to allow autonomous or semi-autonomous robots to workers cannot readily access. These types of robots,
replace workers and to allow greater environmental still being developed, could one day help rescue
control over any disaster type situation. This requires workers locate victims trapped under rubble piles in
highly intelligent robotics as well as teams that are broken down buildings or miners stuck in caves and
trained to operate them. mines.
b) Firefighting Robots
Robotic Firefighting Systems typically entail a
remote-controlled vehicle with fire suppression
technology attached to it, like a water hose. They can
travel into areas deemed unsafe for humans such as a
collapsing building or closer to a fire that would be
too hot for a firefighter. They also have the added
benefit of being able to detect voices, body
signatures and map out hotspots to avoid walking
over collapsible spots.
Figure 2.13. Boston Dynamics’ SpotMini
3) Idea Uniqueness
Figure 3.2 Small Model Joint Placement Diagram
To be clear, this project was similar in many
Source: Please refer to [21] aspects to other projects built in on other campuses,
companies, and hobbyists. It is difficult to say what
makes this project specifically unique over other
projects. For this team, this project was selected due
to its unique goals and challenges that may offer
12
great opportunities to learn realistic robotics design • Control the speed and rotary positions of a motor
processes and techniques. to a certain accuracy.
design. Some of this did not last to fruition due to Ballscrew support
campus shut down and lab closure. bearings 8 $22.75 $182.00
3) Feature Set & Measurable Metrics 250 mm ballscrew, thighs 8 $20.59 $164.72
The features planned for this semester were more
realistic than the previous semester. Each team Linear rail leg supports
(rod to be cut in half) 4 $37.35 $149.40
member was to undertake only one main feature and
work exclusively on that to ensure everyone was 200 mm ballscrew, hip
working hard but not overworking. joints 4 $33.99 $135.96
The Spring Feature Set was more compact and 30mm ball bearings 8 $9.00 $72.00
more achievable; however, it has since been reduced 30 mm steel tubes,
further due to campus shutdown: 2.0mm x 300mm, hip
supports 4 $17.28 $69.12
a) Small Model: 3 x 1 x 36 Aluminum
• Controlling the motors and joints using an beam, backbone 1 $52.68 $52.68
embedded computer instead of a microcontroller. 40 x 40 Aluminum Ext
91" 1 $49.14 $49.14
• Attaching an IMU to the body platform and
implementing feedback into the walking 10mm ball bearings 12 $3.00 $36.00
software to increase balance.
20x60 Aluminum Ext
800mm 2 $17.30 $34.60
b) Large Model:
• Implementing power control system for the leg to 20x40 Aluminum Ext
operate for a certain length of time and begin 700mm 2 $14.95 $29.90
testing power consumption. Wheel bearings for ball
screw support 2 $10.99 $21.98
• Controlling the angles of the joints via the BLDC
Motor Controllers in software. Assorted hex screws 1 $19.99 $19.99
20 x 20 Aluminum Ext
600 mm 2 6.79 $13.58
IV. FUNDING
A. Mechanical Aspects 3/8 threaded rod 10ft 1 $7.98 $7.98
1) Mechanical Component Breakdown
3/8 washer 25 piece 1 $3.45 $3.45
B. Electrical Aspects
1) Electrical Component Breakdown
Grand
Bill of Materials Total: $2,504.70
Club or
PART UNIT TOTAL Team
DESCRIPTION QTY COST COST: Funded
Brushless DC
motor 12 $85.85 $1,030.20 Club
O Drive 3.6 (24V
version) 6 $129.00 $774.00 Club
NVIDIA Jetson
Nano 1 $99.00 $99.00 Club Figure 5.1 Small Cardboard Model Prototype
Time of Flight Source: Please refer to [6]
Sensors 2 $50.00 $100.00 Team
V. PROJECT MILESTONES
A. Cardboard Model
The first iteration of our robot design was made of
cardboard, glue, and tape. This was simply a
brainstorming model and it allowed the mechanical
engineers on the team to communicate with the
electrical and computer engineers on how best to
begin this project. The cardboard model was used for
roughly the first month of the Fall Semester and
ended when the 3D model was designed, and printing
began. The greatest lessons learned from this model
were: (1) controlling servo motors through
microcontrollers, (2) using while loops and time
delays properly, and (3) the restrictions on the range
of motion on the joints. This was also an opportunity Figure 5.2 Construction of the 3D Printed Small Model
to gain basic understanding on how to properly
Source: Please refer to [6]
assign pins and use an ARM M4 microcontroller.
The miniature prototype was designed to operate
using 12 high torque servo motors placed directly in
each joint, called ‘Direct Drive’ in robotics. This
15
meant that the motors were in a situation that would features would be added to increase the robots impact
allow them to be damaged easily if not used properly, reaction when walking on hard surfaces.
but it allowed them to be as light as possible with the
largest range of motion possible. Alternatives to this One major aspect of this prototype was the
design we considered including using cabling, microcontroller itself. The first thing that had to be
springs, struts, or gears coupled between the motors concurred was controlling a servo motor from the
and the joints. adjustable systick timers and clocks within the ARM
Cortex M4 chip itself. The team decided to use a M4
Microcontroller over a hobbyist Arduino board
because they have much more capabilities. These
include faster clock speeds, lower level port and
peripheral control, and lower power consumption.
The main drawback of these more advanced chips are
the added difficulties caused by the lack of support
online.
Most people who make recreational drones or as some of these may sound, if the project could be
robots use either Arduino Microcontrollers or fragmented correctly these could serve individual
Raspberry Pi boards. The ARM Cortex chips, purposes within the main body of the project to bring
however, are industry standard across a range of together a fully operational robot. The thinking from
products for being cheaper, more compact, and the start of the semester was that we would make the
faster. They are used in everything from common robot’s walking gaits and peripheral control in either
household electronics to automobiles to expensive Verilog or C/C++. Then we would simultaneously
medical supplies. All of which influenced our begin working on the camera systems in MATLAB
decision to use the more advanced chips for our or Python.
project.
C. 3D Printed Prototype (Part 2)
The STM32 MCU was used to control our smaller By early to mid-October we had a fully built model
prototype consisting of 12 Servo Motors and a with the 12 servo motors properly controlled by the
UART Tx/Rx Setup to print out the data onto a ARM Cortex Microcontroller. The chip selected was
terminal in a PC. After Researching and Trial and mounted onto a PCB Prototyping board which was
Error, it was found that the PWM Channels were then mounted onto the center of the robot; for power
control on the ARM Cortex through a series of supply we used a cable power supply that fed the
General Purpose & Advanced Timers. Each with a motors 7.5V and fed into an inverter that supplied the
set of 3 to 4 Registers that controlled the PWM chip with 5V. With the clocks and pins set up
channels separately. On the next page is a diagram of correctly, we had a fully operational platform with
the Chip used with all the pins initialized to their angular control of the 12 joints independently of one
correct pins. another. The next steps to follow would be to use the
12 moveable joints in uniform to create more
advanced motion.
kinematics equations. Once cyclic motion was exactly they were more effective for our needs than
achieved in the code, it was time to make the robot brushed DC motors, stepper motors, or servo motors.
walk. To achieve this, the legs vertical to each other
had to start with a phase shift of 180 degrees to For us, the lighter weight, higher torque, and
ensure they were perfectly opposite to one another. greater efficiency really drove home the idea that
Finally, to have the robot continuously walk, the they best fit our needs. ‘Field Oriented Control’, a
main while loop would continuously call a function developer term which refers to controlling Brushless
to step through the ellipse at a constant rate. DC Motors in practical applications. This meant
studying how the three-phase sine waves from the
With the robot walking in a basic walking pattern, motor controller boards would be impacting the
we had an open-loop system. The system walked motors and the noise given off by using high power
almost correctly but would simply continue walking sine waves in small locations. This also meant
if it was tipped over. The next step was to begin learning how to control the motors by mounting
practicing feedback systems and implementing them encoders on each one for position control as well as
into the walking equations to make the walking more the voltage, current, and torque requirements for our
accurate and responsive. For these steps, each team goals.
member tried to implement their version and
research the next steps for closed loop
responsiveness. These added feedback sensors will
be discussed in the sections below.
output power usage. The trend shows a gradual chemistries available on the market as well as the
decline in efficiency as the torque is increased, but it specifiers that were relevant to our project. Important
is very shallow and maintains very steady efficiency terms included: Charge / Discharge Rate, Capacity,
throughout the course of the test. Voltage, and Cell Count. The two forms of batteries
used and tested included Deep Cycle Lead Acid and
Lithium Polymer Batteries; both having specific
qualities that pertained to our mission.
Figure 5.15 22.2 Volt Li-Po Battery Figure 5.16 Turnigy Aerodrive SK3 Brushless DC Motor
Source: Please refer to [31] Source: Please refer to [2]
In the Spring, the team increased their goal to The first step of this task required the team to
controlling the motors by adding several feedback implement the correct parameters in the ODrive
sensors. These included limit switches to keep the firmware, so that the ODrive could properly control
motors from running off past their assigned range of the motors. For instance, if we want our motor to spin
motion and time-of-flight sensors that would allow at a specific fixed RPM, then we needed to confirm
the motors to be controlled through distance that our motor is spinning at the desired speed. The
measurements assigned by the user. ODrive may need to know factors such as the type of
motor, the number of pole pairs, and the motor KV
F. ODrive Development and Interfacing to accurately calculate the appropriate parameters to
The BLDC motors that our design will utilize run drive the motor. Once we have effectively configured
on three phases alternating current and it is supplied the controllers, we can then drive the motor at a
by the ODrive Motor Controller. The ODrive will specific RPM using some of the ODrive’s prewritten
provide pulses of current to the motor windings; commands via the Python Library. Now, by using an
which in turn, will control the speed and torque of the external device such as a tachometer, we can
motor. The ODrive already comes with equipped determine the RPM accuracy of the ODrive motor
communication interfaces that can be 6 used to controller with that of the tachometer. If there is
control several aspects of the controller, which noticeable difference in the desired RPM with the
ultimately affect the control of the motors. By using actual RPM; the ODrive Controller also comes with
a communication interface and some of the pre- other parameters, we can adjust to drive the motor at
written commands, we can effectively control a much more accurate speed. However, since
variables, such as: supplied current, supplied voltage, development and support for the ODrive firmware is
maximum rpm, maximum torque etc. of each motor. consistent, the controller should drive the motor
reliably to the desired speed.
21
Figure 5.18 Different Communication Protocols Figure 5.20 MATLAB 3DOF System
The comparison result would trigger a PID using the Kinect with the Jetson Nano, we found that
function that would make the motor spin in either the ROS distribution installed (Kinetic) on the Nano
direction until it met its desired position given by the is not compatible with the Kinect and the Operating
user. It did so through a series of functions that System is not compatible with any other ROS
adjusted the speed and direction of the motors at a distribution. Our solution to this problem was to use
decreasing rate as the motor closed in on its desired a simpler much less powerful Logitech monocular
position. More details about this will be discussed in webcam that was compatible with the ROS Kinetic
other sections. distribution. Using ROS, we were able to combine
ORB-SLAM with RVIZ, which is the ROS
H. 3D Point Cloud Generation visualizer and displays the generated map and create
a map at a rate of about 19 FPS. By using a
At the beginning of Fall semester, we were set on
monocular camera to create the map, it was not
having the robotic dog operate semi-autonomously
possible to extract the correct distance from the
while navigating in a 3D point cloud generated map.
camera to the points in the map.
The 3D point cloud map would be generated by
performing Simultaneous Localization and Mapping,
otherwise known as SLAM. Due to the unforeseen
circumstances of the Coronavirus pandemic we were
unable to obtain actual images of our point cloud, but
the figure below shows an example of a generated
map using the ORB-SLAM2 program.
The IMU is a very sensitive device and is quite Source: Please refer to [11]
easily susceptible to noise from the environment. In
addition, there hadn’t been any previously developed
library in order to interface the IMU with our specific
board. Thus, this was the very first feature that the
team worked on the beginning of the semester.
Designing a library for hardware interfacing is a very
tedious and complicated task. It required quite a bit
of time to debug and test the functions of the library
were performing the expected operations;
nonetheless, once every aspect was tested, we were
able to effectively interface the MPU6050 with the
STM32F303K8 NUCLEO board. Our designed
utilized the DMA, NVIC, and I2C features of the
board in order to efficiently capture data from the
IMU.
Figure 5.25 A look into the MPU6050 and the different
Moreover, once we retrieved the data, another readings it takes at different axes.
problem arose and that was data calibration. This was
Source: Please refer to [4]
another feature that we worked on in the beginning
of the semester, and that was to use filtering
techniques to clean up our sensor data. By simply When we compared the plotted calibrated data
applying a complementary filter when writing the with the uncalibrated plotted data, we saw that there
interfacing software, we can filter out a great portion were “spikes” in our acceleration plot when we jolted
of the noise and have reliable readings. The testing the IMU back and forth. For the angular position plot
procedure for the IMU was exactly as outlined in our there should be a steady drift of the readings over
Device Test Plan. The team used a plotting library in time for the uncalibrated IMU. For the calibrated
Python in order to plot the uncalibrated readings of IMU, the readings for both the position and angular
the IMU with that of the calibrated readings; When position should fairly remain stable even with sudden
24
movements. There should be no drift on the angular be the VL6180X, capable of reading the distance
position plot, the plot should remain relatively stable between 5mm to 200mm, developed by
when the IMU is stationary. STMicroelectronics and the breakout board was
supplied by Adafruit. The sensor interfaced via the
2) Time-of-flight Sensors I2C communication protocol and did have a fixed
ODrive Robotics is still in the process of updating address of 0x29 with no possibility of changing it in
the board’s firmware to support absolute encoders Python without it losing its new address when turned
which allows us to determine the absolute position of off; in other words, the sensor did not have any non-
the BLDC. The current firmware, however, only volatile memory.
supports rotary incremental encoders which can only
provide the angular velocity and index signal which For us to read from multiple TOF sensors we
is like the way a bookmark function. Incremental needed an I2C multiplexor. We used the TCA9548A
encoders can be used to find the absolute position but 8-to-1 I2C multiplexor which had a Python library
was deemed impractical to have our robot perform a supplied by Adafruit decreasing the development
homing sequence on every startup. The other reason time. After wiring up the Jetson Nano I2C bus to the
it was deemed impractical was because the BLDC I2C Mux, where the Mux was wired up to the
motors would be driving a pulley which in turn appropriate pins on the TOF sensor, we were able to
rotates the rod moving the ball screw carriage along read from the sensors at a rate of about 400kHz.
the road. The way the actuation works would be
prone to slippage, thus making the homing sequence 3) Rotary Encoders
pointless as slipping occurs. The incremental rotary encoders are used to
determine the angular velocity of the BLDC motors
Our solution of obtaining the absolute position of and ODrive Robotics built-in a safety feature in their
the ball screw carriage was to use a Time-of-Flight boards preventing the motors from reaching a certain
sensor that would read off a flat surface attached to speed without encoders mounted and connected.
the carriage. The figure below shows a diagram of Implementing the rotary encoders was plug-and-play
how it would work for our application. due to the simplicity of the ODrive tool. We just
needed to set up the encoder specifications into the
boards such as the CPR (counts per revolution),
encoder type, and index signal. After setting up the
encoders we were able to have full control of the
BLDC motors.
sure we can get images and data from the camera at us to take a realistic look at what was achievable,
real time. Once we have the camera working and how long each core component of the project should
transmitting data to our computer, we then needed to take, and how to partition the workload into sub-
setup the transmitter and receiver in order to be able categories. By doing such partitioning, we were able
to move the camera freely and still be able to transmit to assign tasks to members and track their progress
data to our computer. After we get these both setup to what we had originally estimated.
and working, the next part would be to test them. The
things we tested were the resolution of the camera to Some of the original estimations were off,
make sure it meets the specifications, the response however. Timing on a project like this can be tricky
time of the camera and how fast the data is sent back to calculate accurately. But having these charts
to the computer, and the distance of how far the allowed us to adjust timing and stay on track without
signal we will be able to get before the signal is developing ‘tunnel vision’.
cutout or the response time is unusable. In order to
test the resolution of the camera, we can see the B. Work Breakdown Structure Diagram
resolution on our computer as well as if the images
sent from the camera are pixelated. The next thing to
test is the response time in which we can see in code
how fast the data is sent back to us as well as moving
objects in front of the camera and seeing if there is a
delay in the image we see on our screen. The last
thing to test is the distance of the signal of the
transmitter/receiver, and we would test this by going
outside and measuring the distance of how far we can
move before the images become unusable due to the
signal being weak.
on our team had a compatible device so contact was analyze the market and decide between a wheeled
able to remain. robot or a legged robot. A wheeled robot is easier to
design and operate which makes it more stable, but
the downfall of a wheeled device is that it cannot go
D. COVID-19 / Campus Closure over complex material. This made us choose a legged
1) Risk Description robot since we could program it to be able to walk
This particular risk is one that most of the world over obstacles as well as stay balanced when moving.
was not prepared for. The risk in this case was that After we decided we wanted to make a robotic
the CSUS campus would need to be shut down in quadruped, we talked to the mechanical engineering
order to minimize the spread of the virus and team into designing what materials would be best
advocate social distancing. If the campus would be used as well as how the legs would move.
closed then we would no longer have access to the
B. Prototyping Philosophy
labs in Riverside Hall despite our FOB keys, thus,
continuing our work would be a significant challenge Once we decided on a robotic quadruped, we
with no workspace. wanted to start prototyping in order to start working
on the code since we knew it would be a long and
tedious process. This gave the mechanical
2) Mitigation Techniques engineering time to come up with an idea of how the
The mitigation we took for this risk was to final robotic quadruped will look like as well as how
continuously work on our written assignments from it will move. Our first idea was to make a quick
home and communicate over a virtual meeting prototype that would be cheap, easy to make, and fast
application. Fortunately, the project was expected to to build. The first prototype we created was a
be finished just a few days before the campus was cardboard model with servos and an Arduino
officially closed and did not require us to be on microcontroller. This made it cheap to make as well
campus to work on the project. as fast and easily programmable. Creating the first
prototype gave us time to start learning about the
VIII. DESIGN PHILOSOPHY
walking gaits as well as the kinematics it would need
The Societal Problem that we wanted to address is in order to walk without falling over. Once we got
that disasters happen every year and are some walking gates programmed and tested, we ran
uncontrollable which increases the need for search into issues once we started to speed up the walking
and rescue workers which means the danger they put gaits. The issue we ran into was the grip at the end of
themselves into rises as well. We aim to create a the cardboard robotic quadruped legs were hard to
design to help lower the chances of injury and keep get grip since most tables were slippery as well as
more people safe by creating a semi-autonomous being made out of cardboard. We tested out gluing
robotic quadruped. This section goes through and rubber bands to the feet to produce more grip against
will cover how we approached solving our societal the slippery surface but only helped so much. After
problem and how we decided a robotic quadruped we came across this issue and attempted to fix it, we
would be a solution. decided it would be best to make a bigger more
A. Brainstorming Philosophy complex robotic quadruped that we could design to
walk better. The second prototype we designed was
In order to come up with a solution to our societal
a little bigger 3d printed robotic quadruped with high
problem, we had to understand the societal problem
torque servos as well as an STM32 board to control
in a greater depth as well as what products are out
the robotic quadruped. This made it so our robotic
there that can be a solution to the problem. The first
quadruped had even legs, a perfect body, as well as
thing we had to look at was the main type of disasters
stronger servos that could support the body while
that happen every year and which type of disasters
under pressure walking. With the new prototype
that we wanted to focus on. Since disasters are such
built, we were able to program and test different
a complex topic, we decided to choose a narrower
walking gaits as well as faster moving gaits and even
topic which is to aid the disaster workers with a robot
bouncing in place. Once we reached this point in the
designed to help with search and rescue. We had to
process, the mechanical engineering team came up
28
with a complete design for our main robotic origin or “balanced” state, and as the dog transitioned
quadruped. The only issue was that we had to wait into its walking gait, the algorithm would begin to
for parts to come in as well as machining for some of drive the appropriate controls to the servos; in order
those parts that a professional would have to take to, maintain the system’s stability. For the larger
care of. Instead of waiting for a long time and doing scale model dog, because the team was able to
nothing, we came up with ideas that we could work calculate and produce the kinematic equations for
on as features that we could add to the main robotic this system as well, the same control algorithm could
quadruped. We also worked on building one leg that also have been used. We had proposed using the
we can start coding on to give us an idea of how big Jetson Nano Development Board as the main “brain”
and how to control the brushless motors. The leg of the system in which it would communicate with
consists of O-drives, brushless DC motors, encoders, the sensor modules (IMU and TOF Sensors), and
and metal rods. In order to control the legs, the TOF with the ODrive Motor Controllers to control the
sensors and encoders needed to be implemented motors. The only main difference between the small-
beforehand. After we set up the ODrive boards and scale model and larger scale model would have been
confirmed that we were able to control the leg the TOF sensors, but nonetheless, we could have
without feedback, we wrote a Python module that incorporated this difference within the ODrive
utilized all of the necessary libraries such as the Feedback System and modeled this as a servo in the
ODrive tool, sensor implementation, and other small-scale model. Unfortunately, because of the
libraries we wrote to compute the kinematics. This unexpected events that had occurred due to the
gave us a fully built leg with control of it as well as COVID-19 pandemic, several of our resources and
a small prototype with walking gaits and kinematic facility equipment were restricted to us. And with the
equations to step distances. This gave us a big idea lockdown order and social distancing regulations put
of how to program the full built robotic quadruped as in place by our local government, our development
well as basic control of the legs. We would just need time was tremendously impacted. Even though the
to combine everything we had into one big robotic team was unable to assemble the full-scale model
quadruped. This leads to our final deployable dog, all the components needed to have a working
prototype. robotic system were designed and tested. Thus, in
theory, our full-sized model would have been able to
IX. DEPLOYABLE PROTOTYPE STATUS stand and maintain its stability if all these
A. Brief Description components had been integrated together and tested.
The next sections will discuss the testing results and
In the end of the Spring semester, our final
parameters that were designed by our team; and how
deployable prototype included a small-scale model
they related to our measurable metrics and final
system capable of maintaining its walking gait and
feature set.
stability by using an IMU module as the feedback
device. In addition, the team was also able to design
the kinematic and control program for a large-scale B. Prototype Performance
model leg. The large-scale model leg could move to This section will present a detailed overview and
a chosen position given by the user to a very accurate outline of the performance of our deployable
degree. It also utilized feedback modules such as prototype and give specific information of each of
TOF sensors, Rotary encoders, and a motor driver to the components used. It will give a general
appropriately control the speed and required torque explanation and background information of the
of each individual motor. The small-scale robotic component module, the manufacturer’s
dog had the potential of being able to accurately specification, testing procedure, and testing results.
maintain its stability and walking algorithm even if Lastly, the overall performance of the final prototype
changes in its environment were introduced. will be examined and how applicable it would be in
Although the team was not able to fit the IMU sensor real world situations.
module onto the small dog; in theory, the control
algorithm that was written should have gotten an
initial reading of the dog, set the initial reading as the
29
less contact between parts. The specifications of Source: Please refer to [6]
BLDC Motors can be hard to comprehend at first.
In the python scripts used to control the motors then
legs, the RPM was controlled by adjusting the
The most significant specification for our purposes
number of encoders clicks every 100 milliseconds in
was the KV Rating – the measure of revolutions per
a constant while loop. We were able to control the
minute given 1 volt and no load. The RPM can
motor to a very accurate degree after overcoming the
therefore be estimated by multiplying the voltage
current limiting issues and attaching the encoder to
given to the motor by its KV rating. In our case, 24
the motor mount with more stability.
volts is being constantly supplied to the motors. Our
specific motor has a kV rating of 192.
3) Time of Flight Sensor Performance
The purpose of the time-of-flight sensors are to
Max Speed = (192kV) * (24 volts) = 4608 RPM
provide the position of the carriage along the rod
where the carriage corresponds to a specific angle of
The motors were tested for their ability to hold
the limbs which in turn, allows the robot to perform
specific RPM specified by the user through software.
various gaits. The time-of-flight we decided to use is
This was considered an integral component to the
the VL6180X which is manufactured by
project because we needed to have accurate control
STMicroelectronics. The sensor does not come
of the motor’s speeds and rotary positions along the
installed on a breakout board but Adafruit does
ball screw. Without the motor tests conducted
manufacture a breakout board capable of operating at
accurately; we could not proceed to controlling the
any voltage between 3V-5V. The sensors used were
angles of the leg joints on the robot accurately. This
chosen because their features aligned with what our
would then prevent us from properly being able to
project required. The sensors are primarily designed
control the walking motion and balancing of the dog.
to read on the range of 0mm to 100mm with a
The specific test conducted on the motors was to
potential to read higher ranges depending on the
control their RPM by using encoders mounted to the
surface reflectance of the object and ambient
spinning shaft in their center axis. The specific
conditions. The sensor can only be interfaced using
sensors used were the CUI AMT102 Capacitive
the I2C bus. So, the sensor is limited to reading at a
Encoders. They have a rotational resolution of 8192
rate of 3.2Mbit/s but the Adafruit library that allows
points per rotation [CPR], and a maximum reading
our single board computer to interface with the
speed of 7500 RPM. This meant that all there was
sensor was limited to 4Kbit/s.
left to do was write the script to control the encoder
reading and motors then test them to an external
metric. The external metric used was a standard
Tachometer which measured the side of the motor as
it rotated. This allowed for a quick and accurate
comparison between the RPM external reading and
the input value from the software.
X. MARKETABILITY FORECAST
A. Increase Marketability Discussion
Robotics is an interdisciplinary branch of
engineering and is normally a programmable,
mechanical device used in place or to help a person
to perform tasks with a high degree of accuracy. This
opens a huge world of possibilities, from large,
intricate systems to small common daily used
items. Robots are seen everywhere and have
integrated into our society and daily lives. These
inventions are changing the way we live and work.
Robots can be used in many situations and for lots of
purposes.
Figure 9.7 TOF Sensor Testing Procedure (Top-View) When it comes to the potential consumers that our
quadruped robot can be aimed toward, the most
Source: Please refer to [6] obvious buyer could be government agencies, such
as the military. The global military robot market is
The first step in the test procedure was to setup the
projected to grow to 30.83 billion by the year 2022.
TOF sensor directly aligned with an object. Then a
This expansion in the market is due to developing
tape measurer was placed along the side of both the
countries such as India, China, and Russia adopting
object and sensor. A Python script was written to
these technologies and increasing their research
read the data from the sensor and calculate the
budget. One of the main drivers that seems to project
average of ten samples. The average was compared
success in this consumer market is the military’s
to the actual range from the tape measurer. This
focus on using robots as an alternative for human
sequence was done for every inch starting at a range
soldiers for specific tasks. For instance, our
of 1 inch to 8 inches. The percent error was then
quadruped robot has the capabilities of being
calculated comparing the measured range and the
deployed in situations which would be too dangerous
actual range. See Table 9.1. for the test results of this
for actual human personnel. Such situations could
test procedure.
include providing medical assistance to wounded
soldiers, or even traverse through a hostile
Tab. 9.1 TOF Test Results
environment. One of the advantages that our robot
Actual Measured Percent Error could potentially provide; and at the same time take
Distance (mm) Distance (mm) (%) advantage of, is the emphasis in legged locomotion.
The use of legged robots over their wheeled
25.4 23.2 8.66
counterparts is that they provide the advantages of
50.8 45.8 9.84 traversing through uneven terrain and maintain
76.2 70.4 7.61 dynamic stability.
101.6 97.8 3.74
127.0 119.0 6.30 Moreover, because the design of our robot has the
152.4 142.8 6.30 attribute of being highly portable toward other
177.8 162.4 8.66 applications, another potential consumer market
203.2 184.8 9.06 could be in the logistics robotic market. The global
Source: Please refer to [6] logistics robot market is expected to reach around
11.8 billion by 2022. Logistics robots are used to
33
automate the process of storing and moving products board or microcontroller that can handle everything
as they are packaged through the supply chain. As that the Nvidia Jetson Nano does as well as the O-
companies, such as Amazon continue to experience drives. The idea would be to simplify the boards into
rapid growth and dominate the ecommerce domain; one complete board with only the correct number of
the demand for faster and more efficient logistical inputs and outputs to control everything that is
strategies will need to be considered for the ever- needed on the robotic quadruped. This will simplify
expanding group of customers. According to the wire management throughout the robot as well as
Tractica Research Group, “worldwide shipments of draw less power throughout the entire system so then
warehousing and logistics robots will grow rapidly the robotic quadruped could run longer and more
over the next 5 years.” In fact, they predict that the efficiently. With combining all the boards into one,
number of units will increase from 194,000 in 2018 it will clean up the robotic quadruped, give less room
to 938,000 by 2022. As previously mentioned, for hardware errors, as well as lower the cost in
because our robot can be ported into other creating the robotic quadruped. With changing some
applications, the use of it as a logistical robot could of the hardware and lowering the cost, that would
be a viable option to meet the market demands of the make the robotic quadruped more marketable.
logistic robotic industry.
2) Software
In order to fully understand where a project will fit The next area that would need improvement before
within an existing market or industry. One must the robotic quadruped is ready for manufacturing is
examine what products their project will be the software that is being ran for the robotic
competing against. Robotics is not an entirely new quadruped. Currently the robotic quadrupeds’
area of study but the marketing and retailing of movements are mostly controlled through the O-
robots is relatively new. With the robotics industry drives which take a lot of lines of code which makes
still in its infancy, a semi-autonomous quadruped it less efficient and more prone to errors. Also, in
will be able to find a place amongst its competition. order to make the robotic quadruped more
The SPOT, in our case, would be the primary marketable, we would need to add more software to
competitor of our robotic quadruped. The SPOT make the robotic quadruped more functional as well
features include speed of 1.6 m/s, 90-minute runtime, as stable. With updated software and more testing,
swappable battery, 360 degrees of vision for the code, the robotic quadruped would become more
autonomy, and customization options. The autonomous as well as dynamically stable. This
applications that Boston Dynamics claim to be means that the robotic quadruped would be smarter,
suitable for the SPOT are construction, oil/gas, faster, and more stable. With more testing and more
entertainment, and public safety. Our robotic features, it would make the robotic quadruped better
quadruped would be primarily competing against the for more applications as well as more marketable for
SPOT in public safety. In order to compete with what it can do.
something such as the SPOT, we would need to make
some changes to our robotic quadruped. 3) Construction
The last area that would need improvement to
B. Necessary Changes for Manufacturing make the robotic become more marketable and
readier for manufacturing is the construction of the
With the cost of creating the robotic quadruped
robotic quadruped. To improve on cost, it would be
being approximately $4000, in order to sell it as a
beneficial to have a company produce the
product and ready for manufacturing, as well as
construction of the robotic quadruped in bulk. It
compete with other products, then we would need to
would also be better to make the robotic quadruped
make some changes to the hardware, software, and
not as big and heavy. Using lighter materials and
construction of the robotic quadruped.
making it smaller would make the robotic quadruped
more efficient as well as cost effective. Another thing
1) Hardware
that the robotic quadruped will need is protective
In order to get the robotic quadruped ready for
encasement for the legs as well as the body to make
manufacturing then we would need to create a PCB
34
sure the wires and boards to not get harmed as well [4] “MPU-6050 GY-521 3-Axis Accel & Gryo Sensor
as for user’s safety. Module,” ProtoSupplies. [Online]. Available:
[Link]
accel-gryo-sensor-module/.
With changing the hardware, software and
construction of the robotic quadruped, it will make [5] “Number of recorded natural disaster events,” Our World
the robot, lighter, smaller, smarter and most in Data. [Online]. Available:
importantly at lower costs. The idea is to change the [Link]
events.
hardware into one microcontroller/ board, use lighter
constructing materials, as well as modifying the [6] Alfred Martinez III, Edgar Granados, Marcus Huston and
code/ software to make the robotic quadruped Kristian Ornelas, “Search & Rescue Robotic Quadruped,”
smarter and more capable of completing its tasks. All Dept. Elect. Eng., CSUS., Sacramento, CA
and all, it would not be very hard to do, just smaller
[7] B. Yirka, “Robot snake automatically wraps around an
adjustments and testing to make the robotic object when thrown (w/ Video),” [Link], 22-Mar-2013.
quadruped ready for manufacturing and ready for the [Online]. Available: [Link]
market. [Link].
XI. CONCLUSION [8] BBC World. National Interagency Fire Center (NFIC),
2017.
With the increasing number of natural and non-
natural disasters there is a demand for solutions to [9] Boston Dynamics [Online]. Available:
aid or assist in saving as many lives as possible as [Link]
well as minimizing the cost of said disasters. This
[10] D. Kumar and V. Divakar, “SPY ROBOT USING SELF-
demand along with the advancements in BALANCING ALGORITHM WITH PAN AND TILT ...”
technology, even more so in the fields of robotics [Online]. Available:
and automation, is enough reason for the [Link]
development of a semi-autonomous robotic ion/281746636_SPY_ROBOT_USING_SELF-
quadruped. Although this specific project will take BALANCING_ALGORITHM_WITH_PAN_AND_TILT_C
ONTROL_OF_CAMERA/links/55f6ee1108aeafc8abf51ed6/S
multiple years to complete and will need to be PY-ROBOT-USING-SELF-BALANCING-ALGORITHM-
optimized better both electronically and [Link].
mechanically, the benefits of aiding in search &
rescue operations that could potentially save lives is [11] David Wooden, Matthew Malchano, Kevin Blankespoor,
insurmountable. When this very complex project is Andrew Howard, Alfred Rizzi, Marc Raibert, "Autonomous
Navigation for BigDog", IEEE International Conference on
finally completed by several teams of Robotics and Automation.
undergraduates, what could possibly be as exciting
is what projects in advanced robotics does industry [12] Department of Conservation.
have in store for us.
[13] Dr. Asad Yousuf, Mr. William Lehman, Dr. Mohamad A.
REFERENCES Mustafa, Dr. Mir M Hayder, "Introducing Kinematics with
Robot Operating System (ROS)", 122nd ASEE Annual
[1] “*Gait* - Physical Therapist Assistant 180 with P. Hill at Conference & Exposition.
Washtenaw Community College,” STUDYBLUE. [Online].
Available: [14] F. Tedim and D. Roye, Imprensa da Universidade de
[Link] Coimbra, 2020.
[2] “54V, 1.5kW, >99% Efficient 3-Phase BLDC Drive [15] G. Kenneally, A. De, D. Koditschek. “Design Principles
Reference Design,” [Link], 26-Aug-2019. [Online]. for a Family of Direct-Drive Legged Robots.” IEEE
Available: [Link] ROBOTICS AND AUTOMATION LETTERS, VOL. 1, NO.
phase-bldc-drive-reference-design/. 2, JULY 2016.
[3] “Facts Statistics: U.S. catastrophes,” III. [Online]. [16] H. P. Moravec, “Robot,” Encyclopædia Britannica, 27-
Available: [Link] Nov-2019. [Online]. Available:
catastrophes. [Link] .
35
[17] Huang, W., Kim, J., and Atkeson, C. (2013). Energy- [28] O. Takehiko, K. Hajime, O. Hock, J. Šedo, E. Raju, L. S.
based optimal step planning for humanoids. In 2013 IEEE R. Krishna, N. Rao, M. A. Rusafi, M. Billal, F. Yasmin, S.
International Conference on Robotics and Automation Iqbal, and A. Talli, “Inverse kinematics problem of 3-DOF
(ICRA), pages 3124–3129, Karlsruhe, Germany robot arm in 2D plane. (a) Three...,” ResearchGate, 31-Jul-
IEEE Entity Web Hosting - Home. [Online]. Available: 2018. [Online]. Available:
[Link] [Link]
[Link]. problem-of-3-DOF-robot-arm-in-2D-plane-a-Three-joints-
and-an_fig3_46401997.
[18] Ilya Afanasyev, Artur Sagitov, Evgeni Magid, "ROS-
Based SLAM for a Gazebo-Simulated Mobile Robot in [29] P. Sayta, “Thermite Firefighting
Image-Based 3D Model of Indoor Environment", International Robot,” #InnovationVibe. [Online]. Available:
Conference on Advanced Concepts for Intelligent Vision [Link]
Systems, 2015.
[30] S. A. Archfield, R. M. Hirsch, A. Viglione, and G.
[19] Introducing SpotMini. Boston Dynamics. Blöschl, “Fragmented patterns of flood change across the
[Link] United States,” AGU Journals, 09-Oct-2016. [Online].
Joel Chestnutt, Navigation Planning for Legged Robots. Available:
[Link]
[20] K. Reid, “2011 Japan earthquake and tsunami: Facts, GL070590.
FAQs, and how to help,” World Vision, 29-Feb-2020.
[Online]. Available: [Link] [31] S. Seok, A. Wang, D. Otten, and S. Kim, Actuator design
relief-news-stories/2011-japan-earthquake-and-tsunami-facts. for high force proprioceptive control in fast legged
locomotion, 2012 IEEE/RSJ International Conference on
[21] Kalouche, Simon. “Design for 3D Agility and Virtual Intelligent Robots and Systems, 2012.
Compliance Using Proprioceptive Force Control in Dynamic
Legged Robots.” The Robotics Institute Carnegie Mellon [32] Snapolitano, “The Future of Disaster Relief Includes
University, Carnegie Mellon University, Aug. 2016, Drones and AI,” U.S. Chamber of Commerce Foundation, 07-
[Link] Jun-2018. [Online]. Available:
and-virtual-compliance-using-proprioceptive-force-control-in- [Link]
dynamic-legged-robots/. disaster-relief-includes-drones-and-ai.
[23] Kuindersma, S., Permenter, F., and Tedrake, R. (2014). Quadruped: an animal which has four feet
An efficiently solvable quadratic program for stabilizing
dynamic locomotion. In IEEE Intl. Conf. on Robotics and Inertial Measurement Unit (IMU): an electronic device that
Automation (ICRA), Hong Kong, China. measures and reports a body’s force, angular rate, and
orientation
[24] M. Shuman, “Fire risk leaves Tuolumne County residents
scrambling to find affordable insurance,” modbee, 16-Jul- Time-of-Flight Sensor: an electronic device that measures and
2019. [Online]. Available: reports distance using an infrared light transmitter and
[Link] infrared light receiver.
[25] M. Simon, “Watch Boston Dynamics' Robot Dog Strut Autonomous: capacity to make an informed decision
Through a Construction Site,” Wired, 12-Oct-2018. [Online].
Available: [Link] Incremental Encoder: an electronic device that provides
prepping-its-robot-dog-to-get-a-job/. rotational position changes
[26] Marc Sons, Christoph Stiller, "Efficient Multi-Drive Map Brushless DC Motor (BLDC): a motor that converts supplied
Optimization towards Life-long Localization using Surround electrical energy into mechanical rotational energy
View", Intelligent Transportation Systems (ITSC) 2018 21st
International Conference on, pp. 2671-2677, 2018. Multiplexer: a device that selects between analog or digital
input signals and forwards it to a single output
[27] Number of Fires throughout the United States. 2018.
APPENDIX A. USER MANUAL
INTRODUCTION:
This user manual is intended as a reference resource for future teams who are interested in continuing the
design and development of the robotic quadruped. The user manual outlines several key components and
how they are to be set up in order to have them fully operational. In addition to the step by step process of
setting up, the user manual also includes visual aids to help in the demonstration of each component set up.
It is assumed that the readers of this manual will be familiar with some of the software tools needed to
follow the step by step process; if in any case they are not, please refer to the online official documentation
for each unfamiliar software tool. If there are any questions or concerns regarding the steps in the user
manual, please contact us.
Appendix A-1
[6] Install either Python3 or
Anaconda (a distribution of
Python). It is extremely
recommended that you install
Anaconda as several essential
libraries are installed with it
that would otherwise be
needed to install separately
with Python Standalone
Appendix A-3
Step 3: Jetson This step [1] Go to the terminal and use
Nano provides the the “sudo i2c detect” command
Access/VSCode process of to ensure that the I2C address of
accessing the the MUX is detected. (Ensure
VSCode that that Step 2 is completed)
contains the
Python source [2] To enter the VSCode IDE
code that can be enter in the command “code-
built on to create oss” and the relevant code can
more demanding be found in the “Megabyte”
actions from the folder
large leg.
[3] The Python scripts can now
be executed. (Note: The scripts
that require the use of the I2C
bus must be run as a super user
in order to access the bus
Appendix A-4
Table A1.2. I2C Set Up
Step Number / Description: Process: Visual Aids:
Name:
Step 1: Setting This step [1] Download the STM32
up the provides Software from their official
communication information on website like the visual aid
protocol(s) how to setup the shows.
communication
protocol on an
STM32 board
using the
STM32CubeMX
software. [2] Load the software up and
you will need to make sure
that you select the correct
development board you are
using, otherwise the pin
configurations will not work.
Appendix A-5
within the allowed boxes.
The desired input frequency
can be acquired for the
module specifications you
are trying to interface. And
the specific bus can also be
determined through the
MCU’s datasheet.
Appendix A-6
Step 2: IMU This step is to [1] Connect the appropriate
interfacing and give information I2C bus pins from assigned
measurements on how to pins on the STM32 Board to
interface the Vin, GND, SDA, and SCL
IMU with the on the MPU 6050.
ARM cortex
development [2] Also connect the Vin and
board or Jetson GND pins on the TOF
Nano board. sensors to the same power
supply as the I2C MUX
Appendix A-7
[7] Now that the proper
support library installed, the
next step is to run the
provided python script:
[Link] in order to have
the IMU module properly
interfaced with the Jetson
Nano.
python [Link]
Appendix A-8
Table A1.3. Small Dog Set Up:
Step 2: Powering This step requires the [1] Simply attach either
and Testing user to connect 2S Li-Po power source to the
Batteries (7.5 V) to the connectors available.
onboard connector.
[2] A switch at the top
Alternatively, a DC of the PCB board will
barrel-jack connector is allow the user to keep
also available on the the power supply
PCB board to connect an attached without
AC-DC, 5V-10Amp constantly running. A
Power Supply. red dot will indicate the
‘ON’ setting.
*Note: The Barrel Jack
Connector will add some
instability into the
system.
Appendix A-9
APPENDIX B. HARDWARE
Appendix B-1
Figure B1.3. Time-of-Flight Testing Procedure (Top-View)
Appendix B-2
APPENDIX C. SOFTWARE
Appendix C-1
Figure C1.2. ORB-SLAM2 3D Point Cloud Flowchart
Appendix C-2
Figure C1.3. Small-Scale Dog Software Block Diagram
Appendix C-3
APPENDIX D. MECHANICAL ASPECTS
Appendix D-1
Figure D1.3. ME Full Assembly
Appendix D-2
Figure D1.5. ME Hip Assembly
Appendix D-3
Figure D1.7. Small-Scale Dog CAD Model
Appendix D-4
APPENDIX E. VENDOR CONTACTS
Name: Phone Number: E-mail: Website:
Appendix E-1
APPENDIX F. RESUMES
KRISTIAN JOSUE ORNELAS
(707) 386-0338 ● krisornelas85@[Link] ● 1929 Oliveglen Ct. Fairfield, CA
OBJECTIVE:
Actively seeking a full-time or internship position in Hardware, Firmware, or Software Engineering
EDUCATION:
Bachelor of Science, Electrical & Electronic Engineering Concentration: Analog/Digital & Controls
California State University, Sacramento, CA Expected: May 2020
Overall GPA: 3.24 Major GPA: 3.43
WORK EXPERIENCE:
Electronics Hardware Intern S&C Electric Company May 2019 – August 2019
• Assisted in the design and implementation of a Linked List DMA within a FPGA between a digital signal processor
and microprocessor used to increase data transfer efficiency
• Successfully wrote four state machines in Verilog capable of interfacing with external memory via the AHB-Lite
bus and verified expected results with ModelSim
• Documented Linked List DMA project with state machine flowcharts and block diagrams
• Presented summer project details with PowerPoint to 20 full-time engineers and managers
Dangerous Goods Specialist Lead Fedex Express July 2015 – November 2017
• Effectively trained and managed six high performing team members in auditing and data entry
• Decreased company spending by developing an efficient auditing process for maximum productivity and efficiency
• Inspected 20 – 70 pieces of hazardous material per shift with four team members before the daily deadline
SKILLS-LANGUAGES, TOOLS, PLATFORMS:
C, C++, Verilog, Python, MATLAB, Quartus Prime, OrCAD PSpice, Attollic TrueStudio, STM32CUBEMX, Libero, Linux (Ubuntu,
Debian), VMWare, Visual Studio, ModelSim, Oscilloscope, Logic Analyzer, Signal Generator, FPGA, x86 Assembly, PCB Design,
Analog Circuits, Robot Operating System (ROS), RTL Design, GitHub, Embedded Systems
PROJECT EXPERIENCE:
Senior Design Project (in progress):
• Semi-Autonomous Quadrupedal Robot: Currently involved in designing and building a Semi-Autonomous
Quadrupedal Robot with 7 other team members. Assisting in the design of the Control and Power Systems by
implementing kinematic models in code, simultaneous localization and mapping through a monocular camera with
ROS and I2C/UART communication protocols for TOF/IMU sensor readings as feedback in Python.
Digital/RTL Design Projects:
• 4-bit Adder: Designed a full 4-bit adder in Verilog, verified using ModelSim simulator, individually assembled test-
bench, and a FPGA
• Sequence Detector: Individually, developed a state machine in Quartus using Verilog, built to detect a pre-
determined sequence of bits
Computer Interfacing Projects:
• Wheeled Robot: In a team of two, assembled a wheeled robot capable of line-following using IR sensors and
performing maneuvers specified by the user in C programming language
• Raspberry Pi Camera: Successfully wrote a Python script in a Raspberry Pi that would take a picture and request the
user to name the file and automatically save it in a pre-determined folder
• NVIDIA Jetson Nano GUI: Created a graphical user interface with Python and the OpenCV library that displays the
livestream via webcam and the IMU data being read by the NANO using the I2C protocol
AFFILIATIONS/AWARDS:
Dean’s Honor List Fall 2018 – Fall 2019
IEEE, Member Fall 2018 – Present
SHPE, Member Spring 2018 – Present
Appendix F-1
EDGAR GRANADOS ONATE _______________ ______
• (916) 793-5496 • edgargranados153@[Link] • [Link]/Edgar153
OBJECTIVE: _____________________________________________________________________________________
Actively seeking a full time/internships opportunity in the areas of Hardware, Firmware, or Software Engineering.
EDUCATION: _____________________________________________________________________________________
Bachelor of Science, Computer Engineering Expected: December 2020
California State University, Sacramento
Overall GPA: 3.32 Major GPA: 3.41
WORK EXPERIENCE: __________________________________________________________________________
Software Development Freelance March 2019 - May 2019
• Worked with a client to implement a software program that monitored user activity on a web forum and discord
text channel. The program would automatically tweet user content from these forums onto the client’s business
twitter account. Twitter’s Java and Python APIs were used to design and create the software.
Client Services Assistant Granados Gardening Service January 2015 – Present
• Communicate with clients regarding services, quotes, and customer support for my father’s business. Other
responsibilities include planning out and designing schematics for landscaping projects requested by clients.
SKILLS-LANGUAGES, TOOLS, PLATFORMS: _____________________________________________________
C, Java, Verilog, Python, JavaScript, Kotlin, Android Studio, Selenium Web Driver, Jenkins, Keil uVision, ARM Assembly, x86
Assembly, Git Version Control, TestNG, Apache Maven, HTML/CSS, Xilinx Vivado Design Suite, Quartus Prime, DOS, Windows
(XP, Vista, 8.1, 10), MS-DOS, UNIX, Linux (Ubuntu, Debian), VMWare, OpenCV, Machine Vision, Oracle SQL, PHP, Eclipse
IDE, Embedded Systems, Robotics, Logic Analyzer.
CURRENT AND RELEVANT PROJECTS: ___________________________________________________________
Senior Design Project:
• Semi-Autonomous Quadrupedal Robot: Designed the Control and Feedback System of a semiautonomous quadrupedal
robot. The team consisted of 4 Mechanical Engineer (ME), 2 Electrical Engineer (EE), and 2 Computer Engineer (CpE)
students. Interfaced several sensor modules and assisted in writing the walking algorithm for the robot. Embedded C and
Python was used to write the control algorithm of the robotic system as well as several communication protocols to
interface modules together.
Java Projects:
• Shopify Automation Tool: Designed a web scraping application that would allow users to automatically search and
checkout items out of various Shopify seller websites. Selenium WebDriver, TestNG, Apache Maven, Git Version
Control, and Jenkins was used to deploy this application.
• Client Billing System: Created and coded a GUI program, using the [Link] package, for my father’s Gardening
business. The program allowed users to add/delete client profiles, input client information, and provided the user with an
automated invoice-making service that printed out invoices.
• Real-Time Cryptocurrency Monitoring System: Implemented a cryptocurrency monitoring program using Java Sockets
and the [Link] package. The program would retrieve information about cryptocurrency coins from several finance
websites and display them onto a console window. The program was utilized by 16+ users
Computer Hardware and Machine Vision Projects:
• Direct Mapped Cache Design: In Verilog, designed and simulated a cache controller module that utilized the direct
mapping scheme to store data onto cache blocks. The controller would be able to interface between a CPU and Main
Memory to perform read or write operations.
• PCI Bus Arbiter: In Verilog, designed and simulated a PCI Bus Arbiter that performed bus arbitration among multiple
master devices on a PCI Bus. The bus arbiter utilized the Round-Robin Priority Scheme to designate the PCI Bus to the
appropriate master device.
• Object Detection and Tracking Robot: Designed a robot that would be able to detect and follow a spherical object. Python
and OpenCV was used for image processing and controlling the robotic system.
Android App Development:
• Remote Video Surveillance Application: Currently developing a mobile surveillance application for the Android platform.
The app will allow users to monitor their home surveillance systems from their phone using the system’s IP Address and
network protocols such as DDNS and Port Forwarding.
AWARDS/CLUBS: ______________________________________________________________________________
Deans Honor List Spring 2017 – Spring 2019
Engineering and Computer Science Scholarship Fall 2019
Web Development Club, Member Fall 2018 – Spring 2020
ACM, Member Spring 2019 - Present
SHPE, Member Fall 2019 – Present
Appendix F-2
Alfred W. Martinez III
Electrical & Electronics Engineer Objective:
7248 Sunwood Way
Sacramento, CA Actively seeking a full time/internships opportunity in the areas of
(916) 571 - 4991 Hardware, Firmware, or Software Engineering.
alfredmartinez555@[Link]
[Link]/in/AlfredMartinezIIIEEE
EDUCATION
Bachelor of Science, Electrical & Electronic Engineering California State University, Sacramento, CA
Expected Graduation: May 2020
Concentration: Controls / Embedded Systems
Major GPA: 3.461
Overall GPA: 3.227
SKILLS/TOOLS/PLATFORMS
Embedded Systems, C / C++, Python, Java, ARM Assembly, x86 Assembly, Linux, MATLAB, Quartus Prime, Verilog & VHDL, PSpice, ModelSim,
Advanced Design System, Visual Studios, VMWare, PCB Design, Atollic TrueStudio, Oscilloscope, Logic Analyzer, Signal Generator,
STM32CubeMX, PyCharm, Arduino, Robotics, Machine Vision, OpenCV, NumPy, Windows, Robot Operating System (ROS).
COURSEWORK
Circuit & Network Analysis, Controls & Feedback Theory, Transmission Line Theory, PCB Design, Circuit Design, Simulating, and Testing,
Electromechanical Conversion, Robotics, Machine Vision, Communication Systems, Microprocessor Architecture and Programming, Product Design
Management
WORK EXPERIENCE
Delivery Driver, Domino’s Pizza, Sacramento, CA
February 2017 - Now
Officer Candidate, United States Marine Corps, USA
December 2015 - Now
Math & Science Tutor (Grades 9-12), Freelance / Private
December 2015 - May 2018
Line Cook / Oven Section Leader, Pete’s Restaurant & Brew, Sacramento, CA
January 2016 - July 2018
PROJECTS
Robotic Dog (Mini & Large), Senior Design
AUGUST 2019 - MAY 2020
ARM Cortex M4: Developed a bare-metal robot dog using an STM32 Arm Microcontroller. At the base, clocks, timers, and pulse width
modulation registers were all assigned to control 12 robotic joints in real time.
PCB Prototyping & Wire Management: Developed a prototyping board to house all components and connections to facilitate simplistic debugging
and prevent damage to components. Learned proper soldering and PCB prototyping techniques.
Robotic Kinematics: Used trigonometry and geometry to control the position of the 4 legs of the robot using angular control of the joints.
Remote Monitored Fish Tank
JANUARY 2019 - JUNE 2019
GUI & Embedded System Connection: Worked on a user interface using an online Apache Web Server that could display data from embedded
sensors in a fish tank remotely. This included temperature, humidity, water level, and security sensors as well as a motor to control the feeding
rate of fish food.
Firefighter Camera Assistant
JANUARY 2020 - MAY 2020
Machine Vision / OpenCV / Python: By using footage from a firefighter’s helmet camera, a system was developed to detect edges of
furniture/rooms/hallways in a smoky or dark room and relay that data to a small screen placed inside the helmet.
Verilog/VHDL Designs & Simulations
AUGUST 2019 - MAY 2020
Developed and Simulated four-bit adders, multipliers, and multiplexers. Also, developed several finite state machines, flip-flops, and a 4-bit
microcontroller in Verilog.
Appendix F-3
Marcus Huston
8146 Big Sky Drive, Antelope, CA 95843 | (916) 616-7927 | marcus.huston96@[Link] | Computer Engineering Student
Education
Bachelor of Science in Computer Engineering Spring 2020(est.)
Minors: Applied Mathematics & Studio Art Overall GPA: 3.20 / 4.00
California State University, Sacramento
Member of Tau Beta Pi – Engineering Honors Society - achieved the top 12.5% of your
Junior class or 20% of your Senior class. Tau Beta Pi is the only engineering honor society
representing the entire engineering profession.
Professional Profile
I am an innovative individual looking to collaborate in diverse environments in order to
immerse / enhance my knowledge, problem-solving skills, and project management
experience to challenge me to grow and learn new languages / emerging technologies.
Skills Summary
• Java, C, Python, x86 Assembly, Verilog, Microsoft Office and Adobe Suite.
• Experience working with Oscilloscopes, Microcontrollers, and FPGA.
• Good analytical, communication and technical writing skills
Relevant Courses
CMOS and VLSI Database Management Systems Operating System Principles Advanced Math Science & Engineering
Computer Networks & Internets Advanced Computer Organization
Probability & Random Signals Computer Hardware Design Electronics
Data Structures & Algorithm Analysis Advanced Logic Design Computer Interfacing
Discrete Structures System Programming Unix Network Analysis Signals & Systems
Work Experience
Law Office of Marcus, Regalado, & Marcus, LLP American Sign Language Glove
Student project to create a bridge between ASL and
August 2014 – Present
• Internal and external communication
English by converting signed data and displaying it
• Data entry / Calendar statutes as letters.
• Client intake process coordinator October 2018 – December 2018
• Utilization review manager • Organized and directed weekly team meetings and optimized group
• Assisting the attorneys/paralegals effectiveness.
• Assists in the development of project scope and project management • Created schematics to optimize design and transition into simulation
documentation using MS Office. and analysis
• Trained incoming employees in preparation for their job • Integrated embedded systems to communicate and increase speed
• Reports on analytics and project progress • Ability to quickly adapt, debug, and solve technical problems
• Installed software and hardware on employee machines • Code: C Programming Language
• Hardware: Raspberry Pi, Analog to Digital Converter, Accelerometer,
Flex Sensors, etc.
Project / Leadership Experience Magnetic Levitation Quadcopter Drone
Hornet Hyperloop Student research project to design, create, and build a
International Student competition organized by SpaceX drone that levitates based on rpm against the magnetic
and the Boring Company. fields
Controls Team March 2019 – Present
• Designed, analyzed, and debugged various software and systems • Troubleshooting skills
• Optimized design using simulations and analysis • Performed background research and study for the solidification
• Use of CAN bus communications for main pod controls as well as data processing of materials in magnetic fields.
acquisition • Researched and analyzed to decrease friction
• Ability to work with other engineers, collaborate, and test ideas • Designed and analyzed a structure capable of holding neodymium N52
• Ability to solve technical problems grade magnets for solidification process.
• Code: C Programming Language • Code: C Programming Language
Appendix F-4