CTSPlanner
Sign-in not configured
Computing Science

CSE3240 Robotics Programming 3

Advanced · 1 credit · BIT - Business, Admin, Finance and IT

Description
Students continue their work in robotics programming by adding object-oriented programming (OOP) approaches to their skill set. In the process, they learn how to adapt their older procedure-based approaches to an object-oriented approach. They learn how to use object-oriented design approaches to design and write programs that use objects associated with one another in a client/server relationship.
Prerequisite
CSE2240: Robotics Programming 2 CSE2110: Procedural Programming 1
Parameters
Access to appropriate computer equipment, software, support materials and the Internet. More specifically, students must have access to either the physical (real) or virtual (simulated) robotic environments they will require to design, write and debug Robot Control Language (RCL) scripts or programs.
Supporting courses
CSE3010: Computer Science 3 CSE3110: Iterative Algorithm 1 CSE3120: Object-oriented Programming 1 ELT3150: Robotics 3 ELT3180: Robotics Vision Systems ELT3190: Robotics Kinematics & Behaviour ELT3200: Robotics Artificial Intelligence

Outcomes The student will:

  • 1 demonstrate an understanding of basic OOP approaches and how they can be used in robotics

    • 1.1 demonstrate an understanding of:

      • 1.1.1 classes and objects that can be readily mapped to specific subsections of a robot’s architecture

      • 1.1.2 class hierarchies to decompose complex robotic tasks into subtasks improving both the maintainability and extendibility of the programs

      • 1.1.3 potential code reuse both in the same and in other robotics programs

      • 1.1.4 the promotion of data hiding and information protection in robotics programs

      • 1.1.5 enhanced readability of robotics programs

      • 1.1.6 reduced side effect errors

  • 2 demonstrate an understanding of basic OOP approaches and how they can be used to create class libraries

    • 2.1 demonstrate how they:

      • 2.1.1 have the potential to improve design, coding and debugging efficiencies through the reduction of time spent and errors generated

      • 2.1.2 facilitate the development of higher levels of robotic artificial intelligence leading to programs that display greater agency and/or autonomy

  • 3 design a robotics system consisting of at least one robot, associated control systems and environment that uses OOP approaches to carry out a set of predetermined tasks

    • 3.1 describe and diagram the environment in which the robot will be required to operate by:

      • 3.1.1 identifying the elements in the environment that are to be manipulated by the robot and determining their location

      • 3.1.2 identifying the elements in the environment to be detected by the robot’s sensors and determining their location

      • 3.1.3 determining the type and location of internal barriers in the environment

      • 3.1.4 setting the outer limits of the environment

    • 3.2 identify the general tasks the robot will be required to carry out including:

      • 3.2.1 use an appropriate object-oriented approach to break those tasks into simpler tasks, grouping them into sets of related behaviours and sequencing those behaviours, where appropriate

      • 3.2.2 draft a conceptual model of the robot’s behaviour that reflects the task behaviours the robot will be expected to carry out

    • 3.3 identify the capabilities the robot will require to carry out the tasks

    • 3.4 determine the control approach to be used including what level of operator control will be required if the robot cannot support a fully autonomous mode of operation

    • 3.5 design the robot using the tasks to be accomplished, proposed environment, required capabilities and control approach as parameters

    • 3.6 check your design for congruency against the task list to be accomplished and with the proposed environmental specifications

    • 3.7 modify the design, as required

    • 3.8 carry out the design process sequentially using the iterative and incremental approaches associated with object-oriented design and development

  • 4 use an OOP approach to build the environment, robot and controlling mechanism called for by the design

    • 4.1 construct that portion of the environment required for the first task or tasks on the task sequence

    • 4.2 assemble as much of the robot, as is required, to accomplish those tasks

    • 4.3 write algorithms that use OOP approaches to outline how the first set of tasks is to be accomplished including:

      • 4.3.1 create a general design that reflects the robot’s knowledge of the domain, allows for the acceptance of required data (sense), uses that data in conjunction with the domain model to arrive at decisions (plan) and provides the ability to act (action) to carry out the tasks

      • 4.3.2 use an incremental and stepwise approach to refine the design into a more concrete form such as a set of class or object diagrams showing the key objects and their relationship

      • 4.3.3 refine the design identifying the client/server relationship among the objects and determining the nature of the data or messages that need to be passed between objects

      • 4.3.4 design the objects’ interface; e.g., public methods or functions to accommodate the data or messages that need to be passed between objects

      • 4.3.5 draft an informal sequence indicating the flow of messages in the system

      • 4.3.6 complete the object design by adding the private methods, functions and data structures required to implement the various objects

      • 4.3.7 use appropriate techniques to determine if the algorithm will achieve the original intent

    • 4.4 use an object-oriented RCL to translate the algorithms into a program including:

      • 4.4.1 use a technique such as iterative prototyping to break the algorithm or design into functional units or modules that can be encoded using object-oriented approaches

      • 4.4.2 deal with each section; in turn, create the classes necessary to instantiate the objects called for by the design using built-in and other available class libraries, where possible

      • 4.4.3 establish the client/server relationships among the classes, as called for by the design, being sure to maintain appropriate access levels to ensure cooperation while preserving boundaries

      • 4.4.4 pass data between the subprograms without unintended side effects and modify the sections, as required

      • 4.4.5 use internal and external documentation

    • 4.5 load and execute the program, and track and eradicate errors including:

      • 4.5.1 test each of the physical subsystems of the robot(s) to eliminate engineering errors

      • 4.5.2 test 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

      • 4.5.3 use self-test code and check points in each module, as well as observation, to eliminate run-time and internal logic errors

      • 4.5.4 compare the robot’s actions with the intent of the algorithm

      • 4.5.5 modify the original task list, environment, algorithm and/or program, as required

    • 4.6 participate in intermittent critiques throughout the iterative process; e.g., planning, analysis, design, testing, evaluation

  • 5 demonstrate basic competencies

    • 5.1 demonstrate fundamental skills to:

      • 5.1.1 communicate

      • 5.1.2 manage information

      • 5.1.3 use numbers

      • 5.1.4 think and solve problems

    • 5.2 demonstrate personal management skills to:

      • 5.2.1 demonstrate positive attitudes and behaviours

      • 5.2.2 be responsible

      • 5.2.3 be adaptable

      • 5.2.4 learn continuously

      • 5.2.5 work safely

    • 5.3 demonstrate teamwork skills to:

      • 5.3.1 work with others

      • 5.3.2 participate in projects and tasks

  • 6 create a transitional strategy to accommodate personal changes and build personal values

    • 6.1 identify short-term and long-term goals

    • 6.2 identify steps to achieve goals

Program of Studies 2009. Source document, © Alberta Education.