Linear algebra

advertisement
I400/I590/B659:
Intelligent Robotics
Preliminaries: Vectors
Lab 1
1. Install Klamp’t python API
2. In Klampt/Python/demos folder: run python gltemplate.py
../../data/athlete_fractal_1.xml
3. Navigate with the mouse (hold Shift and Ctrl to pan and
zoom) to get a good screenshot of the robot
4. Press ‘s’ to start simulating
5. Take a screenshot, submit it in .jpg or .png format
• Due next Wednesday
• Ask your peers / myself for help installing
• Document installation problems, email to me
(hauserk@indiana.edu)
Agenda
• Vector algebra: Representing and manipulating points and
directions in 2D, 3D, and higher dimensions
Vectors
• Represent physical quantities that exist in some “space”
• Both direction and magnitude
• Represent ordered collections of related numbers
• In this class:
• 2D and 3D: Positions, velocities, accelerations, forces, pixel
positions…
• Higher D: RGBA colors, configurations, robot-environment system
states, torques…
Example #1
• Bob is standing at point A. He moves north one meter. He then
moves east 2 meters. How far is he now from point A?
A
Example #1
• Bob is standing at point A. He moves north one meter. He then
moves east 2 meters. How far is he now from point A?
A
Example #1
• Bob is standing at point A. He moves north one meter. He then
moves east 2 meters. How far is he now from point A?
B
A
Example #1
• Bob is standing at point A. He moves north one meter. He then
moves east 2 meters. How far is he now from point A?
(2,1)
B
(0,0)
A
Example #1
• Bob is standing at point A. He moves north one meter. He then
moves east 2 meters. How far is he now from point A?
(2,1)
B
A
The displacement vector from A to B is š“šµ =
vertically for reasons to be discussed later)
2
(it is oriented
1
Notation
• A displacement vector starting at point A and ending at pint B
is denoted š“šµ
• Capitals
• Not used much in this class
• A plain vector will be denoted š‘„
• Point of origin is either unspecified, assumed, or does not need to
be made explicit to be meaningful (e.g., velocity)
• Lowercase
• Eventually we’ll drop the arrow
Example #1
• Bob is standing at point A. He moves north one meter. He then
moves east 2 meters. How far is he now from point A?
?
(2,1)
B
A
2
is 22 + 12 = 5.
1
This is also known as the norm of the vector and is denoted š“šµ .
The length of the vector š“šµ =
Norms
š‘Ž
• Definition: If š‘„ =
is a vector, then š‘„ ≡ š‘Ž2 + š‘ 2
š‘
• (Pythagorean theorem)
• [Subtle point: distance is not the same as distance traveled!
Bob traveled 3m, but ended up about 2.23m away from the
start]
Comment
• What about if Bob repeats the same procedure, arriving at
point C?
C
(2,1)
B
A
Comment
• What about if Bob repeats the same procedure, arriving at
point C?
(4,2)
C
(2,1)
B
A
Comment
• What about if Bob repeats the same procedure, arriving at
point C?
(4,2)
C
(2,1)
B
(0,0)
A
The displacement vector from A to B is?
The displacement vector from B to C is?
The displacement vector from A to C is?
2
1
Example #2: Multiplication
• Dan is standing at point A. He moves in the same direction
that Bob originally did, but goes 50% farther. Where does he
stand?
(2,1)
B
A
D
Example #2: Multiplication
• Dan is standing at point A. He moves in the same direction
that Bob originally did, but goes 50% farther. Where does he
stand?
(2,1)
D
B
A
Displacement vector from A to D is
š“š· = 1 + 0.5 ∗ š“šµ = 1.5 ∗
3
2
=
1.5
1
Scalar multiplication
• To differentiate it from a vector, a “regular number” is known
as a scalar
• Scalar-vector multiplication scales both elements of the vector
by the same amount. If a, b, and c are scalars, then:
š‘Ž
š‘š‘Ž
=
š‘
š‘š‘
• š‘
• It commutes:
• š‘
š‘Ž
š‘Ž
=
š‘
š‘
š‘
• Scalar division is the same as multiplying by 1/c
•
š‘Ž
š‘Ž
/š‘ =
š‘
š‘
1
š‘
=
š‘Ž/š‘
š‘/š‘
• [As usual, don’t divide by zero]
Scalar multiplication
• Scalar multiplication “passes through” the norm operation:
• š‘ š‘„ = |š‘| š‘„
• (Why?)
Points vs. Displacements
• A point X in space can be represented for the purposes of
calculations (out of the realm of pure thought) as a
displacement vector from some special reference point O,
called the origin
• The representation of a point P changes depending on the choice
of O
• When comparing or manipulating two points, their
representations as vectors must use the same origin!
• A displacement vector from point X to Y is the same regardless
of the choice of origin
• [Note: what about the orientation of the reference axes? More
later]
Example #3: Vector addition
• Suppose Bob is at B=(2,1). Bob then moves South 2 meters
and east 3 more meters, arriving at E. What are E’s
coordinates?
B
(2,1)
(3,-2)
A
E
Example #3: Vector addition
• Suppose Bob is at B=(2,1). Bob then moves South 2 meters
and east 3 more meters, arriving at E. What are E’s
coordinates?
š“šµ + šµšø = š“šø
B
(2,1)
(3,-2)
A
š“šø =
2
3
5
+
=
1
−2
−1
E
Vector addition š‘§ = š‘„ + š‘¦: produces a new vector in which š‘§ ‘s first
element is equal to the sum of the first elements of š‘„ and š‘¦, and its
second element is equal to the sum of the second elements.
Example #4: Vector
subtraction
• Dan is at back at D=(3,1.5). Along which vector would he have
to move in order to reach E=(5,-1)?
D
š“š· + š·šø = š“šø
(3,1.5)
š·šø = š“šø − š“š·
A
(5,-1)
E
š·šø =
3
2
5
−
=
1.5
−2.5
−1
Vector subtraction š‘§ = š‘„ − š‘¦: produces a new vector in which š‘§ ‘s first
element is equal to the first element of š‘„ minus the first element of š‘¦,
and its second element is equal to the second element of š‘„ minus the
first element of š‘¦.
Vector subtraction: another
view
• With normal numbers, š‘„ − š‘¦ = š‘„ + (−1 ∗ š‘¦)
• With vectors, š‘„ − š‘¦ = š‘„ + (−1 ∗ š‘¦)
• (Try it)
Distances
D
• How far is D from E?
(3,1.5)
A
?
(5,-1)
E
• Step 1: calculate š·šø = š“šø − š“š·
• Step 2: calculate the norm š·šø
• In other words, the distance between D and E is š“šø − š“š·
Interpolation
• To go from D to E gradually, you can use linear interpolation
(3,1.5)
D
A
(5,-1)
E
š‘ š‘¢ = š“š· + š‘¢ ∗ (š“šø − š“š·) for uļƒŽ[0,1] a scalar parameter
Or… š‘ š‘¢ = š“š· + š‘¢ ∗ š·šø
Or… š‘ š‘¢ = 1 − š‘¢ ∗ š“š· + š‘¢ ∗ š“šø
Higher dimensions
• Everything is exactly the same, but the vectors contain more
elements
š‘Ž
• 3D: š‘„ = š‘
š‘
š‘Ž
š‘
• 4D: š‘„ =
š‘
š‘‘
• Etc…
• Scalar-vector multiplication, vector addition and subtraction
remain essentially the same
Norms in higher dimensions
š‘Ž
• 3D: if š‘„ = š‘ , then š‘„ = š‘Ž2 + š‘ 2 + š‘ 2 (why?)
š‘
š‘Ž
š‘
• 4D: if š‘„ =
, then š‘„ = š‘Ž2 + š‘ 2 + š‘ 2 + š‘‘ 2
š‘
š‘‘
• Etc…
Standard vector spaces
•
•
•
•
Cartesian space
1D space: ā„
2D space: ā„2
Etc… ā„n
• It can be shown that any space of objects that transform like
vectors do, with scalar-vector multiplication and vector-vector
addition, is isomorphic to ā„n for some n*
*as long as it has finite dimension
Cheat sheet
• Notation for n-dimensional vectors:
• š‘„ = š‘„1 , … , š‘„š‘› , š‘¦ = š‘¦1 , … , š‘¦š‘› , etc
• Space of n-dimensional vectors: ā„n (Cartesian space)
•
•
•
•
Norm: š‘„ = š‘„12 + ā‹Æ + š‘„š‘›2
Scalar-vector multiplication: cš‘„ = š‘š‘„1 , … , š‘š‘„š‘›
Norms and scalar multiplications: š‘ š‘„ = |š‘| š‘„
Vector-vector addition:
• š‘„ + š‘¦ = š‘„1 + š‘¦1 , … , š‘„š‘› + š‘¦š‘›
• Vector-vector subtraction:
• š‘„ − š‘¦ = š‘„1 − š‘¦1 , … , š‘„š‘› − š‘¦š‘›
• No such thing as vector-vector multiplication, vector-scalar addition.
Implementation in Python
• Lists:
•
•
•
•
•
E.g., [2,1], or [0.5,-0.8]
Operators +, -, *, / do not work in the same way
Use klampt.vectorops.{add,sub,mul,div}
Norm: klampt.vectorops.norm
Distance: klampt.vectorops.distance
• Numpy arrays:
•
•
•
•
E.g., numpy.array([2,1]), or numpy.array([0.5,-0.8]),
Operators +, -, *, / work as desired
Norm: numpy.linalg.norm
Distance: numpy.linalg.norm(x-y)
Next time
• Matrix algebra, linear transformations (Principles A.E)
• No class on Monday
Download