pyrieef.kinematics package

Submodules

pyrieef.kinematics.arm_kdl module

pyrieef.kinematics.homogeneous_transform module

class pyrieef.kinematics.homogeneous_transform.HomogeneousTransform2D(p0=array([0., 0.]))

Bases: geometry.differentiable_geometry.DifferentiableMap

Homeogeneous transformation in the plane as DifferentiableMap

details:

Takes an angle and rotates the point p0 by this angle

f(q) = T(q) * p_0

where T defines a rotation and translation (3DoFs)

q_{0,1} => translation q_{2} => rotation

T = [ R(q) p(q) ]

[ 0 0 1 ]

p0array-like, shape (2, )

Points of which are rotated

forward(q)

Should return an array or single value

input_dimension()
jacobian(q)

Should return a matrix or single value of m x n : [output : 2 x input : 3] (dimensions)

output_dimension()
class pyrieef.kinematics.homogeneous_transform.HomogeneousTransform3D(p0=array([0., 0., 0.]))

Bases: geometry.differentiable_geometry.DifferentiableMap

Homeogeneous transformation as DifferentiableMap

details:

Takes an angle and rotates the point p0 by this angle

f(q) = T(q) * p_0

where T defines a rotation and translation (6DoFs)

q_{0,1} => translation q_{2} => rotation

T = [ R(q) p(q) ]

[ 0 0 1 ]

We use the Euler angel convention 3-2-1, which is found TODO it would be nice to match the ROS convention we simply use this one because it was available as derivation in termes for sin and cos. It seems that ROS dos Static-Z-Y-X so it should be the same. Still needs to test.

forward(q)

Should return an array or single value

input_dimension()
output_dimension()
class pyrieef.kinematics.homogeneous_transform.Isometry

Bases: object

Interface for isometries (i.e., affine transform with orthogonal linear part)

rotationarray like (n, n)

rotation matrix

translationarray like (n, )

vector offset

inverse()
linear()
matrix()
translation()
class pyrieef.kinematics.homogeneous_transform.Isometry2D(theta=None, translation=None)

Bases: pyrieef.kinematics.homogeneous_transform.Isometry

Affine 2d rigid body transformation.

thetafloat

rotation in radians

translationarray like (2, )

vector offset

inverse()
matrix()
class pyrieef.kinematics.homogeneous_transform.Isometry3D(rotation=None, translation=None)

Bases: pyrieef.kinematics.homogeneous_transform.Isometry

Affine rigid body transformation.

inverse()
linear()
matrix()
translation()
class pyrieef.kinematics.homogeneous_transform.PlanarRotation(p0)

Bases: geometry.differentiable_geometry.DifferentiableMap

Planar Rotation as DifferentiableMap

details:

Takes an angle and rotates the point p0 by this angle

f(theta) = R(theta) * p_0

p0 can be defined as a keypoin, defined constant in a frame of reference. Theta is a degree of freedom.

p0array-like, shape (2, )

Points of which are rotated

forward(q)

Should return an array or single value

input_dimension()
jacobian(q)
Should return a matrix or single value of

m x n : ouput x input (dimensions)

by default the method returns the finite difference jacobian. WARNING the object returned by this function is a numpy matrix.

output_dimension()
class pyrieef.kinematics.homogeneous_transform.Rotation2D(theta=None)

Bases: object

2D rotation

thetafloat

rotation in radians

inverse()
matrix()

pyrieef.kinematics.robot module

class pyrieef.kinematics.robot.Freeflyer(name='freeflyer', keypoints={'base': [0.0, 0.0]}, shape=[[0, 0], [0, 1], [1, 1], [1, 0]], scale=1.0)

Bases: pyrieef.kinematics.robot.Robot

Planar 3DoFs robot

verticies are stored counter clock-wise

keypoint_map(i)
class pyrieef.kinematics.robot.Robot

Bases: object

Abstract robot class

abstract forward_kinematics_map()
pyrieef.kinematics.robot.assets_data_dir()
pyrieef.kinematics.robot.create_robot_from_file(filename='/Users/jmainpri/Dropbox/Work/workspace/pyrieef/pyrieef/kinematics/../../data/freeflyer.json', scale=None)
pyrieef.kinematics.robot.create_robot_with_even_keypoints(nb_keypoints=20, filename='/Users/jmainpri/Dropbox/Work/workspace/pyrieef/pyrieef/kinematics/../../data/freeflyer.json', scale=None)

Module contents