Anda di halaman 1dari 27

02

FIRST Robotics Team 1721


03

Table of Contents
● Game Analysis Process (03)
○ CDR (03)
○ Prototyping (04)
● Drivetrain subsystem (08)
○ Overview (08)
○ CAD (08)
● Iris subsystem (09)
○ Overview (09)
○ CAD (09)
● Lift subsystem (10)
○ Overview (10)
○ CAD (11)
● Cargo intake subsystem (12)
○ Overview (12)
○ CAD (12)
● Control loops (13)
○ Overview (13)
● Technical Drawings Index (18)

FIRST Robotics Team 1721


04

Critical Design Review

(Tidal Force students, Ian Macaig, Josh Shamash, Rosie Speidel, and Joe Sedutto, presenting to mentors
and industry engineers)

Critical Design Review


During the CDR (Critical Design Review) we presented
our prototypes to industry professionals from companies
such as BAE, Atrium, and Bendrite LLC. They asked
questions, critiqued our designs, and gave us feedback.
The CDR is a vital part of build season, as it helps us
determine our final design direction.

FIRST Robotics Team 1721


05

Prototyping
Iris

FIRST Robotics Team 1721


06

Iris

FIRST Robotics Team 1721


07

Truncated Cone

80-20 Lift

FIRST Robotics Team 1721


08

Inset Lift

FIRST Robotics Team 1721


09

Clamp Wheels

Bar of Wheels

FIRST Robotics Team 1721


010

Drivetrain Subsystem

Millenium Toaster has a West Coast drivetrain. It has eight


wheels, which are powered by VexPro 3-CIM Ball-shifting
gearboxes. The pneumatics allow us to shift from high
gear (5.10:1) to low gear (13.5:1). This results in a fast, but
also defense oriented robot.

FIRST Robotics Team 1721


011

Iris Subsystem

The Iris uses the brushes to hold balls of varying size, with
a tolerance of one inch. The Iris can intake hatch panels
and receive cargo from the aft of the robot. The entire iris
is powered off of 4 pneumatic cylinders.

FIRST Robotics Team 1721


012

Lift Subsystem

The lift is made of four stages of 1/8” C-channel. Brackets


on the sides and inside of the channel have bearings that
keep it constrained, along with welded support bars. There
are six constant force springs that reduce tension in the
ropes and allow for a smaller gear ratio. It has a cascading
string system driven by two 775Pro motors on a
VersaPlanetary 49:1 reduction.

FIRST Robotics Team 1721


013

FIRST Robotics Team 1721


014

Cargo Intake

The intake is comprised of six mecanum wheels and two


compliant wheels. It is powered by a 775Pro (50:1), and
driven with belts, sprocket (1.77:1), and chain. The bar of
wheels can be raised and lowered with a window motor.
The cargo travels through a bent polycarbonate channel
and is transported to the Iris.

FIRST Robotics Team 1721


015

Control Loops
Understanding Control Loops
A PID (proportional-integral-derivative) closed control loop
describes the actions of a self-correcting system. To
implement such a loop, a sensor must be used to
calculate a current state of the system - position, angle,
height, etc. This value is then subtracted from the target to
generate error - this quintessential number dictates the
actions of the control loop, which seeks to minimize this
singular error.

Usage - Navigation
Millenium Toaster makes use of two kinds of sensors -
quadrature magnetic encoders, which allow the robot to
understand the speed and position of motor shafts, and
the Limelight 2 vision camera, which tells the robot the
position of various vision targets on the game field. The
numbers provided by these sensors, as well as a
knowledge of the game field, allow us to calculate error.

Our first loop is run on the drive train - we read the vertical
angle between the vision camera and a vision target, and

FIRST Robotics Team 1721


016

use some basic trigonometry to calculate a linear distance


from said target.

A
θ
H

D B

Imagine A represents the camera and B represents the center of the vision target. The
difference in height, H, is thus known. θ is a combination of the camera’s mounting angle and
the vertical angle detected by camera firmware. Knowing this, distance D can be calculated.

This linear distance is then subtracted from our desired


distance to generate our first error number. This could
theoretically drive the robot to the correct distance from
the vision target, but a critical component is missing -
aiming.

A traditional tank drive robot steers by driving one side at


a lower speed or even inverse to the other, creating a
difference in speeds and thus generating a turning radius.
For example, to veer portside, the port motors would have
to drive at a slightly slower speed than the starboard
motors.

FIRST Robotics Team 1721


017

With this in mind, we can find and use our second error
number - horizontal offset. Consider the image below,
showing us what the vision camera sees.

The number labeled TX is what we are after - the


horizontal offset of the target. This number returns as zero

FIRST Robotics Team 1721


018

when the center of the target appears on a horizontal


plane with the crosshair we calibrated. TX, when scaled up
accordingly to appropriately steer the robot, is then used
as our second error number, and combined with the error
calculated for distance (subtracted from the port side and
added to starboard) to guide the robot to point its camera
at the target.

We’re now ready to construct our first PID loop. The


primary functionality comes from P, the proportional value,
which scales how reactive the system is to error. Too low,
and the loop won’t respond to error efficiently. Too high,
and the system will overshoot dramatically as error
oscillates from extreme to extreme. This is tuned by
marking out a set target on the ground and driving to it
with a simple P-loop, and seeing how the robot responds
to different P values. Ideally, the robot will move to the
target quickly, and settle fairly close to zero error. A basic
P-loop allowed us to have functional vision tracking within
a week of the camera being delivered.

A problem this simple loop faces is that small amounts of


error are not accounted for. When the loop sees a small
amount of error, it sends a small adjustment to the motors

FIRST Robotics Team 1721


019

- however, at some point, this small adjustment is not able


to overcome friction and actually move the robot.

Consider this graph, where the black line represents zero


error, and the red line represents the current state of the
system. The state oscillates and finally settles at non-zero
- the error left over is no longer large enough to create a
real adjustment. This is where I comes in.

I adjustment relies on the integral of the curve previous


displayed - that is, the area under the curve. Since the
curve is graphed over time, this area grows as time goes
on. Remember this.

If our error sits at a small value for some time, we want


our robot to increase the adjustment value to a level that

FIRST Robotics Team 1721


020

actually causes movement. Since I increases the entire


time the robot has some error, we can use a threshold - if I
gets too high, increase the motor adjustment. This causes
the robot to move closer to zero error when P is
insufficient to do so. A perfectly tuned I value will bring
error to exactly zero, every time.

The final touches to create smooth movement come from


D. Right now, the robot faces overshoot and oscillation,
and may also have to deal with jerky movement as
acceleration and velocity update perpetually.

Consider this diagram, displaying what’s known as a

FIRST Robotics Team 1721


021

trapezoidal motion profile. A well tuned D value will cause


our robot to move according to such a profile - it
accelerates quickly, holds a steady cruise velocity up to a
point, and then decelerates at the same rate, ideally
stopping dead on our target.

Usage - Lift
The lift also implements a position closed control loop,
utilizing the TalonSRX motor controller and its built in PID
control, as well as a quadrature magnetic encoder to
sense the current position of the lift. This is then used to
maneuver the lift to various known heights to deploy
hatches and cargo in both the rocket and cargo ship.

Of course, a problem is still prevalent that may cause a


catastrophic failure - if the lift is raised to some height,
automatic navigation will cause the robot to tip due to the
moment of inertia rising. Short of calculating this moment
manually, there is one solution - limit acceleration so force
does not exceed the robot’s tipping point. A test can be
run, raising the lift to known heights and observing the
maximum acceleration, and then combining this data into
a regression line/equation to calculate maximum
acceleration relative to height. We can then periodically

FIRST Robotics Team 1721


022

poll the current height of the lift, run it through this


equation, and determine our maximum acceleration. Our
actual acceleration (part of D value) is promptly limited so
as not to exceed this value.

Conclusion
This dual-loop system allows us to automatically navigate
to the correct height and position to score points,
effectively and efficiently.

FIRST Robotics Team 1721


023

Technical Drawing Index

FIRST Robotics Team 1721


024

FIRST Robotics Team 1721


025

FIRST Robotics Team 1721


026

FIRST Robotics Team 1721


027

FIRST Robotics Team 1721

Anda mungkin juga menyukai