Bev Facey Community High

CSE1240: Robotics Programming 1

Students use an appropriate Robot Control Language (RCL) to design, develop, implement and debug robotics programs that employ standard structured programming constructs and simple data structures. In the process, they develop a general understanding of robots and the robotics environment.

Theory

  1. demonstrate a general understanding of robotics including the nature of robots, robotic control systems and the robotic environment

    • describe robots in general terms including:
      • build a general mental model of robotic architecture by outlining the characteristics that are common to all robots
      • describe the robotic characteristic of “agency”, the appearance of operating as autonomous agents and indicating the central role it plays in the concept of robot
      • indicate how robots interact with their environment
    • describe robotic control systems in general terms including:
      • describe the three robotic primitives associated with robotic behaviour and their role in robotic control
      • describe the three main approaches to robotic control
      • use the three robotic primitives to describe how each approach to robotic control is carried out
    • describe robotic environments in general terms including:
      • describe the delimited nature of the robotic environment
      • explain why robotic environments are circumscribed or limited in comparison with human environments
      • describe the ideal relationship between a robot and its environment
      • describe the issues associated with a mixed human/robot environment
    • compare and contrast virtual (simulated) robots and physical (real) robots in general terms including:
      • compare and contrast their architecture
      • compare and contrast their control systems
      • compare and contrast their environment
  2. use a general understanding of robotics to analyze a robot operating within its environment

    • describe its architecture
    • indicate how it displays “agency” or autonomous action
    • categorize its control system
    • describe its capabilities
    • describe its relationship with its environment
    • identify at least one task that the robot should be able to accomplish within its environment
    • explain how either the robot and/or its environment could be modified to increase the number and type of tasks it could accomplish

Practical

  1. design a robotics system consisting of at least one robot, associated control systems and environment capable of carrying out a simple set of predetermined tasks
    • identify the general tasks the robot will be required to carry out by:
      • breaking tasks into simpler tasks and continuing the process until the tasks are reduced to primitives
      • establishing the task sequence and creating a representation of those tasks
    • describe and illustrate the environment in which the robot will be required to operate by:
      • identifying elements of the environment that the robot will be able to manipulate
      • identifying manipulatable elements that will act as task resources and task obstacles
      • identifying variations in the environment that the robot will be able to detect; e.g., light, colour, sound
      • setting the outer limits of the environment
      • determining the location and type of internal barriers in the environment
      • incorporating safety elements into the environment that will protect both the humans and robots operating in the environment
    • identify the capabilities the robot will require to carry out set tasks including:
      • sensing requirements
      • mobility requirements
      • manipulation requirements
      • power requirements
      • processing requirements; e.g., both calculation and data storage
    • determine the control approach to be used to:
      • determine if the robot has the capacity for autonomous operation
      • determine what level of operator control will be required if the robot is not fully autonomous
    • design the robot using the tasks to be accomplished, proposed environment, required capabilities, and control approach as parameters to determine what:
      • type of kinematic chain or body will be required to provide a platform for the other components
      • actuators and end effectors will be required and how they will be mounted on the body
      • sensors will be required and how they will be mounted on the body
      • control components will be required and how they will be mounted on the body
      • power or energy components will be required and how they will be mounted on the body
    • check your design for congruency against the task list to be accomplished and with the proposed environmental specifications
    • modify the design, as required
    • carry out the design process sequentially using a top-down approach and employing stepwise refinement
  2. use an iterative process to build the environment, robot and controlling mechanism called for by the design
    • construct that portion of the environment required for the first task or tasks in the task sequence
    • assemble as much of the robot, as is required, to accomplish the task or tasks
    • write algorithms that use structured programming approaches to accomplish the task or set of tasks including:
      • use appropriate problem decomposition techniques to break the task into subtasks
      • identify the sense, plan and action requirements of each subtask
      • further decompose each subtask into smaller blocks, as required, using the appropriate structures to control program flow
      • write the algorithm in an approved format such as a structured chart or pseudocode
      • use appropriate techniques to determine if the algorithm will achieve the original intent
    • use an RCL capable of writing structured code to translate the algorithm for the set of tasks into a program including:
      • maintain the structure of the algorithm
      • use appropriate basic or primitive data types and variable and constant names, as required, to hold data
      • use literals and input commands to accept data from sensors to provide data for processing
      • use operators and basic processing idioms as required; e.g., accumulation, determination of maximum or minimum values
      • use appropriate selection and iteration structure; e.g., conditional, iterative blocks
      • use output commands to display processed data to the operator as well as activate actuators; e.g., motors, grippers
      • document appropriately
    • load and execute the program tracking and eradicating errors by:
      • testing each of the physical subsystems of the robot(s) to eliminate engineering errors
      • testing the robot(s) within the appropriate section of the environment to confirm that the robot is interacting with the environment as called for by the algorithm
      • using self-test code and check points, as well as observation, to eliminate run-time and internal logic errors
      • comparing the robot’s actions with the intent of the algorithm
      • modifying the original task list, environment, algorithm and/or program, as required
    • participate in interim critiques throughout the iterative process; e.g., planning, analysis, design, testing, evaluation