#include <IKMitsubishiPA-10.h>
Inheritance diagram for OSCAR::IKMitsubishi:

Public Methods | |
| IKMitsubishi (const String &dhParameterFileName, OSCARError &err=DUMMY_ERROR(noError), const String &name=String("")) | |
| IKMitsubishi (const DHData &dhData, OSCARError &err=DUMMY_ERROR(noError), const String &name=String("")) | |
| IKMitsubishi (const IKMitsubishi &rhs) | |
| virtual | ~IKMitsubishi () |
| bool | GetJointPosition (const Xform &handXform, JointVector &jointPositionSolution) |
| bool | GetJointPosition (const HandPose &handPose, JointVector &jointPositionSolution) |
| bool | GetLast3Joints (const Xform &handXform, JointVector &jointPosition) |
| void | SetClosure (bool keepMiddle, bool elbowUp, bool wristUp) |
| void | GetClosure (bool &keepMiddle, bool &elbowUp, bool &wristUp) |
| void | SetApproximate (bool approximate) |
| void | SetFirstJoint (double angleInRadians) |
| double | GetFirstJoint () const |
| IKMitsubishi & | operator= (const IKMitsubishi &rhs) |
| virtual bool | SetJointPosition (const JointVector &jointPosition) |
| void | TransformHandPose (const Xform &hand, Xform &modifiedHand) |
Protected Methods | |
| void | applyFirstJointAngle (Xform &wristLocation, Xform &adjustedWristLocation) |
| void | calculateWristOrientation (const JointVector &jointPos, const Xform &wristLocation, Rot3by3 &relativeWrist) |
| bool | calculateLast3Joints (const Xform &wristLocation, JointVector &jointPos) |
| void | quadrantChange (const double currentJointAngle, double &newJointAngle) |
Protected Attributes | |
| double | d3 |
| double | d5 |
| double | firstJointVal |
| bool | keepMiddle |
| bool | elbowUp |
| bool | wristUp |
| bool | approximate |
| JointVector | currentJointVector |
| Xform | scratchXform1 |
| Xform | scratchXform2 |
| Xform | modifiedHand |
| Xform | basePoseInv |
| Xform | toolPoseInv |
| Rot3by3 | wristPointOrientTrans |
| Rot3by3 | handOrient |
| Rot3by3 | relativeOrient |
| Orientation | wristPointOrient |
|
||||||||||||||||
|
Constructor. This is the constructor for an object of type IKMitsubishi. Use this to construct an IKMitsubishi object. Default closure is selected as elbow up
# This is a DH parameter file for a Mitsubishi PA-10 7 DOF robot. # The variable is specified by typing a "var' or a "VAR" in its # field. i.e. If the joint is revolute then it will be in the fourth # coulumn and if the joint is prismatic it will be in the third column # The notation is based on the "Introduction to Robotics, Mechanics and Controls" # book by John Craig.Units are in mm and degrees. # The word below should specify the format of the DH Parameters (Craig or Featherstone) Craig
# Note: The tool point for this robot is at approximately [0, 0, 70] at the tool plate # expressed in the last joints DH frame
|
|
||||||||||||||||
|
Constructor. This is the constructor for an object of type IKMitsubishi. Use this to construct an IKMitsubishi object. Default closure is selected as elbow up
|
|
|
Copy Constructor. This is the Copy Constructor for an object of type IKMitsubishi. Use this to construct an IKMitsubishi object from an existing IKMitsubishi object.
|
|
|
Destructor. This is the Destructor for an object of type IKMitsubishi. |
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
Get the kinematic closure for the inverse solution. This method is used to enquire the closure that has been set for the inverse position solution
|
|
|
Gets the value at which the first joint is locked in radians.
|
|
||||||||||||
|
Computes the closed-form inverse position solution for the last link (or tool point) of a robot. Note: Since this is closed-form it will ignore the active/inactive status on the joint vector.
Implements OSCAR::IKPosition. |
|
||||||||||||
|
Computes the closed-form inverse position solution for the last link (or tool point) of a robot. Note: Since this is closed-form it will ignore the active/inactive status on the joint vector.
Implements OSCAR::IKPosition. |
|
||||||||||||
|
Computes the last 3 joint angles for a given desired hand orientation using the closed-form inverse kinematics. Note: Since this is closed-form it will ignore the active/inactive status on the joint vector. This method computes the the last 3 joint angles given the desired hand orientation and the first 4 joint angles. The orientation is specified in an Xform. The position part of the Xform is ignored.
|
|
|
Assignment Operator. This is the Assignment Operator for an object of type IKMitsubishi.
|
|
||||||||||||
|
|
|
|
Set whether or not the inverse kinematics should return approximate solution. This method is used to select whether you desire to have the inverse kinematic return approximate solution if the desired hand pose is unattainable (mostly because it's out of reach). If it's set to true, then a call to GetJointPosition will return an approximate solution that it thinks will provide the nearest hand pose. If it's set to false, then a call to GetJointPosition will return false if the desired hand pose is unattainable. The default is that IK will not provide approximate solution.
|
|
||||||||||||||||
|
Set the kinematics closure for the inverse solution. This method is used to choose a solution from the 8 (2^3) closures. This will have an effect only when the robot is at one of its inflection points, i.e. q3 at +/- 90 degrees, q4 at 0, or q6 at 0. If the current joint state is entirely in one of the closures, then this method will have no effect on the solution chosen. Choosing a proper closure is not trivial. We could use some kind of criteria to do it. For example, We could use Artificial Joint Torque (AJT) to choose a closure that will better avoid obstacles.
|
|
|
Sets the value of the first joint of the robot. Default is 0 radians. This method is used to specify the value (angle) of the first joint at which it will be locked. Based on this locked value, an inverse is performed for the remaining 6 joints. Null space motion can be generated by successively changing the value of the locked joint and performing the inverse with the same end effector constraint.
|
|
|
Set the Joint Position. This method is used to reset to a new internal joint position state. This is necessary when you want to arbitrarily start the inverse solution at a joint configuraiton that is different from where it previously was.
|
|
||||||||||||
|
Transform the desired hand pose to the robot's coordinates. It takes into account the robot's base pose and tool pose.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| RRG Homepage | OSCAR Overview | OSCAR Tutorials | Simulations |