Robotis Manipulator  1.0.0
robotis_manipulator::MinimumJerk Class Reference

The MinimumJerk class. More...

#include <robotis_manipulator_trajectory_generator.h>

Collaboration diagram for robotis_manipulator::MinimumJerk:
Collaboration graph

Public Member Functions

 MinimumJerk ()
 
virtual ~MinimumJerk ()
 
void calcCoefficient (Point start, Point goal, double move_time)
 calcCoefficient More...
 
Eigen::VectorXd getCoefficient ()
 getCoefficient More...
 

Private Attributes

Eigen::VectorXd coefficient_
 

Detailed Description

The MinimumJerk class.

Definition at line 51 of file robotis_manipulator_trajectory_generator.h.

Constructor & Destructor Documentation

MinimumJerk::MinimumJerk ( )

Definition at line 30 of file robotis_manipulator_trajectory_generator.cpp.

31 {
32  coefficient_ = Eigen::VectorXd::Zero(6);
33 }
MinimumJerk::~MinimumJerk ( )
virtual

Definition at line 35 of file robotis_manipulator_trajectory_generator.cpp.

35 {}

Member Function Documentation

void MinimumJerk::calcCoefficient ( Point  start,
Point  goal,
double  move_time 
)

calcCoefficient

Parameters
start
goal
move_time

Definition at line 37 of file robotis_manipulator_trajectory_generator.cpp.

40 {
41  Eigen::Matrix3d A = Eigen::Matrix3d::Identity(3, 3);
42  Eigen::Vector3d x = Eigen::Vector3d::Zero();
43  Eigen::Vector3d b = Eigen::Vector3d::Zero();
44 
45  A << pow(move_time, 3), pow(move_time, 4), pow(move_time, 5),
46  3 * pow(move_time, 2), 4 * pow(move_time, 3), 5 * pow(move_time, 4),
47  6 * pow(move_time, 1), 12 * pow(move_time, 2), 20 * pow(move_time, 3);
48 
49  coefficient_(0) = start.position;
50  coefficient_(1) = start.velocity;
51  coefficient_(2) = 0.5 * start.acceleration;
52 
53  b << (goal.position - start.position - (start.velocity * move_time + 0.5 * start.acceleration * pow(move_time, 2))),
54  (goal.velocity - start.velocity - (start.acceleration * move_time)),
55  (goal.acceleration - start.acceleration);
56 
57  Eigen::ColPivHouseholderQR<Eigen::Matrix3d> dec(A);
58  x = dec.solve(b);
59 
60  coefficient_(3) = x(0);
61  coefficient_(4) = x(1);
62  coefficient_(5) = x(2);
63 }
Eigen::VectorXd MinimumJerk::getCoefficient ( )

getCoefficient

Returns

Definition at line 65 of file robotis_manipulator_trajectory_generator.cpp.

Member Data Documentation

Eigen::VectorXd robotis_manipulator::MinimumJerk::coefficient_
private

Definition at line 54 of file robotis_manipulator_trajectory_generator.h.


The documentation for this class was generated from the following files: