introduction to robotics csci/arti...
TRANSCRIPT
![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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040512/5e618df35fc9c375f27d2b23/html5/thumbnails/34.jpg)
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.