Control Systems & Programming Basic Programming Vocabulary - - PowerPoint PPT Presentation

control systems programming basic programming vocabulary
SMART_READER_LITE
LIVE PREVIEW

Control Systems & Programming Basic Programming Vocabulary - - PowerPoint PPT Presentation

Control Systems & Programming Basic Programming Vocabulary Auto: autonomous, robot operates using pre-written code and sensor input Teleop: Tele-operated, robot operates using human input (via controllers) Compile : Translates


slide-1
SLIDE 1

Control Systems & Programming

slide-2
SLIDE 2

Basic Programming Vocabulary

  • Auto: autonomous, robot operates using pre-written code and sensor input
  • Teleop: Tele-operated, robot operates using human input (via controllers)
  • Compile: Translates code from what you have written into a language the

robot can understand.

  • Deploy: Transferring the code from a computer to the RoboRio.
  • FMS: Field Management System, used during competitions to run the game
  • IDE: Integrated Development Environment, what we write our code in
  • Library: An external project that can be imported and used within another.

Code written by others that we can use.

slide-3
SLIDE 3

Basic Programming Vocabulary

  • DS: Driver Station, software that communications between the robot radio,

controller, and FMS

  • Smartdashboard / Shuffleboard: Software that lets us see and change

various values of robot components (encoder values, sensor voltage, etc).

slide-4
SLIDE 4

Some Control Systems Vocabulary

  • PCM: Pneumatics Control Module
  • RoboRio: The brain of the robot, runs on a version of Linux
  • Radio: Allows communication between the robot and the Driver Station
  • PDP: Power Distribution Panel
slide-5
SLIDE 5

Some Control Systems Vocabulary

  • Various Sensors

– Limit Switch: Optical and Digital – Encoder – Camera – Potentiometer – NavX (gyro and accelerometer) – Distance Sensor

slide-6
SLIDE 6

Structure of Our Code

  • Command Based Programming: Every action that the robot does is based on

pre written commands we can reference.

  • Subsystem: The different components of the robot we need to be able to
  • perate. Can include components such as a Drivetrain or Shooter.
  • Command: Individual instructions written for specific subsystems. For

example, a command could be DriveXInchesCommand.

slide-7
SLIDE 7

Tools We Use

  • Github/Git Bash - Version Control
  • Eclipse/Intellij (IDE) - Java Coding
  • Pycharm (IDE) - Python Coding
  • GRIP (Graphically Represented Vision Processing Engine) - Vision

Processing

  • FRC Driver Station
  • Libraries

○ WPI, CTRE, and Kauailabs: used to control robot components such as CANTalons and the navX ○ 1816 Utils - Kind of, our own code containing various utility classes ○ OpenCV - Open Source Computer Vision, the “raw” version of GRIP

slide-8
SLIDE 8

Github & Version Control

Version control is a system that allows us to work on the same code on multiple computers, and revert code to earlier versions if we make a mistake. We have previously used SourceTree, a graphical version control software, but this year we have begun training rookies and veterans alike in Git Bash, a command line based version control software

slide-9
SLIDE 9

IDEs we use: Eclipse, Intellij, Pycharm

We’ve coded exclusively in Java using Eclipse previously, but have recently made the switch to IntelliJ. We use Pycharm for coding Python scripts (which we typically use for vision processing)

slide-10
SLIDE 10

Newer Stuff: Vision Processing

Camera

Picks up the image and sends it to the Raspberry Pi

Raspberry Pi

Analyzes the image based on the reflections

  • f the flashlight on the

reflective tape and processes it for values

RoboRio

The Pi sends the value to the Roborio through Network Tables, which uses it in a program

Action

The Robot uses the values to decide when/what degree to do something, like placing a gear or shooting a ball

slide-11
SLIDE 11

Newer Stuff: Robot Movement/Motion Profiling

We want to incorporate different sensors that collect different data to make our robot's movement as accurate as possible. To this end, we currently use:

  • Encoders
  • NavX - Gyroscope and Accelerometer
  • Distance Sensor
  • Vision Processing

We're still working on Motion Profiling, but the hope is that in the future we can incorporate the sensors working together to make movement more smooth.