You are on page 1of 57

Round-a-Bot

Holonomic Inverted Pendulum Robot

Jeff Fletcher
Sung-Tu Ho
Jason Kloess
Ranjit Raj
Steve Vozar

ME 552 Design Review 3

24 November 2010

web: roundabot.wordpress.com
email: round-a-bot@umich.edu

Note: This document is best viewed as a dynamic HTML or PDF document, as it contains
internal links as a part of the document structure. This document can be viewed as a webpage
at: http://tinyurl.com/roundabot-DR3
Introduction
Technical Specifications
Physical Design (3D CAD)
Assembly Views
Motor shaft stack
Idler wheel stack
Lower half assembly (base plate)
Top electronics plate
Full robot stack
Exploded Views
Omni-wheel connections
Motor Shaft Stack
Idler Wheel Stack Assembly
Lower Half Assembly (Base Plate)
Frame Mounts: Bar Stool Rings to Plates
Module Closeups
Mathematical Modeling
Planar Mathematical Model
Simulink Model
Linearization
Parasitic Effects
Actuators
Sensors
Controller Design
Controller Simulations
Rider Input Response
Offset Response:
Floor Slope
Bump Disturbance while Driving
Shove Response
Major Modules
Chassis
Drive-train
Motors/Gearbox
Motor Shaft and Keyway
Bearings
Wheels
Ball
Power Supply
Motor Battery
Battery State of Charge Sensor
Sensors
Inertial Measurement Unit (IMU)
Encoder
Miscellaneous Electronics
Emergency Stop
Voltage Regulator
Printed Circuit Board (PCB)
Wiring Practices
Circuit Diagram
PCB Circuits
Microprocessor
Component Verification
IMU
Accelerometer test
Gyroscope test
Microprocessor
Issues to be Addressed
Motor Controller
Top Plate Rearrangement
Conclusions
Bill of Materials
Engineering Drawings
Appendix A - Simulation Parameter File
Introduction

The aim of this project is to design a robot system that balances on a single spherical ball and
can translate in two directions (forward/backward and left/right). The platform should be able to
support the weight of a person (<200 lbs) at waist height (2.5-3ft).

The system is a multi-directional inverted pendulum setup, as opposed to a Segway which is


a single-directional inverted pendulum. This adds a second complexity to the modeling and
controlling scheme.

Technical Specifications
● Approximate ball size: 8.5 - 10in diameter (soccer - basket ball sized)
● Approximate height of robot (atop ball): 2.5 - 3 ft (table-top height)
● Cost: $1500
● Accommodate a human rider up to 200lbs
● Operational Environment: Indoors
○ Temperature: 15 - 25 ºC
○ Range of surfaces for traction: Tile, Carpet, Concrete, Brick, etc.
○ Able to traverse slopes up to 10º
○ Can reject disturbances caused by small (~1cm) bumps
○ Operational Range: ~1 hr continuous battery life with ability to easily recharge
(AC outlet)
● Operatonal Speed: 2-3 mph translational
● Safety Features:
○ Passive catch/kickstand system to avoid over tilt (training wheels)
○ Low battery warning
○ Emergency Stop

Physical Design (3D CAD)


The 3D physical model, constructed in Solidworks, is detailed below with 3D assembly views,
exploded views, and closeups/section views. The dimensioned drawings for all the fabricated
parts are linked at the end of this document.

Assembly Views
The total robot stack was broken into four main assemblies in order to highlight the specific
components and their layout: (i) motor shaft stack, (ii) idler wheel stack, (iii) lower half assembly:
base plate, and (iv) top electronics plate. Each assembly is shown below with a description
highlighting major areas and any changes from the previous design review presentation (DR2).
Motor shaft stack
In order to transfer torque from the motor to the omni-wheels and ultimately to the ball, a keyed
shaft was connected to an adapter and then to the keyed omni-wheels (Rotacasters supplied by
Kornylak). The following assembly was created including the following components:
● FIRST CIM motor
● Bane Bots 16:1 planetary gear box
● M4 x 80mm motor mounting bolt x4
● Gearbox standoff x2
● Bearing support (gearbox side and encoder side)
● ½” ID bearing x2
● Omni-wheel adapter slug (gearbox side and encoder side)
● ½” ID shaft collar
● 3/16” alignment dowel pins
● US digital encoder
● Encoder standoffs x2
● #4-40 encoder mounting screws x2

The specific assembly method, alignment, and fastening of all the components is outlined in the
exploded views section below. For the total robot lower half assembly, two of these motor shaft
stacks are fixed to the base plate.

3D View of Motor Shaft Stack Assembly

Idler wheel stack


Since only two motors are used the lower half assembly (positioned 90° apart), a third set of
omni-wheels was positioned (135° from each motor shaft stack) in order to adequately balance
the lower half assembly. This third set of omni-wheels is identical to the motor shaft assembly
which spacing and components with the exception of the motor, gearbox, and encoder parts.
The same space, alignment, and fastening are used (further explained in the exploded view
section below.

3D View of Idler Stack Assembly

Lower half assembly (base plate)


Both motor shaft stacks and idler assemblies are attached to the base plate and placed on
top of the ball. This base plate is the main component that supports the weight of the rest of
the robot (bar stool frame and all upper components) as well as the rider. Due to this weight
requirement, the plate is made of ¼” 6061 aluminum which has a high strength to weight ratio.
It is fastened to the lower ring of the Chicago bar stool frame via four ½”-13 x 2” bolts. The
batteries are also mounted to base plate and positioned with ⅜” sq PVC spacers. The top piece
that goes over the batteries is slotted so that it fits length wise and is mounted to the ¼”-20 x 6”
threaded rods.
3D View of Lower Half (Base Plate) Assembly

Top electronics plate


The second mounting plate holds all the electronic components to the upper ring of the frame
via four ¼”-20 x 2” bolts. In order to electrically insulate the electronics from the frame and rider,
the top electronics plate is made of ¼” high insulation PVC. The components mounted to this
plate include:
● H-bridge motor servos x4
● IMU sensor assembly: chip and PVC enclosure with metal Faraday wrapping (on
bottom)
● PCB electronics chip
● cRIO controller
● E-stop assembly: button and bracket (mounted to top ring, not pictured)
3D View of Lower Half (Base Plate) Assembly

Full robot stack


Combining all these assemblies the full robot is shown below, with and without a simulated
human rider (for mass and moments of inertia properties). Some additional items are the thin
plastic protective wrapping around the frame protecting the top electronics plate and the four
casters attached to the bottom of the frame legs. The total weight of the robot turned out slighlty
higher than originally expected: ~65 lb final vs. ~50 lb original. The total height is on par with the
technical specifications though, 31” from ground to top of seat.
3D View of Full Robot Assembly with and without Rider

Exploded Views
Each of the complex assemblies were further broken down and separated in order to visualize
how each component is connected, aligned, and fastened to create the stack. The five major
assemblies (i) omni-wheel connections, (ii) motor shaft stack, (iii) idler wheel stack, (iv) lower
half assembly (base plate), and (v) bar stool frame are presented below.

Omni-wheel connections
Since the omni-wheels have a significantly large center bore hole (22.25mm with 6.6mm
keyway), we must use an adapter slug in order to accommodate the standard ½” shaft with ⅛”
keyway supplied with the motor. This slug made from 1215 machinable steel and will be turned
on the lathe to the correct OD, milled with an end mill to form the outer keyways and broached
to from the inner keyway. In the assembly two slightly different slugs are made (keyway
positions) in order allow for the 22.25° offset between the omni-wheel rollers. Two omni-wheels
with this offset were selected in order to meet the 200lb loading specification (each omni-
wheel rated to 100lb) and ensure at any position of the motor shaft, at least one roller surface
is contacting the balancing ball. This helps decrease the dampening losses and maximize ‘no-
slip’ torque transfer. The omni-wheels and slugs are co-centric aligned and placed between the
bearings in the next motor shaft explosion.
Exploded View of the Omni-wheel Adapter Slug Components

Motor Shaft Stack


The motor shaft stack is the drive unit of the lower assembly. All axial components (bearings,
omni-wheels, encoder, etc.) are aligned via the motor shaft and keyway. This ensures co-centric
alignment between these components and smooth torque transmission. The gearbox side
bearing support is fastened to the motor via the four M4 x 80mm cap screws and counter-sunk
to a flush surface.The whole motor shaft stack assembly is aligned (for slight flexure, support
rotation about shaft, and planar offsets) via the two 3/16” x 1” steel dowel pins that protrude
through the base plate.The assembly is then fastened with four 5/16” x 1” socket cap screws to
the base plate each torqued to the bolts specifications. The gearbox standoffs and supporting
¼”-20 bolts will provide axial leveling since these bolts will help support the weight of the motor
and gear box. Leveling this will reduce the deviation in axial straightness of the shaft and ensure
proper torque transmission.
Exploded View of the Motor Shaft Stack Assembly

Idler Wheel Stack Assembly


As mentioned before, the idler wheel will serve as a balancing support for the robot. The same
aligning and fastening considerations mentioned for the motor stack will be used here since the
assembly is identical less the motor and encoder. The shaft used is purchased separately from
McMaster (as opposed to BaneBots) but is identical in size and material.
Exploded View of the Idler Wheel Stack Assembly

Lower Half Assembly (Base Plate)


Two motor shaft stacks and one idler shaft stack will be mounted to the bottom of the base plate
while one 12V drive battery and two 12V axillary batteries (24V parallel) will be mounted to the
top surface. The bar stool frame will also be mounted to the top surface of the base plate. The
heavy drive battery is centered on the base plate while with the axillary batteries are equidistant
and parallel to the drive battery. This ensures an axial center of gravity (measured currently at
0.02” off center in x- and y-planar directions).
Exploded View of the Lower Base Plate Assembly

Frame Mounts: Bar Stool Rings to Plates


Lastly, the lower half assembly and top electronics plate are mounted to the frame via two sets
of four socket cap screws. Since only the nominal sizing of the stool is known (provided in the
frame discussion in the major modules section below), we had to estimate various dimensions
in the frame assembly including the tube diameter and each ring diameters. For this lack of
information, the mounting places were left as slots to allow for error in our estimations. One
additional item to the frame is a plastic protective wrapping that protects the top electronics
plate from the user. This is attached with velcro to the frame legs to allow removal and quick
placement.
Exploded View of the Frame and Support Plates

Module Closeups
In order to better visualizes some of these components, some close-ups and a section are
presented. Most of these assemblies have been discussed previously with the exception of the
IMU mount. The IMU is mounted on the bottom surface of the top electronics plate so it is out of
the way of the other electronics. It is sensitive to bumps and absolute positioned for calibration
so it is mounted in a well protected space. The enclosure and IMU chip are centered on the top
electronics plate. The enclosure is mounted via two #4-40 screws and the IMU is mounted with
four #6-32 screws and two hex stand-offs. This will allow for leveling and calibration of the IMU.
Motor Shaft Vertical Section View

Close-up of Battery Fastening


Close-up of Motor/Gearbox Fastening

Exploded View of IMU Enclosure Mounting


Mathematical Modeling

Planar Mathematical Model


This model is similar to the model presented by Lauwers et al. but uses a more convenient
set of generalized coordinates. We are assuming the there is no slip between the ball and the
wheels, and that all components are rigid bodies. We proceed to determine the equations of
motion using the Lagrangian approach.

The generalized coordinates are given by , defined as the angle of the cylinder from the
vertical inertial axis, and , the angle of the ball from the initial alignment of the cylinder. See the
figure below for an illustration. One can track the position of the robot from it’s original starting
point by multiplying + by r, but as is generally small, and can grow quite large, when the
robot is rolling, we can estimate the distance traveled by .

The positions of the center of mass of the ball and the center of of the mass of the cylinder with
respect to a point a in an inertial reference frame A are (respectively):

And the angular velocities of the ball and cylinder with respect to Frame A are:

Thus potential energies of the ball and cylinder are given by


And the kinetic energies of the ball and cylinder are given by:

Taking the Lagrangian yields a set of two coupled differential equations, which can be written in
the following form:

Where the Mass matrix is given by:

The Coriolis matrix is given by:

The Gravitational matrix is:

And the Damping matrix is:

Simulink Model
The closed-loop Simulink model is shown below:

Overall closed-loop Simulink Model

The nonlinear system model is shown below, and is based on the system of equations
developed in the previous section. Details for the controller gain, sensor dynamics, and actuator
dynamics are discussed in later.

Simulink block diagram of nonlinear planar model

Linearization
In order to create a controller for the system based on linear control theory, the original
nonlinear model was linearized about the operating point of ( , ) = (0,0), and the following
state-space representation was obtained:

where M1-4 are the entries of the Mass matrix from left to right, and top to bottom (English
reading order).

This linearization was verified for a step input on ball torque, the nonlinear and linear systems
are shown below, showing that the linear and nonlinear systems are very close up to about 0.5
radians of cylinder offset, which is fine for our purposes:
The linearized system is a good approximation for the nonlinear system model, even up to
cylinder angles of 1.5 radians.

Parasitic Effects
Parasitic effects, such as motor backlash and saturation, sensor noise, quantization, and
discretization are significant factors in what will become the real-world model of our system.
The controller may command motor torques that are not achievable for our setup, and incorrect
sensor readings can detrimentally affect the performance of our closed-loop system. This
section describes how the parasitic effects were incorporated into the model.

Actuators
The model for the actuators, shown below, is used to implement the parasitic effects on the
motors. In this case, the motor is subject to quantization and discretization effects from the D/
A converter coming out of the microcontroller. These are modeled as a Quantizer and a Zero-
Order hold in the model. The values for these parameters are taken from the resolution of the D/
A converter (12 bit), and the output sample rate of the microcontroller (500Hz). Additionally, the
motor driver has a limited current it can supply to the motor, which is modeled as a saturation
block, and is taken from the driver specifications (70 Amps). Backlash and friction are modeled
together, and lacking the proper specifications for friction of the motor from the vendor, are
estimated. An estimate for the noise introduced into the command current is also added after
the D/A converter from the microcontroller.

A simple first-order filter is used before the quantizer to model the effects of filtering out the
noise from the controller.

Simulink block diagram of actuator dynamics with included parasitic effects.

Sensors
The sensors in the system are also subject to a number of parasitic effects, particularly noise,
quantization, and discretization issues.
The accelerometer (top row of the figure below) measures the cylinder angle, and in our
system is subject to quantization and discretization effects due to the A/D converter. Its noise is
determined from the accelerometer data sheet.

The rate gyro measures (3rd row) the angular velocity of the cylinder directly, and as an analog
sensor, the quantization and discretization effects come at the D/A converter interface as well.
The noise for this sensor is taken from the gyro specs.

The encoder (2nd row) for this system measures the wheel angle, and is a digital encoder,
which is not subject to noise. However, it’s quantization is based on the resolution of
the encoder, and the discretization effects are still controlled by the sample rate of the
microcontroller.

The angular velocity of the wheels is estimated by taking the derivative of the encoder data
within the microcontroller. This is shown in the bottom row of the block diagram.

Simulink block diagram of sensor dynamics with included parasitic effects.

Controller Design
An LQR controller for state feedback was designed using the linearized state-space model
discussed earlier.

The optimal gain matrix k was determined using the following inputs to the cost function:
Which places a high emphasis on maintaining a stable cylinder position, and a very low
emphasis on maintaining a constant ball position (as the ball is allowed to roll where ever it
likes).

It should be noted that this controller was developed assuming an input of motor current to the
system. However, motor controllers with this function are prohibitively expensive. In practice,
we will use an H-bridge motor controller, which closely approximates a current-mode controller.
However, in practice, system identification will have to be performed on the system when it is
assembled, and a new controller will be created.

Regardless, this controller is useful for showing that a controller can be build for the system
given all the parasitic effects and actuator restrictions, even though a different controller will
need to be used in practice.

Controller Simulations
The following are a series simulations of real-world situations that are relevant to the operation
of the Round-a-Bot robot, using the parameters of the model determined by the selected
components to see if the robot can perform to specifications. The MATLAB file defining these
parameters is shown in Appendix A.

These situations often represent worst-case scenarios in which the robot is at the limit of its
abilities, as it is operating at relatively high offset angles, and in the planar case, so only one
actuator can work to balance the robot.

Rider Input Response


The following plot shows the results of a simulation of a rider leaning forward on the cylinder,
causing the cylinder to pitch forward. This action is simulated by applying a torque to the
cylinder equal to that created by the rider at the specified lean angle, which is . The
plot shows simulation results for a 10° lean, which is approximately the upper limit for lean
angle. As the rider is unlikely to jerk forward, the action is modeled as a ramp starting at t=2s,
taking one second to reach full lean.
Simulation of system response to 10° rider lean.

We can see that the controller does saturate current at 70A, but the robot is able to maintain
balance. The steady-state ball speed of around 9 rad/s corresponds to about 2.6 mph, which is
within our specified target speed range.

Offset Response:
The following plot shows the system response to a 10° initial offset of the robot chassis from the
vertical. The robot is able to correct itself after a brief surge in current, and settle to a steady ball
position and zero-cylinder offset.
Simulation of system response to 10° initial offeset in cylinder angle.

Floor Slope
The effect of a sloped floor can be determined by applying a torque to the ball equal to that
applied to the ball when on a sloped surface, namely where ψ is the
slope of the floor.

In this case, we investigate the effect of a sudden disturbance step in slope to an angle of 7.5°
at time t= 2s, followed by a reverse step in slope at t=5s on a robot at rest.
Simulation of system response to 7.5° step in floor slope, followed by a reverse step of the same
magnitude.

The robot can remain upright, even when jostled by this slope disturbance. This is about the
highest slope the robot can handle, so we fall a bit short of the 10° specification. However, for
indoor use, this should suffice for most situations.

Bump Disturbance while Driving


The effect of running over a bump while driving the robot was investigated by applying two
large, equal but opposite slope disturbances over a small time span. In this case, a slope angle
of 45° was applied for a duration of .05 seconds before being removed while the robot was
being “driven” by the user at a lean angle of 5°.
Simulation of system response to hitting a bump while driving the robot at 1.1mph.

We can see that there is a spike in current and torque at the time of the bump while the robot
tries to regain its balance, and that ultimately it is successful in remaining upright.

Shove Response
The response of the robot from rest to a 200N push applied to the center of mass of the robot
over 0.05s is shown below.
Simulation of system response to being pushed, from rest, at the center of mass for a duration of
0.05s with a force of 200N.

The robot has no problem remaining upright despite the shove. The motor current peaks just
after the push and there is a small overall movement of the ball relative to the floor, which is
what we would intuitively expect in this situation.

Major Modules
The major modules of the system are defined as the chassis, drivetrain, power supply, sensors,
and microprocessor. They are discussed in further detail in the following sections.

Chassis
For the round-a-bot, we considered a stool to be the appropriate chassis. A chair might seem to
be a more logical choice, but in this case, the person riding on it may have the tendency to lean
on the backrest, thus decelerating the robot unintentionally. However in a stool, a person will
usually sit straight up and therefore in a better position to control the motion of the round-a-bot.
We wanted the stool to be similar to the ones in the lab. A simple design such as the stools
in lab would ensure more space within the stool so that all the required components can be
placed appropriately rather than placing them in a cramped space. This is really important to our
project since we would like the batteries and the control circuit to be as far apart as possible.
The stool must be of sufficient height, so that a person can conveniently sit on it. A stool of
around 30 inches height, we felt would be ideal.

The stool must be sufficiently strong as well as light. We decided that the stools in the lab are
of sufficient strength, and therefore, looked for stools similar to the ones in lab. In general, we
looked for the lightest stool that would be capable of carrying a 200 pound person.

Based on the above criterion, the ‘Chicago Bar stool,’ supplied by BudgetBarStools.com, was
selected.

The Chicago-style bar stool provides the frame for our robot chassis.

● The dimensions of the stool :


○ Height: 30”
○ Base area: 16x16”
● Weight of the stool: 16 pounds

The ‘Chicago bar stool’ seems to have all what we wanted in a single package. Firstly, the stool
was to the height we wanted, exactly 30 inches. The base area (16x16”) seemed appropriate.
The design was simple, which would give us a lot of space to place our components. The two
rings would conveniently act as good supports for the base plate and the electronic plate. Also
the rings are only bolted to the frame and therefore can be moved around and positioned where
we want it to be. The stool weighs only 16 lbs and is capable of carrying a 200 pound person.
Apart from these primary advantages, another advantages is that the stool has a swivel seat.
Therefore, the stool is capable of rotating 360 degrees. This will simplify our design, because for
a normal stool, we would have to buy a swivel and then install it as well. Also, the stool comes
with a cushion which will provide some riding comfort to the person who travels on the Round-a-
Bot.

The design of the mounting plates for the electronics and mechanical elements of the robot is
discussed in the CAD section. Note that the exact dimensions of the stool are not given by the
supplier, so some minor changes to the mounting plate design may occur when we are able to
explicitly measure the frame.

Drive-train

Motors/Gearbox
In order to power the wheels and brushed DC motor and planetary gearbox will be used. A
suitable motor was very difficult to come across; we needed to meet the following technical
specifications to ensure proper operation while a rider is seated:
● High torque transmission >30 Nm
● Low rotational speed: 200-350 RPM (2-3 MPH)
● Low weight <10 lb each

For an ungeared motor, these torque and speed requirements are generally not practical
to obtain. The lowest gear ratio for the motor was chosen in order to minimize the frictional
losses and rotational inertia which highly affect the motor dead band (which was noted during
simulation to significantly increase the current required recover from a large tilt). Our initial
choice was a DeWalt Powerdrive Kit that uses an old 18.8V drill motor but had too high of gear
ratio (~45:1). The DeWalt motor also claimed to have a 22,000 un-geared, no load speed which
is very high for a brushed DC motor increasing the doubts we had that this motor could perform
as well as it claimed. After further searching, more reasonable motor was chose: FIRST CIM
motor:

FIRST CIM Motor from Bane Bots

Motor Specifications
PERFORMANCE

Model M4-R0062-12

Operating Voltage 6V - 12V


Nominal Voltage 12V

No Load RPM 5310

No Load A 2.7A

Stall Torque 343.27 oz-in 2424 mN-m

Stall Current 133A

Kt 2.58 oz-in/A 18.2 mN-m/A

Kv 443 rpm/V

Efficiency 65%

RPM - Peak Eff 4614

Torque - Peak Eff 45 oz-in 317.8 mN-m

Current - Peak Eff 19.8A

PHYSICAL

Weight : 46 oz (1304g)

Length - for motor : 4.32 in (109.6mm)

Diameter : 0 in (0mm)

Diameter : 2.6 in (66mm)

ShaftDiameter : 0.31 in (8mm)

Shaft Length : 1.4 in (35.6mm)

The gearbox chosen is structured to adapt this specific motor and has a more reasonable gear
ration (16:1) but is still able to provide a stall torque of 38Nm.
P80 Planetary Gear Box 16:1

PHYSICAL PARAMETERS

Type Planetary

Reduction 16:1

Stages 2 - 4:1, 4:1

Gear Material Hardened Steel

Weight 41oz

Length 3.2 in (81.3mm)

Width (Square) 2.5 in (63.5mm)

Shaft Diameter 0.50 in (12.7mm)

Shaft Length 3.25 in (82.6mm)

Shaft Key 0.125 in (3.2mm)

Shaft End Tap #10-32

Base Plate Mounting Holes (12) 1/4-20

Shaft Stack Mounting Holes (4) M4 x 80mm

During assembly, the standard motor shaft will be replaced with the long shaft by removing the
four M4 x 80mm screws and the shaft snap ring. The motor will be attache to the gearbox per
the instructions provided from Bane Bots.
Motor Shaft and Keyway
To ensure proper torque transmission between the motor shaft and omni-wheels, keyway stress
analysis was performed on the motor shaft keyway and omni-wheel keyways. In summary, the
⅛” square motor shaft keyway should be made of 18-8 steel with clearances noted in the tables
below. The 6.6mm x 5.5 mm rectangular omni-wheel shaft keyway should made of 18-8 steel as
well. The stress are much lower in the omni-wheel key so only the sizing and stress calculations
are provided. An online resource [http:\\www.tribology-abc.com] was used to determine the
stress values giving a certain size and maximum torque input. Tolerances were taked from the
Machinery Handbook, found online using UM’s Miryln system.

Motor Shaft Stress Calculations


Keyway: Shaft size 5/16” thru 9/16” => Sq. = ⅛” , rect. = 3/32”

Seat Depth: Shaft size 5/16” thru 9/16” => Sq. = 1/16” , rect. = 3/64”

Key Stock Sizing

Tolerances:

Keyway Fit Tolerances


J = S - (M+D) + C

Dimensions used for Calculator


For diameter S = ½”: E = ⅛”, M = 0.079” = ½*(S - sqrt(S^2 - E^2))

Material Properties:
Shaft: Chromium steel ETD150 => S_yield = 150 kPSI = 1034.214 MPa
Key:

Material S_tensile (kPSI) min key size (in)

416 SS --- 3/16” undersized: -0.002”

316 SS 75 3/16” undersized: -0.002”

18-8 SS 75 1/8” (over or under): +0.002”, -0.002”

brass (360) 50 1/8” (standard): +/- 0.005”

Aluminum (6061) 38 1/8” (standard): +/- 0.005”

Alloy 8630 steel 90 1/8” (oversize): + 0.001”

High C: C1090-1095 90 1/16-1/8” (standard): +/- 0.0005

Plain Steel 55 1/16-1/8” (oversized): + 0.002”

Zinc Plated Steel 55 1/16-1/8” (oversized): +0.003”, -0.002”

Stress Calculations
Dimensions: d - 0.5” = 12.7mm, T = 400 in-lb = 45.1939 Nm, L = 1” = 25.4mm
**key width b,h = ⅛” = 3.125 , key seat = t1 = 1/16” = 1.5875

T_shear,key = F*S/(L*b) = 176.576 MPa = 25.61018 kPSI


P_bearing = 179.903 MPa = 26.02006 kPSI
S_torsional = 167.731 MPa = 24.32732 kPSI
**For FOS > 2, Alloy 8630 and High C keys are best choices, 18-8 is cheaper

Adapter Slug Stress Calculations


Modified from standard in Machinery Handbook to fit omni-wheel

Keyway
Shaft size 9/16” thru 7/8” => Sq = 3/16” , rect = 1/8”

Seat Depth
Shaft size 9/16” thru 7/8” => Sq = 3/32” , rect = 1/16”

Key Stock Sizing


The sizing is determined in metric since the wheel key seat giving in metric (will be milled down
from 5/16” sq. key stock)

Tolerances:

Dimensions used for Calculator:


J = S - (M+D) + C
For diameter S = 22.225m: E = 6.6mm, M = 0.501mm = ½*(S - sqrt(S^2 - E^2))

Material Properties
Shaft: Chromium steel ETD150 => S_yield = 150 kPSI = 1034.214 MPa
Key: (found to be same materials as before)

Stress Calculations
Modified Dimensions: d - 7/8” = 22.225, T = 400 in-lb = 45.1939 Nm, L = 1” = 25.4mm
**key width b,h = 6.6mm , keyseat = t1 = 2.75

T_shear,key = F*S/(L*b) = 24.26 MPa = 3.518 kPSI


P_bearing = 116.448 MPa = 16.889 kPSI
S_torsional = 46.186 MPa = 6.698kPSI

**Stress are much less than smaller diameter shaft calculations above. For consistency, the
same key stock material was used but it was also noted that the glass filled nylon would not fail
from these calculated stresses as well.

Bearings
The bearings are used to provide proper rotational motion between the motor shaft and the
wheel. Each shaft - wheel pair requires two bearings. Thus in total, six bearings are required.
Since the primary type of load is radial and the maximum load acting on the bearing is not very
high (about 50lbs), we selected a ball bearing (McMaster 6383K241).

● Flanged Open Ball Bearing specifications:


○ Bore diameter = 0.5“
○ Outer diameter = 1.375“
○ Width = 0.5“
○ Flange outer diameter = 1.5”
○ Flange thickness = 1/16”
○ Dynamic radial load = 450 lbs
○ maximum rpm = 1000
○ Bearing material = Steel

Bearing Calculations:
It is important to determine the bearing life before we start using the bearings. It is also
necessary to determine the fits and tolerances. The calculations are performed based on data
and tables from the Machinery’s Handbook.

Determining the C-Rating:


This is the first step in the calculation since most of the other subsequent calculations are based
on this value.
where

D = ball diameter = 0.211 inches


Z = number of balls per row = 12
i = number of rows of the balls= 1
= angle of contact between the ball and the bearing surface = 0 degrees

Determination of fc:

= mean diameter = (0.5+1.375)/2 = 0.9375”


D*cos( )/dm = 0.225”
From the table,

fc = 4517.5 (further calculation to determine fc was performed as the value of


D*cos( )/dm lies in between the two given values )
Substituting the values,
C = 4517.5*1*[12^(2/3)]*(0.211)^(1.8)
C = 1437.25 lbf
Bearing life:
This quantity indicates the number of cycles a bearing will last before failure. By definition it
indicates 90% probability that a bearing will sustain till the calculated bearing life.

Bearing life L_10 = (C/P)^3


P = total load on the bearing = radial load + thrust load
Assuming a total load (Round-a-bot + person) = 300 lbs
Load on a single bearing = 300/6 = 50 lbs
Assuming maximum tilt from vertical = 10 degrees
Load on a single bearing = 300*(sin 10)/ 6 = 8.682 lbs
=> total load = 58.682 lbs = 1888.03 lbf

=> Bearing Life L_10 = (1437.25/1888.03)^3 = 441134 cycles.


● Bearing fits and tolerances:

(applied radial load)/(max radial load capacity) = 50/450 = 0.111


From the above table, we see that the bearing can be considered as normally loaded.

from table 13, considering normal loading, for bore diameters less than 0.71” tolerance on the
inner diameter = j5 = +0.0002” -0.0001”

Tolerance on the housing:


from Table 14 of the Machinery’s Handbook section on bearing tolerances, the tolerance on the
outer diameter = J6 = -0.0002” +0.0004” (values of j5 and J6 obtained from table 15)

Wheels
The drive wheels are responsible for supporting the weight of the robot and rider, and for
translating the motor rotation to the ball. In order to support the holonomic performance of the
robot, they must also be able to roll in the axis normal to the wheel’s plane.

The wheels were selected based on size, strength, torque transmission, and availability. Based
on these criteria, Rotacaster wheels RW610 supplied by Kornylak have been selected. The
wheels will be paired, as each wheel has an axial rating of 100 lbs, so we get a factor of 2.4
safety factor assuming a total load of 250 lbs. Additionally, the wheels have a radius about half
that of the proposed ball, so they effectively act as a 2:1 gear with the ball. The width of the
wheels is thin enough such that a pair can fit between the bearing mounts on the motor shaft.

The shape of the rollers is such that no corners of the wheel can interfere with the ball surface,
which would be a concern for rollers that were enclosed within the wheel casing, such as the
Kornylak-supplied Transwheel series. The rollers are made of injection-molded polymers, which
should provide decent friction with the ball, if paired with a good ball surface.
The specifications for the wheels are as follows:
● Max Load: 100 lbs
● OD: 4.92"
● Bore: 0.875" with 5/16” keyway
● Width: 1.05"
● Hub Material: Glass-Filled Nylon
● Roller Material: Injection Molded Polymers
● Price: $15

Double-wheels are available together, but they lack keyways for torque transmission. For the
single wheel, the keyways are offset such that the rollers are staggered to create a smooth
circular shape for the wheel profile, and preventing the rollers from losing contact with the ball
surface. The 3D modeling section previously shows how the drive train, including the wheels,
shaft, and motors are assembled.

Ball
The ball was selected based on the following parameters:
● Diameter: 8 in
● Weight: 10 lbs
● Gripping surface to limit motor slip
● Rigidity to support 200 lbs
● Cost <$50

The selection of the ball is critical as it will determine the effectiveness of the torque transfer
from the omni-wheels to the ground. In order to optimize this transfer, we must limit losses
due to sliding and deformation of the ball. We determined that a medicine ball best meets all
of these parameters. They come in various diameters and weights, are relatively inexpensive
(around $20 depending on the model), have a rubber surface for acceptable grip, and are much
more rigid than basketballs. Medicine balls can be found at all sporting goods stores, and we
have chosen a locally available TKO 8 lb rubberized medicine ball.

Power Supply
The selection of the batteries was mainly based on power requirements, weight and size
concerns, and the charging and discharging cycles. Power requirements are the most important
parameter based on which we selected our battery. We wanted a battery which would be
capable of providing the maximum 133 A current, for the motors, at 12V. A separate set of
batteries that can provide 24V to the cRIO since the current requirements are not so high for
these set of batteries. Next, it was important to consider the weight of the battery as they are
significantly heavier than the other components. It is also required that the batteries should not
be physically very large, so that they do not occupy lot of the area on the base plate. Finally
we have to look into the charging and discharging cycles of the batteries. To determine when
exactly a battery can get completely discharged is a bit complicated. Also for a robot with
a person riding on it, we do not want to rely on this value. Therefore, it is necessary to plan
beforehand, to consider the discharging cycle of the battery.

The discharge depends on a few of different parameters; capacity, amount of current drawn,
and temperature. Thus it is always better to have a factor of safety in this aspect and go for a
battery which provides more than what we want. Charging time of a battery is also an important
consideration. It should not be the case that a battery operates for one hour, and takes a day
to recharge. Finally we have to consider the cost of the battery. While selecting components ,
there always exists some kind of trade-off. Cost plays an important role in deciding which
choice to go with. We had the choice for going with Li-ion, Ni-MH or a sealed lead acid
battery(SLA).The Li-ion and the Ni-MH batteries provide very good performance and are also
very light. But because of our limited budget, we did not choose one of these batteries as this
would really tighten the budget for the other components. The only choice left is a SLA battery.
Among the SLA batteries, we looked for batteries that can provide us the required current at
a specific voltage and have an adequate capacity. The weight and the physical size of the
batteries were also considered.

Motor Battery
The battery capacity calculations came from NexEnergy’s free online tool [http://
www.nexergy.com/capacity-calculator.htm].

The ‘FIRST CIM Motor’ :


● Requires 12 V operating voltage.
● 133 A peak stall current.
The capacity of the battery was calculated based on the following values:

Required run time : 1 hr


Standby current : 2.7A
Peak current duration: 30 sec
Number of peaks per hour: 6
The required capacity was calculated to be 10.3 Amp-hrs.

Battery Selected: Powerstar Sealed Lead Acid (SLA) Battery


Battery Specifications:
● voltage:12 V
● capacity: 15 Amp-Hrs
● peak current: 210 Amps
● size: 5.95x3.86x3.98”
● weight: 9.26 lbs

Discharging Characteristics:
The discharging characteristics of the battery was determined from the battery discharge vs
time curve assuming a nominal operation of the battery at a specified C rating. The question
was, how long would the battery last if the motor requires 4 A continuous current at 12 V
=> 4*2 amp(2 motors) = 8/15 = 0.533*C
From the battery discharging cycle curve, at this rating, the battery would last for 1.5 hrs, with a
1V decrease in operating voltage.
Charging Characteristics:
The charging characteristics depends on the ‘state of charge’ before the battery charging cycle
starts. Assuming that the battery is discharged to 50% of its charge before recharging, a 12V
battery would require 4 hours to charge.

Auxiliary Batteries
These batteries power:
● NI cRIO
● Inertial measurement unit (IMU)
● Encoders
● Other electronics circuitry.

The cRIO requires 24V. But does not require a very high current for operation. Thus two 12V
batteries with relatively low capacity are required in order to power the cRIO and other control
circuitry.

Battery Selected: PowerStar Sealed Lead Acid Battery(SLA)


● Battery Specifications:
○ voltage: 12V
○ Capacity: 3.5 Amp-Hrs
○ Peak Current: 52.5 A
○ Size: 5.28x2.64x2.62”
○ Weight: 2.98 lbs

The relatively small size and weight of these two types of batteries when compared to other SLA
batteries which provides us a lot of free space on the plate and does not influence the overall
weight of the robot that much.

Battery State of Charge Sensor


A simple LED Battery life indicator will be included for each battery. Each indicator had a green,
yellow, and red indicator representing good, ok, and low voltage respectively. This will give the
user a visual warning when battery life is low. Since low battery voltage could lead to improper
performance, it is imperative that the user heed the warning of the LED.

Sensors

Inertial Measurement Unit (IMU)

The IMU is used to measure the orientation of the robot and feedback to the cRIO. Between
the analogy output and digital output IMU, there are some factors used to compare. First,
the price of the analogy one is half the price of digital one. Furthermore, the gyroscope and
accelerometer are on the same board so they come aligned on the same coordinates. The
Freedom IDG500/ADXL335 supplied by SparkFun most closely matches our requirements. In
addition, the IMU will be contained in a Faraday cage style enclosure to reduce noise.
Specifications:
● Type: Five degrees of freedom IMU combo board
● Sensitivity: 300 mV/g for accelerometer and 2 mV/g/degree/sec for gyroscope
● Output type: Analog
● Dimension: 20*23(mm)
● Input voltage and current: 3.3V and 10.5mA

IMU Filter
In order to properly utilize the outputs of the combo board we have selected, we must design a
filter to combine the preferable characteristics of the accelerometer and gyroscope. A low pass
filter is added to the accelerometer to limit the sensor’s output beyond its bandwidth. A high
pass filter modifies the gyro output to provide compensation for the drift associated with the
gyro. The complimentary filter is implemented by designating the filtered gyro signal as the base
signal and adding the filtered accelerometer signal to compensate for the gyro bias.

The filter we have designed is based upon previous M-Way teams experiences with the same
combo board. When we receive the combo board and are able to confirm it’s performance, we
will modify the filter as needed. The filters are denoted as Ga for the accelerometer and Gg for
the gyroscope;

Encoder
Based on simulations, the a 512 PPR quadrature encoder is sufficient, and based on size and
cost, the E7P provided by US Digital is suitable for our requirements. The encoder is mounted
to a short turned down section on the end of the shaft to the specified 0.394” (10mm) disk hole.
The encoder kit comes with a centering and mounting tool which will be used to attach the
encoder once the rest of the motor shaft stack is complete.
Specifications:
● Type: US digital E7P
● CPR:180 to 720
● Number of channels:2
● The input voltage and current:5V and 30mA

Miscellaneous Electronics

Emergency Stop

The emergency stop will be connected between servo and power supply and mounted to the
frame. The emergency stop will interrupt the power supply to the H-bridge servos rather than
the the current sent from the servo to the motors.

Specifications:
● IDEC-AVW411-R
● Max current: 40amp
● Continuous current:10amp

Voltage Regulator
Since the supplied voltage is 5V for the encoder and 3.3V for IMU so we need to transform 24V
battery voltage to 5V and 3.3V. The max input current of sensors is around 70 mA so a high
power DC-DC converters are not required . Therefore, two voltage regulators will be used to
drive the sensors. The regulators have 5V and 3.3V output voltage and 100 mA output current
which is good enough for the sensors. Each is mounted to the printed circuit board discussed in
the next section.

Specifications:
● Type: 78L05 (5V) and LP2950(3.3V)
● Output current:100mA
● Input voltage range: 0 to 30V

Printed Circuit Board (PCB)


In order to power the small sensors, two shaft encoders, and IMU chip, the 24V voltage supply
for the cRIO must be reduced using a voltage regulator circuit presented below in the circuit
diagrams. The PCB board will be used to connect the voltage regulators to the 24V supply.

● Type: Matching Printed Circuit Board with 550 Connect Points

Wiring Practices
Since the current flowing through parts of the robot is relatively high, proper wiring and
connections must be ensured. This will also improve the performances of the main auxiliary 24V
circuit by limiting EM noise and sudden drops in voltages. This voltage fluctuation concern was
solved by separating the drive circuit and the main power circuit. Proper sizing of wiring and
connections to battery terminals, motor controller terminals, and motor wires are provided in the
wire choice section below.

High importance wiring practices:


● All sensors and controller cabling will be twisted pair, shielded wires. This will limit noise.
● The motor cables are separated from the wiring of cRIO, motor controller and sensors.
● Single ground point to eliminate ground loops.

Wire choice
AWG Gauge Max amps for chassis wiring Max amps for power transmission

7 89 30

8 73 24

The above table comes from Handbook of Electronic Tables and Formulas for American Wire
Gauge. Since the limit of current in this table is very conservative and the power transmission
of the robot is not very big, the gauge 8 wire is chose to connect with motors, servo and battery
according to the max chassis wiring current limit and the 70A peak current of motors. For the
low current circuit, the smaller 16 and 24 Ga wire will be suitable and is readily available in the
lab.

Circuit Diagram
Since the voltage source of sensor should be kept constant to reduce the noise, separate
batteries will be used; one used to drive the servo and motors, another two used to power the
cRIO and sensors.

PCB Circuits
A PCB will be used to as stated before the mount the 24V to 3.5 and 5V voltage regulators.
These will power both the motor shaft encoders and IMU chip. It is attached to the top
electronics plate using four ⅛” bolts on the corners of the board. It should also be shielded using
a Faraday cage style enclosure, discussed in the issues section below.
Microprocessor
The microprocessor will be responsible for the following tasks:
● Control Algorithm
● Sensor Feedback
● PWM generator
● Accelerometer and gyro filter

We have chosen to use the NI cRIO 9004 and module as our microprocessor. This device
uses Labview as the front end GUI and flashes the developed software onto the cRIO FPGA.
It requires a 24 V external power supply, draws 48 A of power, and includes 512 MB flash
memory and 64 MB DRAM on-board.

One advantageous feature of the cRIO is the modularity of the input and output cards. We can
choose to place 8 channel analog or digital input or output modules into four slots on the cRIO
chassis. For our application we will require one digital I/O module (NI 9401) and one analog
input module (NI 9201). The digital I/O is a high sped, TTL logic module with a 10 MHz clock.
The analog input module can receive up to a ± 10 V and has a sampling frequency of 500
kHz.The I/Os are arranged as follows;
Component Verification

IMU
To get an idea of the performance for the IMU, we performed some preliminary tests on an IMU
combo board with 3 degrees of freedom:

Accelerometer test
The IMU was perpendicular to the surface of earth and rotated the IMU by protractor to
test the effect of gravity

As can been seen from the figure, when the rotational angle increase from 0 to 90, the gravity
on the negative x direction increase and decrease on the minus y direction so the output voltage
of accelerometer decrease in x direction and increase in the y direction.

Gyroscope test
The IMU was attached on the arm of motor and the arm was rotated to compare the variance of
angular velocity coming from encoder and output voltage of gyroscope.

As can been seen from the figure, the variance of gyroscope’s output voltage is the same as the
variance of motor’s angular velocity.

Microprocessor
We will use the inverted pendulum system from lab 3 to verify microprocessor performance
and our ability to use the cRIO. The Labview VI has been created and we will begin testing
the inverted pendulum system over the Thanksgiving break. We have confirmed that we can
perform the getting started tutorials with the cRIO, which entails some simple I/O programming
and Labview processing.

Issues to be Addressed

Motor Controller
The motor controller has become a large stumbling block in this project. The Round-A-Bot
falls into a void in terms of motor controllers; it is a small robot in terms of weight and size
considerations, but requires a large current output for emergency maneuvers. As a result, we
have had trouble finding a controller which can provide the needed current at a reasonable price
and size.

Our current solution is to use the Simple H motor controller; a simple controller capable of
providing 20 A continuous, 48 A peak as a full H bridge controller. The controller has the option
to function as a ganged half bridge, which can then provide 70 A peak in a single direction.
While this meets our current requirements, it fails to meet our need for bi-directional rotation.
The following diagram shows how a single Simple H bridge can be used as a full bridge or
ganged half bridge;
We have three possible choices of action with the Simple H;
1. Once we receive the motor and build the robot, we may find that the full H bridge
configuration provides enough power to drive the robot. In this case, we will use the
controllers in their basic function.
2. If we must use the ganged half bridge, it may be possible to use two half bridges to
manually create a full bridge. This option implies purchasing two motor controller, and
borrowing two motor controllers for the duration of the project. Since we currently have
access to the motor controllers which could be borrowed, we can test this method early
on to determine if it is in fact an option.
3. The final option is to change the project goals. Instead of carrying a 200 lb person,
we can limit the riding capacity to a smaller weight. This would reduce the torque
requirement substantially and allow us to use the Simple H in full bridge configuration.

This Thanksgiving break, we will test option #2 with the borrowed motor controllers. If this
options is possible, we will go ahead with the purchase of the Simple H motor controllers. If it is
not, we will consider revising our requirements to match the Simple H full bridge capabilities.

Top Plate Rearrangement


The top plate arrangement has become a topic of great debate. The issue is that noisy
components (the motor controllers) are situated near the sensitive sensor circuits. We have
three suggestions / ideas which we are considering. None of the ideas require additional on-line
ordering and a decision will be made over Thanksgiving break. Our possible solutions are;
1. Use high quality wiring practices to limit the noise within the cables. This solution does
not address the issue of the noise source, but will attempt to limit the noise as much
as possible within our current design. All sensitives circuitry will be separated from the
motor controllers and use twisted pair, shielded cable in order to limit noise in the wiring.
We could include ferrite beads at the motor controller to help suppress some of the noise
in the motor signals also.
2. Install a Faraday cage around the motor controllers to limit noise radiation. We could
install a wire cage around the motor controllers, which would limit the radiated noise. A
cage is preferred over a box as it will still provide airflow over the motors and prevent
overheating.
3. Rearrange the top and base plates. We could move the motor controllers to the base
plate and the cRIO batteries to the top plate, essentially isolating the high powered
and noisy motor circuit from the lower power and more sensitive controller circuit. This
solution would have two benefits:
a. The noisy components would be placed on the base plate, essentially isolating
the sensitive equipment from the larger noise sources.
b. The high power motor circuit would be entirely located on the base plate, limiting
the length of high powered wires.
We will consider all three solutions over the Thanksgiving break and proceed with the chosen
solution the following Monday.

Conclusions
This report demonstrates that all major and minor component and material selections have been
made. Based off of performance simulations using planar mathematical models, and a controller
implemented in Simulink (including real-world parasitic effects), the robot meets the desired
technical specifications.

The fabricated and modified parts for this robot have been designed, and the engineering
drawings have been completed. The Bill of Materials is completed and a link can be found at the
end of this document.

Preliminary component verification and testing is underway and will continue through the next
week.

Some minor changes to the design of the robot will be implemented following the design review
meeting. The major issues are discussed in the previous section. However, none of them have
a substantial impact on the majority of the Bill of Materials. and thus we are ready to begin
placing orders for almost all components and raw materials.

Bill of Materials
The complete Bill of Materials for the Round-a-Bot can be found here: http://tinyurl.com/
roundabot-BoM
Engineering Drawings
The complete set of Engineering Drawings for fabricated parts and modified purchased
components can be found here: http://www.umich.edu/~svozar/roundabot_drawings

Appendix A - Simulation Parameter File


% Parameter file for planar model simulation

%Dynamic Model
g = 9.81; %[m/s^2] Gravitational acceleration
r = 0.254; %[m] Ball radius (10")
Mb = 3.629; % [kg] Ball mass (8lb)
Ib = 2/5*Mb*r^2; % [kg-m^2] Ball Moment of Inertia

mu_theta = 0.1; %Viscous Damping ball-ground


mu_phi = 0.1; %0.1; %Viscous Damping ball-body

Mc = 267.2/2.2; % [kg] Cylinder Mass


l = 32.41*.0254; % [m] Distance from CoM of ball to CoM of Cylinder
Ic = 78038/2.2*(.0254)^2 + Mc*l^2; % [kg-m^2]Cylinder Inertia
Gamma1 = Ib + Ic + Mb*r^2+Mc*r^2+Mc*l^2;
Gamma2 = Ib + Mb*r^2 + Mc*r^2;

%Actuator
r_wheel = 0.124968; %[m] wheel radius
GR = r/r_wheel; %wheel-to-ball gear ratio
Kt = 0.02104342; %[N-m/A]motor torque constant
GBR = 16; % gearbox ratio

curr_sat = 70; %[A] motor current saturation


deadband_width = 1; % [Nm] motor deadband width;
deadband_initial = 0; % [Nm] motor deadband initial output;

servo_amp_noise = 1e-6;
actuator_quant = 70/2^12; %Amps

%Sensors
sample_rate = 500; %[Hz]
encoder_PPR = 512*4;
gyro_quant = 2000/2^12; % mV
accel_quant = 1800/2^12; % mV
gyro_noise = 0.8; % mV (rms)
accel_noise = 45e-6/1^2; %V (rms) at 1Hz
S = 300; %[mV/g], Accelerometer Sensitivity
Vb = 1500; %[mV], Accelerometer Bias Voltage
Sg = 2.0 * 180/pi; % [mV/(rad/s)], Gyro Sensitivity

You might also like