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

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.
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
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
Ch. 3: Forward and Inverse Kinematics
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2003/index.htm Configuration Space – Basic Path-Planning Methods.
Introduction to ROBOTICS
Introduction to ROBOTICS
Inverse Kinematics Jacobian Matrix Trajectory Planning
1 Single Robot Motion Planning Liang-Jun Zhang COMP Sep 22, 2008.
Introduction to ROBOTICS
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,
1 C01 – Advanced Robotics for Autonomous Manipulation Department of Mechanical EngineeringME 696 – Advanced Topics in Mechanical Engineering.
Definition of an Industrial Robot
1 Kinematics ( 運動學 ) Primer Jyun-Ming Chen Fall 2009.
Constraints-based Motion Planning for an Automatic, Flexible Laser Scanning Robotized Platform Th. Borangiu, A. Dogar, A. Dumitrache University Politehnica.
Key Frame Animation and Inverse Kinematics
Chapter 2 Robot Kinematics: Position Analysis
Robotics Chapter 5 – Path and Trajectory Planning
1 Fundamentals of Robotics Linking perception to action 2. Motion of Rigid Bodies 南台科技大學電機工程系謝銘原.
CS B659: Principles of Intelligent Robot Motion Configuration Space.
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.
Chapter 2: Description of position and orientation Faculty of Engineering - Mechanical Engineering Department ROBOTICS Outline: Introduction. Descriptions:
Trajectory Generation
Forward Kinematics and Configurations
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
Instructor Prof. Shih-Chung Kang 2008 Spring
Trajectory Generation
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.
Direct Manipulator Kinematics
ROTATIONS & TRANSLATIONS
CHAPTER 3 ROBOT CLASSIFICATION
Mobile Robot Kinematics
CSE4421/5324: Introduction to Robotics
ECE 383/ME 442: Intro to Robotics and Automation
Inverse Kinematics, Jacobians
Homogeneous Transformation Matrices
Forward Kinematics and Configuration Space
Chapter IV Spaces and Transforms
Inverse Kinematics 12/30/2018.
KINEMATIC CHAINS.
Outline: 5.1 INTRODUCTION
KINEMATIC CHAINS & ROBOTS (I)
TWO DIMENSIONAL TRANSFORMATION
Chapter 4 . Trajectory planning and Inverse kinematics
Chapter 3. Kinematic analysis
Robotics 1 Copyright Martin P. Aalund, Ph.D.
Model of robot system Óbuda University
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)? 28

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 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() 3D rigid transform utilities in se3.py