Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
grl::VrepInverseKinematicsController Class Reference

#include <VrepVFController.hpp>

+ Inheritance diagram for grl::VrepInverseKinematicsController:
+ Collaboration diagram for grl::VrepInverseKinematicsController:

Public Types

typedef std::tuple< std::string,std::string > Params
 
typedef grl::InverseKinematicsController parent_type
 
enum  VrepVFControllerParamsIndex { DesiredKinematicsObjectName, IKGroupName }
 
- Public Types inherited from grl::InverseKinematicsController
enum  GrlVFControllerParamsIndex {
  currentKinematicsName, desiredKinematicsName, followVFName, followVFNumRows,
  jointVelocityLimitsVFName, JointVelocityLimitsVFNumRows, JointPositionVFName, JointPositionNumRows
}
 
typedef std::tuple< std::string,std::string,std::string,std::size_t,std::string,std::size_t,std::string,std::size_t > Params
 
typedef mtsVFController parent_type
 

Public Member Functions

void construct (Params params=defaultParams())
 
void run_one ()
 
void solve ()
 
void updateKinematics ()
 check out sawConstraintController More...
 
 VrepInverseKinematicsController (size_t num_joints=7, mtsVFBase::CONTROLLERMODE cm=mtsVFBase::CONTROLLERMODE::JPOS)
 
- Public Member Functions inherited from grl::InverseKinematicsController
void construct ()
 
Params defaultParams ()
 
 InverseKinematicsController (size_t num_joints, mtsVFBase::CONTROLLERMODE cm)
 
 InverseKinematicsController ()
 

Static Public Member Functions

static Params defaultParams ()
 

Public Attributes

vrep::VrepRobotArmDriver::State currentArmState_
 
int ikGroupHandle_
 
std::vector< int > jointHandles_
 
std::string positionLimitsName
 
std::string velocityLimitsName
 
std::shared_ptr< vrep::VrepRobotArmDriverVrepRobotArmDriverP_
 
- Public Attributes inherited from grl::InverseKinematicsController
std::unique_ptr< prmKinematicsState > currentKinematicsStateP_
 This will hold the Jacobian. More...
 
std::unique_ptr< prmKinematicsState > desiredKinematicsStateP_
 This will hold the xyz position and the rotation of where I want to go. More...
 
std::unique_ptr< mtsVFDataBase > followVFP_
 
std::unique_ptr< mtsVFDataJointLimits > jointPositionLimitsVFP_
 joints cannot go to certain position More...
 
std::unique_ptr< mtsVFDataJointLimits > jointVelocityLimitsVFP_
 need velocity limits for the joints More...
 

Additional Inherited Members

- Static Public Attributes inherited from grl::InverseKinematicsController
static const std::size_t totalRows = 7
 

Detailed Description

Todo:
verify Robotiiwa is the correct base, and RobotMillTipTarget is the right target, because if the transform doesn't match the one in the jacobian the algorithm will break

Definition at line 31 of file VrepVFController.hpp.

Member Typedef Documentation

§ Params

typedef std::tuple< std::string ,std::string > grl::VrepInverseKinematicsController::Params

Definition at line 47 of file VrepVFController.hpp.

§ parent_type

Definition at line 34 of file VrepVFController.hpp.

Member Enumeration Documentation

§ VrepVFControllerParamsIndex

Enumerator
DesiredKinematicsObjectName 
IKGroupName 

Definition at line 39 of file VrepVFController.hpp.

Constructor & Destructor Documentation

§ VrepInverseKinematicsController()

grl::VrepInverseKinematicsController::VrepInverseKinematicsController ( size_t  num_joints = 7,
mtsVFBase::CONTROLLERMODE  cm = mtsVFBase::CONTROLLERMODE::JPOS 
)
inline
Todo:
need to call parent constructor:

Constructor

Definition at line 57 of file VrepVFController.hpp.

Member Function Documentation

§ construct()

void grl::VrepInverseKinematicsController::construct ( Params  params = defaultParams())
inline
Todo:
set desiredKinematicsStateP name, INITIALIZE ALL MEMBER OBJECTS, & SET NAMES
Todo:
verify object lifetimes
Todo:
read objective rows from vrep
Todo:
objectiveRows seems to currently be a 3 vector, may eventually want a rotation and translation, perhaps with quaternion rotation
Todo:
set vrep explicit handling of IK here, plus unset in destructor of this object

Definition at line 62 of file VrepVFController.hpp.

§ defaultParams()

static Params grl::VrepInverseKinematicsController::defaultParams ( )
inlinestatic

Definition at line 49 of file VrepVFController.hpp.

§ run_one()

void grl::VrepInverseKinematicsController::run_one ( )
inline

may not need this it is in the base class blocking call, call in separate thread, just allocates memory

Definition at line 292 of file VrepVFController.hpp.

§ solve()

void grl::VrepInverseKinematicsController::solve ( )
inline

may not need this it is in the base class this will have output blocking call, call in separate thread, just allocates memory this runs the actual optimization algorithm

Definition at line 302 of file VrepVFController.hpp.

§ updateKinematics()

void grl::VrepInverseKinematicsController::updateKinematics ( )
inline

check out sawConstraintController

The row/column major order is swapped between cisst and VREP!

Todo:
does this leak memory when called every time around?
Todo:
set rotation component of current position
Todo:
set rotation component of desired position
Todo:
move code below here back under run_one updateKinematics() call
Todo:
need to provide tick time in double seconds and get from vrep API call
Todo:
check the return code, if it doesn't have a result, use the VREP version as a fallback and report an error.
Todo:
: rethink where/when/how to send command for the joint angles. Return to LUA? Set Directly? Distribute via vrep send message command?

Definition at line 140 of file VrepVFController.hpp.

Member Data Documentation

§ currentArmState_

vrep::VrepRobotArmDriver::State grl::VrepInverseKinematicsController::currentArmState_

Definition at line 309 of file VrepVFController.hpp.

§ ikGroupHandle_

int grl::VrepInverseKinematicsController::ikGroupHandle_

Definition at line 307 of file VrepVFController.hpp.

§ jointHandles_

std::vector<int> grl::VrepInverseKinematicsController::jointHandles_
Todo:
move this item back into VrepRobotArmDriver

Definition at line 306 of file VrepVFController.hpp.

§ positionLimitsName

std::string grl::VrepInverseKinematicsController::positionLimitsName

Definition at line 310 of file VrepVFController.hpp.

§ velocityLimitsName

std::string grl::VrepInverseKinematicsController::velocityLimitsName

Definition at line 311 of file VrepVFController.hpp.

§ VrepRobotArmDriverP_

std::shared_ptr<vrep::VrepRobotArmDriver> grl::VrepInverseKinematicsController::VrepRobotArmDriverP_

Definition at line 308 of file VrepVFController.hpp.


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