Lesson 2 –Locomotion and Hardware Anders Lyhne Christensen...

Post on 04-Jul-2020

0 views 0 download

Transcript of Lesson 2 –Locomotion and Hardware Anders Lyhne Christensen...

INTRODUCTION TO AUTONOMOUS

MOBILE ROBOTS

Lesson 2 – Locomotion and Hardware

Anders Lyhne Christensen, D6.05, anders.christensen@iscte.pt

Content

� Locomotion in Nature and in Robots

� Legged locomotion

� Wheeled locomotion

� Differential drive kinematics

Locomotion in Nature

Locomotion in Nature

Examples of different types of

robot locomotion

Spirit (NASA) ACM-R5 (Hirose)

NAO (Aldebaran Robotics)Quadrobot robot (Rus/MIT)

Grasshopper (Floreano/EPFL)

Issues in Ground-based Locomotion

� Stability� Number and geometry of contact points

� Center of gravity

� Static/dynamic stability

� Inclination of terrain

� Characteristics of contact� Contact point, size and shape

� Angle of contact

� Friction

� Type of environment� Structure

� Medium (e.g. water, air, soft or hard ground)

Legged motion

� Advantages� Adaptability and maneuverability on rough terrain

� Only a set of contact points are required (holes can be crossed)

� Legs can be used to manipulate objects (think football)

� Disadvantages: � Power

� Mechanical complexity

Degrees of Freedom

Two types of legs with 3 degrees of freedom

Robot example

Walking/galloping on four legs

Static walking with six legs

It is not always easy…

Wheeled

robots

with 2 or

3 wheels

Wheeled

robots

with 4

wheels

Wheeled

robots

with 6

wheels

Omni-directional

motion

Differential drive kinematics 1/3(x, y): Position in the global

frame.

θ: Orientation in the global frame.

ω: Rate of rotationvl : Velocity of left wheel.

vr : Velocity of right

wheel.

l: Distance between

the wheels.

ICC: Instantaneous Center

of Curvature.

R: Signed distance from

ICC to the midpoint

between the wheels.

Differential drive kinematics 2/3

lr

rl

vv

vvlR

+=

2

l

r

vlR

vlR

=−

=+

)2/(

)2/(

ω

ω

General description of a robot turning robot:

Differential drive robot:

Differential drive kinematics 3/3

Odometry and estimation errors:

Odometry is the use of data from the movement of actuators to

estimate change in position over time. Odometry is used by some

robots, whether they be legged or wheeled, to estimate (not determine)

their position relative to a starting location. [Wikipedia, January, 2010]

Potential sources of estimation errors:

- Motor calibration

- Acceleration

- Wheel size

- Slippage

- Surface

Robot hardware – Other actuators

Motors are the common among mobile robots, however, numerous other actuators exist, for instance:

� Pneumatic actuators

� Hydraulic actuators

�Thrusters

�Speakers

� Light emitting diodes

� …

Robot hardware - Sensors

Proprioceptive sensors measure values internal to the system (robot); for example, motor speed, wheel load, robot arm joint angles, battery voltage.

Exteroceptive sensors acquire information from the robot’s environment; for example, distance measurements, light intensity, sound amplitude. Hence exteroceptive sensor measurements are interpreted by the robot in order to extract meaningful environmental features.

Active sensors emit energy into the environment, then measure the environmental reaction. Examples of active sensors include laser scanners, ultra sonic sensors, infrared sensors.

Passive sensors measure ambient environmental energy entering the sensor. Examples of passive sensors include temperature probes, microphones, and CCD or CMOS cameras.

Sensors can be divided into 2 x 2 classes, namely proprioceptive vs.

exteroceptive sensors and active vs. passive sensors.

Today’s taskBuild a small application in Java that simulates differential drive

kinematics. The class should implement the following methods:

public class DifferentialDriveKinematics {

public DifferentialDriveKinematics(double leftWheelDiameter,

double rightWheelDiameter,

double distanceBetweenWheels)

public void nextStep( double angularSpeedOfLeftWheelInDegrees, double angularSpeedOfRightWheelInDegrees)

public double getX() ;

public double getY() ;

}

Assume that the robot starts at position (0, 0) and that nextStep() is called 10 times per second.

Today’s task

� Try to chance the wheel diameter slightly of one of the wheels and estimate the difference in terms of where a robot ends up after 10 seconds, 1 minute, and 10 minutes.

� Try to add a small amount of random noise to the robot’s motion.

� Try to compare the results of your computer simulation with the results on the real robot assuming different speeds.

Literature

“Introduction to Autonomous Mobile Robots”,

R. Siegwart & I. Nourbakhsh, Chapters 2 and 3.

“Walking Machines, an Introduction to Legged

Robots”, D.J. Todd, Kogan Page Ltd, 1985.