Forward Kinematics and Configurations

Slides:



Advertisements
Similar presentations
Configuration Space. Recap Represent environments as graphs –Paths are connected vertices –Make assumption that robot is a point Need to be able to use.
Advertisements

Links and Joints.
Configuration Space Course: Introduction to Autonomous Mobile Robotics Prof. Jaebyung Park Intelligent Systems & Robotics Lab. Division of Electronic Engineering.
University of Bridgeport
Introduction to ROBOTICS
CS B659: Principles of Intelligent Robot Motion Rigid Transformations.
Kinematics & Grasping Need to know: Representing mechanism geometry Standard configurations Degrees of freedom Grippers and graspability conditions Goal.
Kinematic Modelling in Robotics
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
Projective Geometry- 3D
Trajectory Generation
Forward Kinematics. Focus on links chains May be combined in a tree structure Degrees of Freedom Number of independent position variables (i.e. joints.
1Notes  Assignment 0 marks should be ready by tonight (hand back in class on Monday)
Motion Planning. Basic Topology Definitions  Open set / closed set  Boundary point / interior point / closure  Continuous function  Parametric curve.
Configuration Space CS 326 A: Motion Planning
1 Last lecture  Path planning for a moving Visibility graph Cell decomposition Potential field  Geometric preliminaries Implementing geometric primitives.
CS 326A: Motion Planning Configuration Space. Motion Planning Framework Continuous representation (configuration space and related spaces + constraints)
Ch. 2: Rigid Body Motions and Homogeneous Transforms
Curves Locus of a point moving with one degree of freedom
Ch. 3: Forward and Inverse Kinematics
Kinematics. ILE5030 Computer Animation and Special Effects2 Kinematics The branch of mechanics concerned with the motions of objects without regard to.
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2003/index.htm Configuration Space – Basic Path-Planning Methods.
Introduction to ROBOTICS
Serial and Parallel Manipulators
Introduction to ROBOTICS
Inverse Kinematics Jacobian Matrix Trajectory Planning
1 Single Robot Motion Planning Liang-Jun Zhang COMP Sep 22, 2008.
Introduction to ROBOTICS
Direct Kinematics.
The linear algebra of Canadarm
CS I400/B659: Intelligent Robotics Rigid Transformations.
Forward Kinematics and Jacobians Kris Hauser CS B659: Principles of Intelligent Robot Motion Spring 2013.
ME/ECE Professor N. J. Ferrier Forward Kinematics Professor Nicola Ferrier ME Room 2246,
Definition of an Industrial Robot
1 Kinematics ( 運動學 ) Primer Jyun-Ming Chen Fall 2009.
Inverse Kinematics Kris Hauser
Kinematics of Robot Manipulator
Key Frame Animation and Inverse Kinematics
This Week Week Topic Week 1 Week 2 Week 3 Week 4 Week 5
Chapter 2 Robot Kinematics: Position Analysis
Robotics Chapter 5 – Path and Trajectory Planning
Advanced Computer Graphics Spring 2014
1 Fundamentals of Robotics Linking perception to action 2. Motion of Rigid Bodies 南台科技大學電機工程系謝銘原.
CS B659: Principles of Intelligent Robot Motion Configuration Space.
Jinxiang Chai Composite Transformations and Forward Kinematics 0.
Kinematics Primer Jyun-Ming Chen. Contents General Properties of Transform 2D and 3D Rigid Body Transforms Representation Computation Conversion … Transforms.
Kinematics Jehee Lee Seoul National University. Kinematics How to animate skeletons (articulated figures) Kinematics is the study of motion without regard.
EEE. Dept of HONG KONG University of Science and Technology Introduction to Robotics Page 1 Lecture 2. Rigid Body Motion Main Concepts: Configuration Space.
Joint Velocity and the Jacobian
Chapter 2: Description of position and orientation Faculty of Engineering - Mechanical Engineering Department ROBOTICS Outline: Introduction. Descriptions:
Trajectory Generation
COMP322/S2000/L81 Direct Kinematics- Link Coordinates Questions: How do we assign frames? At the Joints? At the Links? Denavit-Hartenberg (D-H) Representation.
NUS CS 5247 David Hsu Configuration Space. 2 What is a path?
Robotics Chapter 3 – Forward Kinematics
CSCI480/582 Lecture 9 Chap.2.2 Cubic Splines – Hermit and Bezier Feb, 11, 2009.
Kinematics 제어시스템 이론 및 실습 조현우
Joint Velocity and the Jacobian
Forward Kinematics and Configurations
Ch. 2: Rigid Body Motions and Homogeneous Transforms
More Rigid Transforms, 3D Rotations
PROPERTIES OF THE JACOBIAN
F o r w a r d K i n e m a t i c s.
Mobile Robot Kinematics
CSE4421/5324: Introduction to Robotics
ECE 383/ME 442: Intro to Robotics and Automation
Forward Kinematics and Configuration Space
KINEMATIC CHAINS.
Chapter 4 . Trajectory planning and Inverse kinematics
Chapter 3. Kinematic analysis
Robotics 1 Copyright Martin P. Aalund, Ph.D.
Presentation transcript:

Forward Kinematics and Configurations Kris Hauser I400/B659: Intelligent Robotics Spring 2014 1

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

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

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

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

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

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

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

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)

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

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 ,…, 𝑞 𝑘 = 𝑖∈𝐴(𝑘) 𝑇 𝑖→𝑝[𝑖] 𝑟𝑒𝑓 𝑅( 𝑞 𝑖 )

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

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

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

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)

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

Protein

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

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

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

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

Some Important Topological Spaces R: real number line Rn: N-dimensional Cartesian space S1: boundary of circle in 2D S2: surface of sphere in 3D SO(2), SO(3): set of 2D, 3D orientations (special orthogonal group) SE(2), SE(3): set of rigid 2D, 3D translations and rotations (special Euclidean group) Cartesian product A x B, power notation An = A x A … x A Homeomorphism ~ denotes topological equivalence Continuous mapping with continuous inverse (bijective) Cube ~ S2 SO(2) ~ S1 SE(3) ~ SO(3) x R3

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

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

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

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

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)?

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)? 29

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

Klamp’t Python API world = WorldModel() world.readFile([some file]) robot = world.robot(0) [if the world has only one robot] A robot’s configuration is a list of numbers. A RobotModel stores a current configuration robot.getConfig() robot.setConfig(q) automatically performs forward kinematics It does not necessarily transform like a vector! Robot-specific interpolation function: robot.interpolate(a,b,u) A robot’s frames are given as a list of RobotModelLink’s link = robot.getLink([index or name]) (R,t) = link.getTransform() gets the current transformation of the link (last set by setConfig) 3D rigid transform utilities in se3.py