Changes between Version 6 and Version 7 of SoftwareOverviewControl


Ignore:
Timestamp:
Sep 2, 2017, 10:55:54 AM (8 years ago)
Author:
David Albert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoftwareOverviewControl

    v6 v7  
    3636
    3737=== Autonomous Operation ===
    38 [[Image(http://files.shandymedia.com/wp-content/uploads/2017/07/26090104/Terminator.jpg,25%,left,nolink,margin=10)]]
     38[[Image(http://files.shandymedia.com/wp-content/uploads/2017/07/26090104/Terminator.jpg,25%,left,nolink,margin=25)]]
    3939
    4040At 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.
     
    4242'''Exercise''': robot turtle
    4343
    44 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.
     44The 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.
    4545
    4646 * Materials needed: computer with web browser and internet connection, patience
    4747 * Activties:
    48    * Launch browser and go to the [!http://www.sonic.net/~nbs/webturtle/ the robot turtle simulator]
    49    * Open the [http://www.sonic.net/~nbs/webturtle/commands/ list of commands] you can use to control the turtle in a separate tab or window
    50    * Click the "Start a new drawing" link
    51    * In the box on the right, enter a set of instructions for the turtle robot; you can see [http://www.sonic.net/~nbs/webturtle/examples/ examples here]
    52    * Click the Draw It button to see the results
    53    * Experiment, look at and try examples
     48     * Launch browser and go to the [!http://www.sonic.net/~nbs/webturtle/ the robot turtle simulator]
     49     * Open the [http://www.sonic.net/~nbs/webturtle/commands/ list of commands] you can use to control the turtle in a separate tab or window
     50     * Click the "Start a new drawing" link
     51     * In the box on the right, enter a set of instructions for the turtle robot; you can see [http://www.sonic.net/~nbs/webturtle/examples/ examples here]
     52     * Click the Draw It button to see the results
     53     * Experiment, look at and try examples
    5454 * What happened: Using simple instructions, you can program a robot to operate autonomously and achieve surprisingly sophisticated results.
    5555
    56 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.
     56It'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.