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
()¶
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
()¶
-
abstract
-
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)¶