34
Ramviyas Nattanmai Parasuraman, [email protected] CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30 Introduction to Robotics CSCI/ARTI 4530/6530 Dr. Ramviyas Nattanmai Parasuraman, Asst. Professor, Computer Science, UGA 11/06/2018

Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, [email protected] CSCI/ATRI

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

Ramviyas Nattanmai Parasuraman, [email protected] CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30

Introduction to Robotics CSCI/ARTI 4530/6530

Dr. Ramviyas Nattanmai Parasuraman,Asst. Professor, Computer Science, UGA

11/06/2018

Page 2: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 2

Agenda

o For today

o Robot Motion Models – Odometry and Velocity Models

o Slides from Thrun et al. – ProbablisticRobotics

Page 3: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 3

Probabilistic Motion Models

To implement the Bayes Filter, we need the transition model p(x | x’, u).

The term p(x | x’, u) specifies a posterior probability, that action u carries the robot from x’ to x.

In this section we will specify, how p(x | x’, u) can be modeled based on the motion equations.

Page 4: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

4

Robot Motion• Robot motion is inherently uncertain.

• How can we model this uncertainty?

Page 5: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

5

Dynamic Bayesian Network for Controls, States, and Sensations

Page 6: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 6

Coordinate Systems

In general the configuration of a robot can be described by six parameters.

Three-dimensional cartesian coordinates plus three Euler angles pitch, roll, and tilt.

Throughout this section, we consider robots operating on a planar surface.

• The state space of such systems is three-dimensional (x,y,).

Page 7: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 7

Typical Motion Models

In practice, one often finds two types of motion models:

Odometry-based

Velocity-based (dead reckoning)

Odometry-based models are used when systems are equipped with wheel encoders.

Velocity-based models have to be applied when no wheel encoders are given.

They calculate the new pose based on the velocities and the time elapsed.

Page 8: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 8

Example Wheel Encoders

These modules require +5V and GND to power them, and provide a 0 to 5V output. They provide +5V output when they "see" white, and a 0V output when they "see" black.

These disks are manufactured

out of high quality laminated

color plastic to offer a very

crisp black to white transition.

This enables a wheel encoder

sensor to easily see the

transitions.

Source: http://www.active-robots.com/

Page 9: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 9

Dead Reckoning

Derived from “deduced reckoning.”

Mathematical procedure for determining the present location of a vehicle.

Achieved by calculating the current pose of the vehicle based on its velocities and the time elapsed.

Page 10: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 10

Reasons for Motion Errors

bump

ideal casedifferent wheel

diameters

carpet

and many more …

Page 11: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected]

Odometry Model

22 )'()'( yyxxtrans −+−=

−−−= )','(atan21 xxyyrot

12 ' rotrot −−=

• Robot moves from to .

• Odometry information .

,, yx ',',' yx

transrotrotu ,, 21=

trans1rot

2rot

,, yx

',',' yx

Page 12: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 12

The atan2 Function

• Extends the inverse tangent and correctly copes with the signs of x and y.

Page 13: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected]

Noise Model for Odometry

The measured motion is given by the true motion corrupted with noise.

||||11 211

ˆtransrotrotrot ++=

||||22 221

ˆtransrotrotrot ++=

|||| 2143

ˆrotrottranstranstrans +++=

Page 14: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected]

Typical Distributions for Probabilistic Motion Models

2

2

2

2

1

22

1)(

x

ex−

=

=

2

2

2

6

||6

6|x|if0

)(2

xx

Normal distribution Triangular distribution

Page 15: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 15

Calculating the Probability (zero-centered)

For a normal distribution

For a triangular distribution

1. Algorithm prob_normal_distribution(a,b):

2. return

1. Algorithm prob_triangular_distribution(a,b):

2. return

Page 16: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

16

Calculating the Posterior Given x, x’, and u

22 )'()'( yyxxtrans −+−=

−−−= )','(atan21 xxyyrot

12 ' rotrot −−=

22 )'()'(ˆ yyxxtrans −+−=

−−−= )','(atan2ˆ1 xxyyrot

12ˆ'ˆrotrot −−=

)ˆ|ˆ|,ˆ(prob t rans21rot11rot1rot1 +−=p

|))ˆ||ˆ(|ˆ,ˆ(prob rot2rot14trans3transtrans2 ++−=p

)ˆ|ˆ|,ˆ(prob t rans22rot12rot2rot3 +−=p

1. Algorithm motion_model_odometry(x,x’,u)

2.

3.

4.

5.

6.

7.

8.

9.

10.

11. return p1 · p2 · p3

odometry values (u)

values of interest (x,x’)

Page 17: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected]

Application

Repeated application of the sensor model for short movements.

Typical banana-shaped distributions obtained for 2d-projection of 3d posterior.

x’u

p(x|u,x’)

u

x’

Page 18: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

Sample-based Density Representation

Page 19: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

19

Sample-based Density Representation

Page 20: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 20

How to Sample from Normal or Triangular Distributions?

Sampling from a normal distribution

Sampling from a triangular distribution

1. Algorithm sample_normal_distribution(b):

2. return

1. Algorithm sample_triangular_distribution(b):

2. return

Page 21: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

21

Normally Distributed Samples

106 samples

Page 22: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

22

For Triangular Distribution

103 samples 104 samples

106 samples105 samples

Page 23: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 23

Rejection Sampling

Sampling from arbitrary distributions

1. Algorithm sample_distribution(f,b):

2. repeat

3.

4.

5. until ( )

6. return

Page 24: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 24

Example

Sampling from

Page 25: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

Sample Odometry Motion Model1. Algorithm sample_motion_model(u, x):

1.

2.

3.

4.

5.

6.

7. Return

)||sample(ˆ21111 transrotrotrot ++=

|))||(|sample(ˆ2143 rotrottranstranstrans +++=

)||sample(ˆ22122 transrotrotrot ++=

)ˆcos(ˆ' 1rottransxx ++=

)ˆsin(ˆ' 1rottransyy ++=

21ˆˆ' rotrot ++=

',',' yx

,,,,, 21 yxxu transrotrot ==

sample_normal_distribution

Page 26: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

Sampling from Our Motion Model

Start

Page 27: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

Examples (Odometry-Based)

Page 28: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

28

Velocity-Based Model

Page 29: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

29

Equation for the Velocity Model

Center of circle:

with

Page 30: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

30

Posterior Probability for Velocity Model

Page 31: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

31

Sampling from Velocity Model

Page 32: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

Examples (velocity based)

Page 33: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

Map-Consistent Motion Model

)',|( xuxp ),',|( mxuxp

)',|()|(),',|( xuxpmxpmxuxp =Approximation:

Page 34: Introduction to Robotics CSCI/ARTI 4530/6530cobweb.cs.uga.edu/~ramviyas/docs/csx530_fall2018/lecture30/RobotMotionModels.pdfRamviyas Nattanmai Parasuraman, ramviyas@uga.edu CSCI/ATRI

CSCI/ATRI 4530/6530 – Introduction to Robotics – Lecture 30Ramviyas Nattanmai Parasuraman

CVAP, KTH SwedenRamviyas Nattanmai Parasuraman, [email protected] 34

Summary

We discussed motion models for odometry-based and velocity-based systems

We discussed ways to calculate the posterior probability p(x| x’,

u).

We also described how to sample from p(x| x’, u).

Typically the calculations are done in fixed time intervals t.

In practice, the parameters of the models have to be learned.

We also discussed an extended motion model that takes the map into account.