a c a core r robot al algorithm hm i inverse k
play

A C A Core R Robot Al Algorithm hm: I Inverse K Kinematics - PowerPoint PPT Presentation

A C A Core R Robot Al Algorithm hm: I Inverse K Kinematics Setting a robots joints so end effector reaches a target Input: current robot geometry Output: required joint increments Computationally intensive problem all limbed


  1. A C A Core R Robot Al Algorithm hm: I Inverse K Kinematics • Setting a robot’s joints so end effector reaches a target • Input: current robot geometry • Output: required joint increments • Computationally intensive problem all limbed robots must solve • Beyond controlling single arms and legs, many larger problems rely on inverse kinematics • redundant manipulators • multiple end effectors • inverse dynamics 1

  2. A D A Digital A Accelerator f for I Inverse K Kinematics • Inverse kinematics not well suited for normal digital architectures – Entirely floating point array, matrix operations – 40% of cycles in inverting matrices – 15% of cycles in sine, cosine operations • We solve IK via damped least squares – Dedicated sine, cosine function generators – Parallel, fixed-point functional units – Solves IK problem in 100µs: compare against 10ms for general algorithm on CPU 2

  3. Archi Ar hitecture a and Toolcha hain ROS URDF Collada D-H Params cpp-inverse- FPGA kinematics- CONFIGURATION library Robot TIME Geometry Compiler XML matrix constants d d A A*sin( Θ ) A A*cos( Θ ) Θ sin( Θ ) sin( Θ )sin( α ) Θ cos( Θ ) -sin( Θ )cos( α ) α sin( α ) -cos( Θ )sin( α ) α cos( α ) cos( Θ )cos( α ) 16 4x4 Matrix Multiplier FPGA Forward Forward Inverse ... 16 16 Kinematics Kinematics Kinematics 16 RUNTIME • axis of rot. / trans. • pos. & rot. of joint Matrix Jacobian Matrix Jacobian Finder Full Matrix Jacobian Damped Least Mult. Pipeline Block Squares Block variables LINUX Robot Incremental RUNTIME Current Joint Target Pose Joint Actions Pose 3

  4. Ar Archi hitecture a and T Timing D Design • Architectural Choices • Pipelining sine/cosine and array multiply • Parallelized matrix multiply and matrix inversion • Fixed point representations throughout system • Timing Choices • Single array of multipliers shared amongst modules • Aggregate individual enable and done signals into global state machine 4

  5. Experiences a and I Issues • Deciding on the algorithm to use • Determining what implementation would fit on the board • Convincing ourselves the algorithm works • Extensively tested the core hardware, but not the top-level interface (until yesterday) 5

  6. Lessons L Learned • Test the whole stack earlier • Plan before trying to implement • Use timing diagrams and area estimates before touching hardware • Leave no ambiguity in the design 6

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend