Title: Control System Basics
1Apple Pi Robotics Logic System and Programming
Basics
2Agenda
- Review Control System Hardware
- On Robot
- Driver Station
- Where to begin application code
- LabView Interface
- LabView Programming Fundamentals
- Application Challenge
3Control System
- Hardware
- Controller
- I/O and interface boards
- Communications
- Operator Interface
- Software
- Operating System
- Program Code
4Let's Look at the Hardware
- Rack/Processor/Communication
- Analog Module
- Digital I/O
- Solenoid Module
- Extra Slot
The cRIO I had 8 slots, the newer cRIO II has 4.
Both are compatible, and both are legal in
competitions, if you have an 8 slot you may only
use the 1st 4 slots.
5Additional HardwareAnalog Breakout
12v Power from Power Distribution Board
Up to 8 Analog sensors
Jumper
Analog Breakout Board
6Additional HardwareDigital Sidecar
All speed controllers (up to 10), sensors (up to
16) and relays (up to 8) connect to sidecar
Connect to 12V output on Power Distribution Board
Robot Signal Light
7Digital Sidecar Connections
Status LEDs These should always be green when
robot is turned on
PWM Outputs Connect up to 10 Speed Controllers
Servos also connect here must have a jumper on
power pins to function
Power connection Connect to 12V output on Power
Distribution Board
Connects to the cRIO Digital Module
Robot Signal Light Connector
Relay Indicator Lights Red REV Green FWD
Relay Outputs Connect up to 8 Spike Relays
Digital I/O connect up to 14 digital sensors
8Additional HardwareSolenoid Breakout
12v Power from Power Distribution Board
Only used for pneumatics spike relay, pressure
switch
Solenoid Breakout Board
9Driver Station
- Laptop
- Driver Station Software
- Joystick
- Custom Controls
- Dashboard
10Laptop
- Classmate comes in the kit
- You can use any laptop that you like
- (Advanced) Software can run on the laptop and
send data back to the robot, like vision
processing
11Driver Station Software
- Software that is run on the DS laptop
- Allows driver control of the robot
- Diagnostics of the communication to the robot
- Battery Voltage Read out
- Enter Key Disable
- Spacebar Key Emergency Stop (Use Enter
normally) - If you press Spacebar you will have to restart
the robot before you can disable it
12Driver Station Software
- 5 Tabs Provide Access to the different screens
- Operation
- Diagnostics
- Setup
- I/O
- Charts
- If you press Spacebar you will have to restart
the robot before you can disable it
13Driver Station Operation Tab
- Mode Selection
- Teleoperated Driver
- Autonomous Computer Control
- Practice Run like a match
Team Number (Make sure it is correct)
Battery Voltage Display
Elapsed time since start of robot communication
PC Battery
- Communication Status
- Communication a connection to the cRIO
- Robot Code the user code is running
User Messages (This area can be controlled by the
robot program)
Communication Status
Enable/Disable Buttons
Station Number for Competition Use
14Driver Station Diagnostics Tab
Communication LEDS Green means they are
active Hover over errors for messages that may
help resolve issues
View Driver Station Log can be useful for
debugging errors
Joystick and IO LEDS Green means they are active
Firmware Versions These must be stay up to date
for you to work at competition
Reboot cRIO Useful if you have an error that a
robot reset can fix
15Driver Station Setup Tab
Team Number Configuration Make sure this is set
correctly
Choose NIC Allows you select which network
adapter is connected to the robot
(Advanced) Allows you to configure Remote
Dashboard
Allows you to configure how the practice rounds
are setup
Joystick Setup Drag Joystick up and down to
switch which connected joystick is 1, 2, 3 or 4
in the program
Exit Logs off the Driver Station Account on the
classmate
16Driver Station I/O Tab
This tab is used for configuring custom
interfaces with the cypress I/O module. If you
arent using the cypress module you will not need
this tab
There are several other ways to build custom I/O
interfaces that dont involve the cypress board
or this I/O panel. You can find examples of
these on Chiefdelphi.com
17Driver Station Charts Tab
This tab helps you diagnose problems with your
robot
- Lost Pkts Lost Packets this is an indication of
connection issues, if you have a large amount of
lost packets there is something wrong with your
connection between the robot and the DS - Volts A graph of battery voltage this can be
very useful to find correlations between battery
volatage and problems that occur with the robot - Msecs This is reporting your trip time, which
is how long it takes for information to go from
the driver station to the robot, this should also
be small - CPU this is the percentage of CPU your cRIO is
using, minimizing this will allow for better
performance
18Dashboard
The Dashboard can be used to get feedback from
robot systems. This is the default Labview
Dashboard
19D-Link DAP 1522 Router/Bridge
- Connects Robot to Driver Station Laptop
- Allows wireless control of the robot
- Also called the Radio
- Should be mounted away from motors and speed
controllers to avoid interference
20D-Link DAP 1522 Router/Bridge
Power Light (blue)
Bridge Light (orange)
Access Point Light (blue)
Traffic Indicator Lights (blue)
21D-Link DAP 1522 Router/Bridge rev.B
22D-Link DAP 1522 Router/Bridge
5v Power Connector Plugs in to grey power inverter
Ethernet Ports
AP/Bridge Switch AP Practice/Home Bridge At
Competition
Reset Button
23Other Electrical System Devices
- Sensors
- Limit Switches
- Photo Detectors
- Infrared Sensors
- Encoders
- Potentiometers
- Gyro
- Speed Controllers
- Jaguars
- Victors
- Talons
Solenoids Lights Pressure Switches Gyro Relays
24Let's Talk Application CodeWhere do we Start?
- List Connected Hardware with purpose defined
- All Operator Interface
- Pushbutton/Switches
- Meters
- Lights
- All Robot Mounted Devices
- Limit switches
- Motor controllers
- Spike Relays
- Lights
- Photo sensors
25Application CodeWhere do we Start?
- Develop Sequence of Operations
- Documentation of how robot works all subsystems
defined including the purpose - Ball collector/conveyor
- Shooter
- Drive train
- Knockdown
- All ties back to the hardware list
26Example Knockdown Sequence of Operation
The purpose of the Knockdown arm is to allow for
the lowering of the bridges that are used to
cross from the offensive side of the field to the
defensive side. It is also used for lowering of
the bridge during the end game to allow the
robot(s) to get on the bridge to attempt
balancing. Control devices include the Arm Up
and Arm Down buttons on the Operator's
joystick. The Full Up and Full Down limit
switches control the stop points for actuation
and prevent over travel. Both limit switches make
use of the normally open contact. The Knockdown
Gearmotor provides for the actuation of the arm.
The motor operates clockwise for movement in the
down direction (positive polarity) and
counterclockwise for movement in the up direction
(negative polarity).
27Example Knockdown Sequence of Operation
Operation When the Arm Down button is
depressed, the motor is commanded to rotate
clockwise with a preset speed reference. The arm
continues to advance in the down direction until
either the button is released or the full down
limit switch is engaged. If the button is
released the arm stops at that point. If the
full down limit switch is activated the arm stops
in the down direction and can not be lowered
further. Only the Arm Up button may be used at
this location. When the Arm Up button is
depressed, the motor is commanded to rotate
counter clockwise with a preset speed reference.
The arm continues to advance in the up direction
until either the button is released or the full
up limit switch is engaged. If the button is
released the arm stops at that point. If the
full up limit switch is activated the arm stops
in the up direction and can not be raised
further. Only the Arm Down button may be used
at this location.
28LabView Interface Overview1st do you have
correct version installed?
- For those who dont have correct version
- We can start loading during initial discussion
slides - USB 3 updates reqd
Open a blank vi
29LabVIEW Interface
- Each Virtual Instrument (VI) has 2 Windows
- Front Panel
- User Interface (UI)
- Controls Inputs
- Indicators Outputs
- Block Diagram
- Graphical Code
- Data travels on wires from controls through
functions to indicators - Blocks execute by Dataflow
Front Panel
Block Diagram
30Dataflow Programming
- Block diagram execution
- Dependent on the flow of data through wires
- Block diagram does NOT execute left to right
- It is good practice to lay out the code in an
easy to follow left to right, top down manner - Function executes when data is available to ALL
input terminals - Functions supply data to all output terminals
when done
Logic Thinking What functions are needed, and in
what order?
30
31LabVIEW Interface
32LabVIEW Interface
33LabVIEW Interface function sets
- LabVIEW palette sets
- Programming
- FRC specific palettes
- FIRST Vision
- WPI Robotics Library
- PID Toolkit palette
- Context Help
34WPI Robotics Library
- Interfaces with cRIO, sensors actuators
- Contains multiple palettes
- Robot Drive
- Sensors
- Actuators
- IO
- Driver Station
- Camera
- Communications
- Utilities
35LabVIEW Interface
Sample Block Diagram
36LabVIEW Interface
37LabVIEW Interface
38LabVIEW Interface
- HelpShow Context Help, press the ltCtrlHgt keys
- Hover cursor over object to update window
- Additional Help
- Right-Click on the VI icon and choose Help, or
- Choose Detailed Help. on the context help window
39LabVIEW Best Practices
- Create a New Folder in your work directory for
your LabVIEW work call it Labview Data - You will save all your VIs Projects to this
folder. - Saving your VI frequently is good, but know that
once you choose to save your VI, it resets the
undo call (Ctrl-Z) and you will not be able to
go back on any steps you made before saving your
VI. - Think function-to-function programming and not
line-by-line - Avoid crossing wires while connecting different
objects on the block diagram. Crossed wires can
be confusing to read and follow at times. (but
can be unavoidable ) - When in doubt, DEBUG! Use the light bulb icon on
the status toolbar on the block diagram to
highlight the path of the flow of data.
40LabVIEW Best Practices
- Place output indicators at multiple steps during
the data flow path of your VI to keep track of
the output as it changes through the VI. - PLAN PLAN and PLAN! Plan out the various stages
of your VI/Program prior to placing objects on
the block diagram. This will make it easier to
end up with a clean picture of code and will also
allow you to pick out the functions that best
suit your needs. -
- PRACTICE! The only way to get better at LabVIEW
is to practice. - We will teach basics and principles in next few
weeks - In order to be proficient independent work is
required
41LabView for FRCA template is provided to set up
the code
- Open Labview FRC 2013
- Select New FRC cRio Robot Project
- Change Project name
- Set IP Address to 10.20.67.02, select Finish
- In Project Explorer window select Robot Main
- Project explorer links multiple vis
(Virtual Instruments)
42That's All Folks!