Giter Site home page Giter Site logo

r2_toolbox's Introduction

[Robotics 2] Dynamic and Redundancy toolkit

The DnR toolkit is based on Robotics2Tools by MoSamArafat. It includes useful scripts for the midterm / exam of Robotics 2.

Overview

Here are written the standards of the toolbox.

Terminology

In case you don't understand some terminology of the toolbox, you may find (and also request) explanation here:

  • rci : position wrt RFi of a link's CoM
  • roc : position wrt RF0 of a link's CoM

Denavit-Hartenberg Table Convention

The Toolkit uses the standard convention presented during lectures of Robotics1 and Robotics2:

alpha d a theta
... ... ... ...

In order to build the table, let's see how one row generates a new frame RF1 from RF0:

KEEP IN MIND that you need to use the right hand rule to generate the first frame, then I suggest thinking at how you wish to place the next frame, and then build up a chain of rototranslations that can get you there. The 4 parameters of the table lets you play with this rototranslation in the following way:

  • Take RF1 and place it with the same orientation on RF0 position
  • Move RF1 on z0 axis by d, then apply a counter clockwise rotation by theta on RF1 from z0
  • Move RF1 on x1 axis by a, then apply a counter clockwise rotation by alpha on RF1 from x1

Remember that only x and z axis are used during the rototranslation, and that (d, theta) are applied onto z0 while (a, alpha) are applied on x1.

Functions

Here the functions are briefly described

Kinematics

Geometry

  • h2r : Extracts the rotation matrix from a given homogeneous transformation matrix
  • h2tr : Extracts the rotation matrix AND the offset vector from a given h.trasformation matrix

Denavit-Hartenberg

  • dh_step : Compute a single link transformation, given a DH parameter row
  • dh_transform_m : Compute the h.transformation matrix given the DH table, a source joint and a destination joint

Generic

  • compute_roc : Compute the RoC vector given the DH table and a link index

Kinematics Redundancy

  • kr_task_dls : Computes the joint commands to complete a task r through DLS (Dampened Least Squares) method
  • kr_task_pg : Computes the joint commands to complete a task r through PG (Projected Gradient) method
  • kr_task_rg : Computes the joint commands to complete a task r through RG (Reduced Gradient) method
  • kr_task_sns : Computes the joint commands to complete a task r through SNS (Saturation of Null-Space) method
  • kr_task_wpinv : Computes the joint commands to complete a task r through Weighed PseudoInverse method

Dynamics

  • compute_sym_m : Computes the Symbolic Inertia matrix M(q, q_dot)
  • compute_num_m : Computes the Numerical Inertia matrix M(q, q_dot) through the Euler-Newton method.
  • compute_christoffel : Computes the coriolis/centrifugal factorization through christoffel symbols
  • compute_gravity : Compute the gravity vector for the arm

Robot dynamic models

Parametric scripts used to compute robot dynamic models.

  • planar_robot : Dynamic model for a generic planar robot.
  • spatial_robot : Dynamic model for a generic spatial robot.

Examples

Some examples are also provided on operativity of the toolbox:

  • planar_2r : Dynamic model for 2R planar robot.
  • planar_prp : Dynamic model for PRP planar robot.
  • planar_pprr : Dynamic model for PPRR planar robot.
  • spatial_3r : Dynamic model for 3R spatial robot.

Outcomes display

A simple matlab livescript (out_display.mlx) can be used to visualize functions output in a fancy way. Have fun!

r2_toolbox's People

Contributors

emanuelegiacomini avatar rickymexx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

zhangshawn1998

r2_toolbox's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.