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

introduction to experimental robotics csci 1108 lecture 2
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Introduction to Experimental Robotics CSCI 1108 — Lecture 2 Introduction to Aseba

CSCI 1108 Lecture 2 1 / 18

slide-2
SLIDE 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

slide-3
SLIDE 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

slide-4
SLIDE 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

slide-5
SLIDE 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 control program.

CSCI 1108 Lecture 2 5 / 18

slide-6
SLIDE 6

Sensors and Actuators

CSCI 1108 Lecture 2 6 / 18

slide-7
SLIDE 7

The Sense-Decide-Act Framework

CSCI 1108 Lecture 2 7 / 18

slide-8
SLIDE 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

slide-9
SLIDE 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

  • f 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

slide-10
SLIDE 10

Aseba Studio

CSCI 1108 Lecture 2 10 / 18

slide-11
SLIDE 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

slide-12
SLIDE 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

slide-13
SLIDE 13

A Sample Program

var speed = 100 motor.left.target = 0 motor.right.target = 0

  • nevent button.forward

motor.left.target = speed motor.right.target = speed

  • nevent button.backward

motor.left.target = 0 motor.right.target = 0

  • nevent button.left

motor.left.target = -speed motor.right.target = speed

  • nevent button.right

motor.left.target = speed motor.right.target = -speed

Key Idea: Actuators are actually controlled by setting variables that describe them

CSCI 1108 Lecture 2 13 / 18

slide-14
SLIDE 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

slide-15
SLIDE 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).

  • nevent 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

slide-16
SLIDE 16

Sensors

CSCI 1108 Lecture 2 16 / 18

slide-17
SLIDE 17

Actuators

CSCI 1108 Lecture 2 17 / 18

slide-18
SLIDE 18

An Example

CSCI 1108 Lecture 2 18 / 18