introduction to experimental robotics csci 1108 lecture 2
play

Introduction to Experimental Robotics CSCI 1108 Lecture 2 - PowerPoint PPT Presentation

Introduction to Experimental Robotics CSCI 1108 Lecture 2 Introduction to Aseba CSCI 1108 Lecture 2 1 / 18 Administrivia For Section 2 (1-2:30pm): A note taker is required to assist one of your peers. If you are interested, please go to


  1. Introduction to Experimental Robotics CSCI 1108 — Lecture 2 Introduction to Aseba CSCI 1108 Lecture 2 1 / 18

  2. Administrivia For Section 2 (1-2:30pm): A note taker is required to assist one of your peers. If you are interested, please go to the Student Accessibility Centre, (Killam G28) for more information or send an email to notetaking@dal.ca. Reminder: The lab attendance is mandatory in this course. Make sure you are assigned to 2 labs/week . If not: Contact the Head TA for the class: Mitchell Kane (mkane@dal.ca) ASAP This course had equivalent credit to a “science with a lab” That requires 3 hours of Lab per week for credit. CSCI 1108 Lecture 2 2 / 18

  3. What is Robotics? “Robotics is the science of perceiving and manipulating the physical world through computer control devices” Sebastian Thrun, W. Burgard & D. Fox Probabilistic Robotics Sebastian Thrun, among many other things, led development of the robotic vehicle Stanley which won the 2005 DARPA Grand Challenge. He was a VP at Google, led the development of the Google self-driving car and is a professor at Stanford. “Robotics deals with the design, construction, operation, and use of robots, as well as computer systems for their control, sensory feedback, and information processing.” Wiki article on Robotics CSCI 1108 Lecture 2 3 / 18

  4. What is Robotics? There are many types of robots; they are used in many different environments and for many different uses: The self-driving car Collaborative Robots: Interacts with other robots Built to work alongside/with humans There are military robots, industrial robots, Search and Rescue robots. etc . Robots are diverse in form, shape and movement. The mechanical aspect is mostly the creator’s solution to completing the assigned task and dealing with the physics of the environment around it. For robots form follows function. CSCI 1108 Lecture 2 4 / 18

  5. Anatomy of A Robot Even though robots have diverse form and function, robots share certain types of components: Power Source: At present large are powered mostly by lead-acid batteries (like in cars). Other types of batteries like Li-Po, Ni-Cd, Ag-Cd, that are lightweight and more powerful are replacing the older types. Future power supplies: Solar, organic garbage (via anaerobic digestion)?, nuclear? Sensors: Robots, especially mobile robots, need to sense their environment, to be able to respond to certain changes. There are touch sensors, accelerometers, vision sensors, ultrasonic sensors etc. Controllers: The robot needs to make sense of the sensing data — and respond to the sensed data. The controller is a CPU or micro-controller like an Arduino that can run the CSCI 1108 Lecture 2 5 / 18 control program.

  6. Sensors and Actuators CSCI 1108 Lecture 2 6 / 18

  7. The Sense-Decide-Act Framework CSCI 1108 Lecture 2 7 / 18

  8. Classic Robotic Themes Actuators and Movement: Kinematics: basic movement geometry Differential movements: change in position. Dynamics: movement mechanics with forces. Sensors and Object Recognition: Computer Vision Localization: Kalman Filtering (provides estimates of hidden variables based on inaccurate/uncertain measurements). Provides a prediction of future state of the system. Ex. GPS receiver provides the location and velocity estimation, based on differential time of satellite’s signals arrival time measurements. SLAM ( Simultaneous Localization and CSCI 1108 Lecture 2 8 / 18

  9. Other Robotic Terms State: It is convenient to think of the state as the collection of all aspects of the robot and its environment that can impact the future. ( e.g. location of walls, the position, velocity of the robot, sensor value, pose etc . We will return to this in greater detail. Pose: A part of the state of the robot. Comprises of the location and orientation relative to a global coordinate system. For a rigid robot the pose is described by 6 state variables . The 3 Cartesian coordinates + the three angular coordinates (pitch, yaw & roll). Model: A simplified (mathematical) description of a system. Specifically, you will explore: sensor CSCI 1108 Lecture 2 9 / 18

  10. Aseba Studio CSCI 1108 Lecture 2 10 / 18

  11. Programming in Aseba Programs are text-based (Aseba also has a visual programming interface. We will not use that). Programming Environment: Aseba Studio Key Idea in this language: Event based programming . ◮ Events are triggered by sensors. ◮ Events are handled by event handlers , for which we write code. ◮ Event handlers start with the keyword: onevent ◮ Common programming model for interactive programs. ( e.g. www, computer interfaces etc ). CSCI 1108 Lecture 2 11 / 18

  12. The Four Parts of an Aseba Program Variable Declarations: – These begin with the var keyword. Initialization Code. – Anything except declarations. Event Handlers: – Begin with onevent keyword. Subroutines. – Begin with the sub keyword. CSCI 1108 Lecture 2 12 / 18

  13. A Sample Program var speed = 100 motor.left.target = 0 motor.right.target = 0 onevent button.forward motor.left.target = speed motor.right.target = speed onevent button.backward motor.left.target = 0 motor.right.target = 0 onevent button.left motor.left.target = -speed motor.right.target = speed onevent button.right motor.left.target = speed motor.right.target = -speed Key Idea: Actuators are actually controlled by CSCI 1108 Lecture 2 13 / 18 setting variables that describe them

  14. Sensors and Actuators Key Idea: All Sensors and Actuators are accessed by pre-defined variables. ◮ to control motors, assign value to motor variables. motor.left.target = 100 motor.right.target = 100 ◮ To check if an object is close, read the proximity varaible if prox.horizontal[2] > 1000 then . . . end Where are all the predefined variables listed? How frequently do we check sensor variables? CSCI 1108 Lecture 2 14 / 18

  15. How Frequently Should We Check Sensors? Key Idea: Sensors generate events & Event Handlers check sensors. Example: Proximity Sensors ( prox ) sensors generate 10 events/second (10 Hz). onevent prox if prox.horizontal[2] > 1000 then motor.left.target = 0 motor.right.target = 0 else motor.left.target = 100 motor.right.target = 100 end CSCI 1108 Lecture 2 15 / 18

  16. Sensors CSCI 1108 Lecture 2 16 / 18

  17. Actuators CSCI 1108 Lecture 2 17 / 18

  18. An Example CSCI 1108 Lecture 2 18 / 18

Recommend


More recommend