Wheeled Robots

Post on 19-Jan-2016

76 views 1 download

Tags:

description

Wheeled Robots. ~ 1.5 cm to a side temperature sensor & two motors travels 1 inch in 3 seconds untethered !!. Other mini machines. Pocketbot. 55mm dia. base. radio unit. Khepera. linear vision. gripper. “Cricket”. video. Forward Kinematics of Differential drive. - PowerPoint PPT Presentation

Transcript of Wheeled Robots

Wheeled RobotsWheeled Robots

~ 1.5 cm to a side

temperature sensor & two motors

travels 1 inch in 3 seconds

untethered !!

Other mini machinesOther mini machinesPocketbot

Khepera

“Cricket”

radio unit

linear vision

gripper

video

55mm dia. base

Forward Forward Kinematics of Kinematics of Differential Differential

drivedrive

1) Specify system measurements

2) Determine the point (the radius) around which the robot is turning.

3) Determine the speed at which the robot is turning to obtain the robot velocity.

4) Integrate to find position.

Kinematics of Differential driveKinematics of Differential driveDifferential Drive is the most common kinematic choice

All of the miniature robots…

Pioneer, Rug warrior

- difference in wheels’ speeds determines its turning angle

VR

VL

Questions (forward kinematics)

Given the wheel’s velocities or positions, what is the robot’s velocity/position ?

Are there any inherent system constraints?

1) Specify system measurements

VR

VL

(assume a wheel radius of 1)

x

y

2d

- consider possible coordinate systems

Kinematics of Differential driveKinematics of Differential drive

1) Specify system measurements

VR

VL

(assume a wheel radius of 1)

x

y

2d

- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.

Kinematics of Differential drive – Kinematics of Differential drive – radius of turningradius of turning

ICC “instantaneous center of curvature”

1) Specify system measurements

VR

VL

(assume a wheel radius of 1)

x

y

2d

- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.

ICC “instantaneous center of curvature”

- to minimize wheel slippage, this point (the ICC) must lie at the intersection of the wheels’ axles- each wheel must be traveling at the same angular velocity

Kinematics of Differential drive – Kinematics of Differential drive – angular velocityangular velocity

= angular velocity

1) Specify system measurements

VR

VL

(assume a wheel radius of 1)

x

y

2d

- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.

ICC “instantaneous center of curvature”

- to minimize wheel slippage, this point (the ICC) must lie at the intersection of the wheels’ axles- each wheel must be traveling at the same angular velocity around the ICC

Kinematics of Differential driveKinematics of Differential drive

1) Specify system measurements

VR

VL

(assume a wheel radius of 1)

2d

- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.

ICC

- each wheel must be traveling at the same angular velocity around the ICC

Rrobot’s turning radius

3) Determine the robot’s speed around the ICC and its linear velocity

R+d) = VL

R-d) = VR

x

y

Kinematics of Differential driveKinematics of Differential drive

1) Specify system measurements

VR

VL

(assume a wheel radius of 1)

2d

- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.

ICC

- each wheel must be traveling at the same angular velocity around the ICC

Rrobot’s turning radius

3) Determine the robot’s speed around the ICC and then linear velocity

R+d) = VL

R-d) = VR

Thus, = ( VR - VL ) / 2d

R = 2d ( VR + VL ) / ( VR - VL )

x

y

Kinematics of Differential driveKinematics of Differential drive

ICC “instantaneous center of curvature”

1) Specify system measurements

VR

VL

2d

- consider possible coordinate systems2) Determine the point (the radius) around which the robot is turning.

ICC

- each wheel must be traveling at the same angular velocity around the ICC

Rrobot’s turning radius

3) Determine the robot’s speed around the ICC and then linear velocity

R+d) = VL

R-d) = VR

Thus, = ( VR - VL ) / 2d

R = 2d ( VR + VL ) / ( VR - VL )

x

y

So, the robot’s velocityrobot’s velocity is V = R = ( VR + VL ) / 2

Kinematics of Differential drive – robot’s Kinematics of Differential drive – robot’s velocityvelocity

4) Integrate to obtain position

VR

VL

2d

ICC

R(t)robot’s turning radius

(t)

= ( VR - VL ) / 2d

R = 2d ( VR + VL ) / ( VR - VL )

V = R = ( VR + VL ) / 2What has to happen to change the ICC ?

Vx = V(t) cos((t))

Vy = V(t) sin((t))

with

x

y

Kinematics of Differential drive – Kinematics of Differential drive – integrate to obtain positionintegrate to obtain position

ICC “instantaneous center of curvature”

V(t)

Vx(t)

4) Integrate to obtain position

VR

VL

2d

ICC

R(t)robot’s turning radius

(t)

= ( VR - VL ) / 2d

R = 2d ( VR + VL ) / ( VR - VL )

V = R = ( VR + VL ) / 2

Vx = V(t) cos((t))

Vy = V(t) sin((t))

with

x

y

x(t) = ∫ V(t) cos((t)) dt

y(t) = ∫ V(t) sin((t)) dt

(t) = ∫ (t) dt

Thus,

Kinematics of Differential driveKinematics of Differential drive

Velocity Components

VR

VL

2d

ICC

R(t)robot’s turning radius

(t)

Thus,

= ( VR - VL ) / 2d

R = 2d ( VR + VL ) / ( VR - VL )

V = R = ( VR + VL ) / 2What has to happen to change the ICC ?

Vx = V(t) cos((t))

Vy = V(t) sin((t))

x(t) = V(t) cos((t)) dt

y(t) = V(t) sin((t)) dt

(t) = (t) dt

with

x

y

Kinematics

Kinematics of Differential drive – Kinematics of Differential drive – velocity componentsvelocity components

speed

ForwardForward

Kinematics Kinematics

of Synchroof Synchro

DriveDrive

Nomad 200 wheels rotate in tandem and remain parallel

all of the wheels are driven at the same speed

Where is the ICC ?

Kinematics of Synchro drive – Kinematics of Synchro drive – wheels wheels synchronizedsynchronized

Nomad 200 wheels rotate in tandem and remain parallel all of the wheels are driven at the same speed

x

y

Vwheels

Vrobot = Vwheels

robot = wheels

x(t) = Vwheels(t) cos((t)) dt

y(t) = Vwheels(t) sin((t)) dt

(t) = (t) dtposition

velocity

simpler to control, but ...

ICC at

Kinematics of Synchro drive – Kinematics of Synchro drive – velocity and velocity and positionposition

Nomad 200 wheels rotate in tandem and remain parallel all of the wheels are driven at the same speed

Question (forward kinematics)

Given the wheel’s velocities or positions, what is the robot’s velocity/position ?

Are there any inherent system constraints?

1) Choose a robot coordinate system

2) Determine the point (the radius) around which the robot is turning.

3) Determine the speed at which the robot is turning to obtain the robot velocity.

4) Integrate to find position.

Kinematics of Synchro drive – Kinematics of Synchro drive – forward kinematicsforward kinematics

Synchro Drive Synchro Drive using Legousing Lego

more difficult to build.

this light sensor follows the direction of the wheels, but the RCX is stationary

also, four bump sensors and two motor encoders are included

But how do we get somewhere?

Inverse Inverse Kinematics of Kinematics of Differential Differential

DriveDrive

Inverse Kinematics – Inverse Kinematics – the problemthe problem

Key question: Given a desired position or velocity, what can we do to achieve it?

VR(t)

VL (t)

starting position final position

x

y

Key question: Given a desired position or velocity, what can we do to achieve it?

VR(t)

VL (t)

starting position final position

x

y

Inverse Kinematics – Inverse Kinematics – one solutionone solution

Key question: Given a desired position or velocity, what can we do to achieve it?

VR(t)

VL (t)

starting position final position

x

y

Inverse Kinematics – Inverse Kinematics – another solutionanother solution

Key question: Given a desired position or velocity, what can we do to achieve it?

VR(t)

VL (t)

starting position final position

x

y Need to solve these equations:

for VL (t) and VR(t) .

x = V(t) cos((t)) dt

y = V(t) sin((t)) dt

= (t) dt = ( VR - VL ) / 2d

V = R = ( VR + VL ) / 2

There are lots of solutions...

Inverse Kinematics – Inverse Kinematics – many numerical many numerical solutions to equationssolutions to equations

VR(t)

VL (t)

starting position final position

x

y Finding some solution is not hard, but finding the “best” solution is very difficult...

• quickest time• most energy efficient• smoothest velocity profiles

VL (t)

tVL (t)

Key question: Given a desired position or velocity, what can we do to achieve it?

It all depends on who gets to define “best”...

Inverse Kinematics – Inverse Kinematics – finding the best finding the best solutionsolution

Usual approach: decompose the problem and control only a few DOF at a time

VR(t)

VL (t)

starting position final position

x

y

Differential Drive

Inverse Kinematics - Inverse Kinematics - decompositiondecomposition

Usual approach: decompose the problem and control only a few DOF at a time

VR(t)

VL (t)

starting position final position

x

y

Differential Drive

(1) turn so that the wheels are parallel to the line between the original and final position of the robot origin.-VL (t) = VR (t) = Vmax

Inverse Kinematics – Inverse Kinematics – decomposition for decomposition for Differential DriveDifferential Drive

Usual approach: decompose the problem and control only a few DOF at a time

VR(t)

VL (t)

starting position final position

x

y

Differential Drive

(1) turn so that the wheels are parallel to the line between the original and final position of the robot origin.

(2) drive straight until the robot’s origin coincides with the destination

-VL (t) = VR (t) = Vmax

VL (t) = VR (t) = Vmax

Inverse KinematicsInverse Kinematics

Usual approach: decompose the problem and control only a few DOF at a time

VR(t)

VL (t)

starting position final position

x

y

Differential Drive

(1) turn so that the wheels are parallel to the line between the original and final position of the robot origin.

(2) drive straight until the robot’s origin coincides with the destination

(3) rotate again in order to achieve the desired final orientation

-VL (t) = VR (t) = Vmax

VL (t) = VR (t) = Vmax

-VL (t) = VR (t) = Vmax

VL (t)

tVR (t)

Inverse KinematicsInverse Kinematics

Inverse Inverse Kinematics of Kinematics of Synchro DriveSynchro Drive

Usual approach: decompose the problem and control only a few DOF at a time

V(t)

(t)

starting position

final position

x

y

Synchro Drive

(1) turn so that the wheels are parallel to the line between the original and final position of the robot origin.

(2) drive straight until the robot’s origin coincides with the destination

(3) rotate again in order to achieve the desired final orientation

(t) = max

V(t) = Vmax

(t) = max

sometimes it’s not so easy to isolate one or two DOF...

Inverse Kinematics of Synchro DriveInverse Kinematics of Synchro Drive

Other wheeled robotsOther wheeled robotstricycle drive

Doubly-steered bicycle

one more -- that roaming desk

one more -- that roaming tatami mat (holonomic) & the XR4000

Ackerman drive

• front wheel is powered and steerable• back wheels tag along...

Mecos tricycle-drive robot

Kinematics of Tricycle driveKinematics of Tricycle drive

Kinematics of Kinematics of Four-wheel Four-wheel

SteeringSteering

Four-wheel Four-wheel SteeringSteering

VBL

VBR

VFR

VFL

• wheels have limited turning angles

• no in-place rotation

• small space for parking and maneuvers

The kinematic challenges of parallel parking:

Ackerman SteeringAckerman Steering

VBL

VBR

VFR

VFL

x

y

ICC

R

L• Similar to a tricycle-drive robot

g

r

g

dd

VFR=sin(R)

r = gtan(R)

+ d

determines

VBL

VBR

VFR

VFL

x

y

ICC

R

L

But this is just the cab...

g

r

g

dd

VFR=sin(R)

r = gtan(R)

+ d

determines

The other wheel velocities are now fixed!

gVFL=sin(L)

L = tan-1(g / (r + d))

(r - d) = VBR

(r + d) = VBL

• Similar to a tricycle-drive robot

Ackerman SteeringAckerman Steering

The Big RigsThe Big Rigs

5 link trailer2 controlled angles

Applications

Parking two trailers

Holonomic Holonomic RobotsRobots

nonholonomicitynonholonomicityAll of the robots mentioned share an important

(if frustrating) property: they are

nonholonomic .

- makes it difficult to navigate between two arbitrary points

- need to resort to techniques like parallel parking

All of the robots mentioned share an important (if frustrating) property: they are nonholonomic.

By definition, a robot is nonholonomic if it can not move to change its pose instantaneously in all available directions.

- makes it difficult to navigate between two arbitrary points

- need to resort to techniques like parallel parking

i.e., the robot’s differential motion is constrained.

two DOF are freely controllable; the third is inaccessible

Synchro Drive

nonholonomicitynonholonomicity

Holonomic RobotsHolonomic RobotsNavigation is simplified considerably if a robot can move

instantaneously in any direction, i.e., is holonomic.

tradeoffs in locomotion/wheel design

Mecanum wheelsOmniwheels

if it can be done at all ...

Killough’s Platform

Nomad XR4000

synchro drive with offsets from the axis of rotation

Holonomic RobotsHolonomic Robots

Holonomic hype

“The PeopleBot is a highly holonomic platform, able to navigate in the

tightest of spaces…”

Holonomic HypeHolonomic Hype

• Not true• GUIDEBOT IS NOT HOLONOMIC• NEWTON IS HOLONOMIC – Omni

wheels• MCECSBOT IS HOLONOMIC –

MECCANO WHEELS

Sage -- a museum tour guide

Discover ‘97 -- Top 10 Innovation

Holonomic HypeHolonomic Hype

SourcesSources

• Prof. Maja Mataric

• Dr. Fred Martin

• Bryce Tucker and former PSU students

• A. Ferworn,

• Prof. Gaurav Sukhatme, USC Robotics Research Laboratory • Paul Hannah

• Reuven Granot, Technion

• Dodds, Harvey Mudd College