Professional Documents
Culture Documents
Jeff Fletcher
Sung-Tu Ho
Jason Kloess
Ranjit Raj
Steve Vozar
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).
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
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.
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
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
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:
Taking the Lagrangian yields a set of two coupled differential equations, which can be written in
the following form:
Simulink Model
The closed-loop Simulink model is shown below:
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.
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.
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.
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.
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.
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 ‘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:
Motor Specifications
PERFORMANCE
Model M4-R0062-12
No Load A 2.7A
Kv 443 rpm/V
Efficiency 65%
PHYSICAL
Weight : 46 oz (1304g)
Diameter : 0 in (0mm)
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
Weight 41oz
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.
Seat Depth: Shaft size 5/16” thru 9/16” => Sq. = 1/16” , rect. = 3/64”
Tolerances:
Material Properties:
Shaft: Chromium steel ETD150 => S_yield = 150 kPSI = 1034.214 MPa
Key:
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
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”
Tolerances:
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
**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).
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.
Determination of fc:
from table 13, considering normal loading, for bore diameters less than 0.71” tolerance on the
inner diameter = j5 = +0.0002” -0.0001”
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].
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.
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.
Sensors
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
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.
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.
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
%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
%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
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