Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Introduction to robot and link classes

Peter Corke edited this pageApr 12, 2021 ·1 revision

These notes will eventually migrate to the Sphinx documentation for each class, but here they are easier to work on.

WORK IN PROGRESS

Robot class

ARobot instance is essentially a container of links with metadata andsome methods that apply (almost) all subclasses.

Abstract class

TheRobot class is abstract. The current subclasses are

  • ERobot the most general robot that can be branched
  • DHRobot classical Denavit-Hartenberg model

The abstract methods are:

MethodPurpose
fkineforward kinematics
jacob0Jacobian in world frame
jacobeJacobian in end-effector frame
hessian0Hessian in world frame
rneinverse dynamics: recursive Newton Euler
issphericalrobot has spherical wrist
etsETS representation

Links

ARobot class acts like an iterator over the list of links comprisingthe robot.

It can also be used to slice the robot, eg.robot[1] is link 1 androbot[:3] is the first three links.

Links can also be found by name, eg.robot['link1'].

Base and tool

The forward kinematics is computed with respect to the base. By defaultthis is the world frame (identity SE(3)), but can be set to an arbitraryvalue, eg.robot.base = X.

The.base property always returns anSE3 instance, but if theattribute._base is None this means there is no base set, and.basewill returnSE3().

NOTE: For symbolic operations this is useful, since premultiplying thelink transforms by an identity matrix will lead to unncessary1.0 * issymbolic expressions.

Metadata and properties

PropertyPurpose
nnumber of joints
nlinksnumber of links
nbranchesnumber of branches
hasdynamicshas dynamic parameters
hasgeometryhas geometry model
hascollisionhas collision model
structurerobot structure as string
revolutesjoints which are revolute (bool array)
prismaticsjoints which are prismatic (bool array)

Concrete methods

Kinematics

MethodPurpose
IK_xxinverse kinematics

NOTE: inverse kinematics uses thefkine andjacob0 methods
of the subclass

Dynamics

MethodPurpose
inertiarigid-body mass tensor
coriolisrigid-body Coriolis and centripetal term
gravloadrigid-body gravity load
accelrigid-body forward dynamics
inertia_xoperational-space mass tensor
coriolis_xoperational-space Coriolis and centripetal term
gravload_xoperational-space gravity load
accel_xoperational-space forward dynamics
dynamicsdynamic parameters as a table
dynamics_listdynamic parameters as a list

NOTE: many of these methods require

Graphics

MethodPurpose
plotplot/animate the robot
teachinteractively "teach" the robot

NOTE:plot andteach invoke the backend which calls back to
robot methods

Backend support:

Link class

This is an abstract base class for all links. It contains metadata about the link and a number of methods.

Metadata and properties

PropertyPurpose
namenumber of joints
isrevolutetrue if link's parent is via a revolute joint
isprismatictrue if link's parent is via a prismatic joint
hasdynamicshas dynamic parameters
hasgeometryhas geometry model
hascollisionhas collision model
mlink mass (float)
rlink CoM relative to link frame ndarray(3)
Ilink inertia tensor about CoM ndarray(3,3)

Abstract methodA

Denavit-Hartenberg defined robots

Is based on concrete subclasses

DHRobot

DHLink

PropertyPurpose
thetaDH rotation about z-axis (float)
dDH translation along z-axis (float)
aDH translation along x-axis (float)
alphaDH rotation about x-axis (float)
mdhuses modified DH convention (bool)

A number of subclasses are useful in the creation of robot models using DH conventions

MethodPurpose
RevoluteDHrevolute joint using standard DH convention
PrismaticDHprismatic joint using standard DH convention
RevoluteMDHrevolute joint using modified DH convention
PrismaticMDHprismatic joint using modified DH convention

Clone this wiki locally


[8]ページ先頭

©2009-2025 Movatter.jp