wiki:SoftwareOverviewControl

Version 8 (modified by David Albert, 8 years ago) (diff)

--

Controlling FRC Robots

FRC robots are controlled by an on-board computer and operate in one of two main modes:

  • Teleop - Remote control like driving an R/C car
  • Autonomous - The robot operates independently according to programmed instructions

Teleop Control

FRC Driver Station When an FRC robot is in Teleop mode, a human driver stands at a Driver Station (see picture to right): a laptop running special software and joysticks or gamepads for controlling the robot's actions; the laptop connects to the robot using a wireless radio. In many ways, a robot in teleop mode is like a giant, sophisticated remote-control car.

The driver station laptop typically displays status information about the robot and can display video streaming from the robot's cameras. The human driver watches the video and controls the robot using joysticks or a gamepad to remotely drive the robot and operate its mechanisms. The picture to the right shows a driver station ready to run at a competition. Teams typically use one or two joysticks to drive the robot; with two joysticks, one controls the left motors and the other the right motors in an arrangement known as tank drive. A second human player often operates another joystick or gamepad to control mechanisms (arms, turrets, shooters, etc.) on the robot.

In competition scenarios, drivers must often operate the robot while it is obstructed from direct view (e.g. behind a structure); in these cases, the streaming video from the robot is critical to successful driving.

Exercise: Drive a robot

  • Materials Needed: peanut robot with camera, freshly charged battery, driver station, mentor or senior student
  • Activities:
    • Connect/install battery in robot
    • Turn on robot using main breaker
    • Turn on driver station laptop
    • Establish wireless link between driver station and robot
    • Drive robot
    • Drive by wire (watching only the streaming video from the robot)
  • What happened: The driver station provides controls and wireless communications allowing a human driver to operate the robot remotely.

Autonomous Operation

http://files.shandymedia.com/wp-content/uploads/2017/07/26090104/Terminator.jpg

At the start of each competition, the robot is placed in "autonomous mode" where it operates independently to perform a sequence of required tasks, earning points for each task accomplished. The autonomous operation is controlled by software that monitors the robot's environment using sensors and interacts with it using actuators (e.g. motors). The software must determine the robots location and position, locate the objects it must interact with, move to them and manipulate them, all without human intervention. Autonomous operation is among the most advanced aspects of FRC competition; the Autonomous portion of each competition is short (15 seconds at the start of each 2 minute match) because many teams are not able to field robots with sophisticated Autonomous operation.

Exercise: robot turtle

The simplest example of programming a robot for autonomous operation is "turtle graphics" where you program a robotic turtle to draw things using a pen attached to its tail. You give the robot simple instructions like (RIGHT 90 to tell the robot to turn 90-degrees to the right) and the robot does whatever you tell it to with the pen dragging behind it. If you give the robot clever instructions, you can make it draw anything.

  • Materials needed: computer with web browser and internet connection, patience
  • Activties:
    • Launch browser and go to the [http://www.sonic.net/~nbs/webturtle/ the robot turtle simulator]
    • Open the list of commands you can use to control the turtle in a separate tab or window
    • Click the "Start a new drawing" link
    • In the box on the right, enter a set of instructions for the turtle robot; you can see examples here
    • Click the Draw It button to see the results
    • Experiment, look at and try examples
  • What happened: Using simple instructions, you can program a robot to operate autonomously and achieve surprisingly sophisticated results.

It's important to note that this is WAY simpler than programming a real-world robot. The turtle is an ideal robot operating in an ideal world. It has no obstacles to avoid, it doesn't need to find a target (it has no eyes!), the terrain is perfect as is its traction, etc. With a real robot, even simple things like moving forward in a straight line are actually pretty complex: the motors that power each wheel will vary slightly in speed and strength so applying the same power to each motor will not result in them turning the robot wheels the same amount so the robot will turn unintentionally. Even worse, the robot wheels won't have equal traction with the ground (especially if the robot has no mechanical suspension)...often one wheel on a 4 wheel robot will have little or no traction at all! The terrain the robot is traversing may have obstacles, bumps, ramps, etc. So even the act of driving forward in a straight line is actually fairly challenging. In order to allow simple operations like driving forward in a straight line, Control Systems students must make use of sensors to continuously monitor the robot's environment (e.g. a compass to determine orientation, a gyroscope to determine when the robot is turning, sensors to determine how fast each wheel is turning, etc.). The students write software to monitor these sensors and continuously adjust power to each motor to achieve the desired results.

Attachments (1)

Download all attachments as: .zip