Presentation is loading. Please wait.

Presentation is loading. Please wait.

Forward Kinematics and Configuration Space

Similar presentations


Presentation on theme: "Forward Kinematics and Configuration Space"— Presentation transcript:

1 Forward Kinematics and Configuration Space
Kris Hauser ECE 383 / ME 442 Fall 2015 1

2 Agenda Principles Ch , 3.8 Planning Algorithms Ch

3 Robots have different shapes and kinematics! What is a motion?

4 Idea: Reduce robot to a point  Configuration Space
Feasible space Forbidden space

5 Configuration Space A robot configuration is a specification of the transforms of all links relative to a fixed coordinate system Usually a configuration is expressed as a “vector” of parameters q=(q1,…,qn) q1 q2 q3 qn

6 Rigid Robot 3-parameter representation: q = (x,y,q)
workspace robot reference direction q y reference point x 3-parameter representation: q = (x,y,q) In a 3-D workspace q would be of the form (x,y,z,a,b,g)

7 Articulated Robot q1 q2 q = (q1,q2,…,q10)

8 Protein

9 Configuration Space q y x Space of all its possible configurations
But the topology of this space is in general not that of a Cartesian space q q’ 3-D cylinder embedded in 4-D space y q robot x x y q 2p S1 R2S1

10 Configuration Space C = S1 x S1
Space of all its possible configurations But the topology of this space is in general not that of a Cartesian space C = S1 x S1

11 Configuration Space C = S1xS1 Space of all its possible configurations
But the topology of this space is in general not that of a Cartesian space C = S1xS1

12 Configuration Space C = S1xS1 Space of all its possible configurations
But the topology of this space is in general not that of a Cartesian space C = S1xS1

13 What is its topology? q1 q2 (S1)7xI3 (I: Interval of reals)

14 Structure of Configuration Space
It is a manifold, i.e., for each point q, there is a 1-to-1 map between a neighborhood of q and a ball in Cartesian space Rn, where n is the dimensionality of C This map is a local coordinate system called a chart. C can always be covered by a finite number of charts. Such a set is called an atlas

15 Example: A sphere

16 Rigid Robot in 2-D Workspace
reference direction q y reference point x 3-parameter representation: q = (x,y,q) with q  [0,2p). Two charts are needed Other representation: q = (x,y,cosq,sinq) C-space is a 3-D cylinder R2 x S embedded in a 4-D space

17 Notion of a (Geometric) Path
q 1 3 n 4 2 t(s) A path in C is a piece of continuous curve connecting two configurations q and q’: t : s  [0,1]  t (s)  C

18 Examples A straight line segment linearly interpolating between a and b t(s) = (1-s) a + s b What about interpolating orientations? A polynomial with coeffients c0,…,cn t(s) = c0 + c1s + … + cnsn Piecewise polynomials Piecewise linear Splines (B-spline, hermite splines are popular) Can be an arbitrary curve Only limited by your imagination and representation capabilities

19 Notion of Trajectory vs. Path
q 1 3 n 4 2 t(t) A trajectory is a path parameterized by time: t : t  [0,T]  t (t)  C

20 Translating & Rotating Rigid Robot in 2-D Workspace
x y q reference point robot reference direction workspace q x y 2p configuration space What is the placement of the robot in the workspace at configuration (0,0,0)?

21 Translating & Rotating Rigid Robot in 2-D Workspace
x y q reference point robot reference direction workspace q x y 2p configuration space What is the placement of the robot in the workspace at configuration (0,0,0)? 21

22 Translating & Rotating Rigid Robot in 2-D Workspace
x y q reference point robot reference direction workspace q x y 2p configuration space What is this path in the workspace? What would be the path in configuration space corresponding to a full rotation of the robot about point P? P

23 Every robot maps to a point in its configuration space ...
~40 D 15 D 6 D q 1 3 n 4 12 D ~ D

24 ... and every robot path is a curve in configuration space
q 1 3 n 4

25 … and obstacles (and other constraints) map to configuration space obstacles
q 1 3 n 4 25

26 Philosophy Reason about motion in the configuration space Reason about geometry in the workspace But we often need to relate movement to geometry and vice versa! How?

27 Forward Kinematics

28 Articulated Robot Robot: usually a rigid articulated structure
Geometric CAD models, relative to movable reference frames A configuration is a canonical representation that specifies the placement of those frames (forward kinematics) q1 q2

29 Serial robot classification
R: revolute P: prismatic Standard industrial robots: 6R 6R+1 (with gripper) 2RP (SCARA robots) 3P (xyz gantry) 6R SCARA Gantry

30 Parallel robots Often used to translate rotation => translation and vice versa (We’ll discuss how to model these next time) Gough-Stewart platform

31 Configuration space vs workspace
End effector: a designated “tool point” on the robot, usually at the terminal link (Reachable) workspace: range of reachable tool point positions / orientations given robot structure, joint limits

32 Forward Kinematics Given: A kinematic reference frame of the robot
Joint angles q1,…,qn Find rigid frames T1,…,Tn relative to T0 A frame T=(R,t) consists of a rotation R and a translation t so that T·x = R·x + t Make notation easy: use homogeneous coordinates Transformation composition goes from right to left: T1·T2 indicates the transformation T2 first, then T1

33 Kinematic Model of Articulated Robots: Reference Frame
T2ref T3ref L2 T4ref T0 L3 T1ref L1 L0

34 Rotating the first joint
T1(q1) = T1ref·R(q1) q1 T1(q1) T0 T1ref L0

35 Where is the second joint?
T2(q1) ? T2ref T0 q1

36 Where is the second joint?
T2ref T0 q1 T2parent(q1) = T1(q1) ·(T1ref)-1·T2ref

37 After rotating joint 2 q2 T2R T0 q1
T2(q1,q2) = T1(q1) ·(T1ref)-1·T2ref·R(q2)

38 After rotating joint 2 q2 T2R T0 q1
Denote T2->1ref = (T1ref)-1·T2ref (frame relative to parent) T2(q1,q2) = T1(q1) ·T2->1ref·R(q2)

39 Exercise Calculate the forward kinematics of this 2-joint arm
T1(q1) = T1ref·R(q1) T2(q1,q2) = T1(q1) ·T2->1ref·R(q2) 𝑇 1 𝑟𝑒𝑓 = 𝐿 𝑇 2 𝑟𝑒𝑓 = 𝐿 𝑅 𝑞 𝑖 = 𝑐 𝑖 − 𝑠 𝑖 0 𝑠 𝑖 𝑐 𝑖 with 𝑐 𝑖 ≡ cos 𝑞 𝑖 , 𝑠 𝑖 ≡ sin 𝑞 𝑖

40 General Formula Denote 𝑇 𝑖→𝑖−1 𝑟𝑒𝑓 = 𝑇 𝑖−1 𝑟𝑒𝑓 −1 𝑇 𝑖 𝑟𝑒𝑓 (ref frame relative to parent) 𝑇 𝑘 𝑞 1 ,…, 𝑞 𝑘 = 𝑖=1 𝑘 𝑇 𝑖→𝑖−1 𝑟𝑒𝑓 𝑅( 𝑞 𝑖 ) T2(q1,q2) T3(q1,..,q3) L2 T4(q1,…,q4) T0 L3 T1(q1) L1 L0

41 Generalization to tree structures
Topological sort: p[k] = parent of link k Denote 𝑇 𝑖→𝑝[𝑖] 𝑟𝑒𝑓 = 𝑇 𝑝 𝑖 𝑟𝑒𝑓 −1 𝑇 𝑖 𝑟𝑒𝑓 (frame i relative to parent) Let A(i) be the list of ancestors of i (sorted from root to i) 𝑇 𝑘 𝑞 1 ,…, 𝑞 𝑘 = 𝑖∈𝐴(𝑘) 𝑇 𝑖→𝑝[𝑖] 𝑟𝑒𝑓 𝑅( 𝑞 𝑖 )

42 To 3D… Much the same, except joint axis must be defined (relative to parent) Angle-axis parameterization

43 Generalizations Prismatic joints Ball joints Cylindrical joints
Spirals Free-floating bases From LaValle, Planning Algorithms

44 Robot kinematics (summary)
A chain- or tree-structured robot’s kinematics are defined by A number of links: 𝑛 A list of parent indices 𝑝[1],…,𝑝[𝑛] (nil denotes world frame) The links must be sorted such that p[i] < i A list of transforms from link to parent, at the reference configuration: 𝑇 1→𝑝 1 𝑟𝑒𝑓 , …, 𝑇 𝑛→𝑝 𝑛 𝑟𝑒𝑓 May also have joint limits: 𝑞 1,𝑚𝑖𝑛 ,…, 𝑞 𝑛,𝑚𝑖𝑛 and 𝑞 1,𝑚𝑎𝑥 ,…, 𝑞 𝑛,𝑚𝑎𝑥 An indication of whether each link is connected to its parent via a rotational (revolute) or a translational (prismatic) joint, and the axis of rotation or translation Given kinematics and the configuration 𝑞=( 𝑞 1 ,…, 𝑞 𝑛 ), can compute the transforms for each link using one forward pass

45 Forward pass Compute 𝑇 𝑖 𝑞 iteratively: For i=1,..,n: Done
If p[i]=nil, then: 𝑇 𝑖 𝑞 ← 𝑇 𝑖−>𝑝 𝑖 𝑟𝑒𝑓 ⋅ 𝑇 𝑖,𝑙𝑜𝑐𝑎𝑙 ( 𝑞 𝑖 ) Else: 𝑇 𝑖 𝑞 ← 𝑇 𝑝 𝑖 𝑞 ⋅ 𝑇 𝑖−>𝑝 𝑖 𝑟𝑒𝑓 ⋅ 𝑇 𝑖,𝑙𝑜𝑐𝑎𝑙 𝑞 𝑖 Done

46 Denavit-Hartenberg Convention
A more compact representation of a serial robot’s reference transforms and rotation/translation axes Convention: reference transform Z axes points along joint axes, X axes points along common normals between joint and parent’s joint. Reduces number of parameters to 4 per link I don’t prefer using it because sometimes it forces you to choose nonsensical reference frames. Just be aware it exists.

47 Modeling different joints
Revolute (rotational) joints: Define the axis of link i, 𝑣 𝑖 , as a unit vector in the local frame 𝑞 𝑖 gives counter-clockwise angle about axis Local transform is 𝑇 𝑖,𝑙𝑜𝑐𝑎𝑙 𝑞 𝑖 ≡ 𝑅 𝐴𝐴 𝑣 𝑖 , 𝑞 𝑖 Prismatic (translational) joints 𝑞 𝑖 gives translation distance about axis Local transform is 𝑇 𝑖,𝑙𝑜𝑐𝑎𝑙 𝑞 𝑖 = 𝐼 𝑞 𝑖 𝑣 𝑖 0 1 Screw joints Define the scaled axis of link i, 𝑣 𝑖 , as a vector in the local frame defining how much the screw translates given one radian clockwise turn about 𝑣 𝑖 𝑞 𝑖 gives counter-clockwise angle about axis 𝑣 𝑖 ≡ 𝑣 𝑖 / 𝑣 𝑖 Local transform is 𝑇 𝑖,𝑙𝑜𝑐𝑎𝑙 𝑞 𝑖 = 𝑅 𝐴𝐴 ( 𝑣 𝑖 , 𝑞 𝑖 ) 𝑞 𝑖 𝑣 𝑖 0 1

48 Exercise Suppose in an n-link chain, we’ve compute all the frames for configuration 𝑞. Now, only one joint angle i is changed from 𝑞 𝑖 −> 𝑞 𝑖 ’. How many operations must we perform to determine 𝑇 𝑛 (𝑞′)?

49 Next class (Analytical) inverse kinematics
Reading: Paul, R.  Robot manipulators: mathematics, programming, and control : the computer control of robot manipulators.  Chapter 4.


Download ppt "Forward Kinematics and Configuration Space"

Similar presentations


Ads by Google