Using the iKin Cartesian interface with Vizzy
Running the iKin Cartesian interface module
- On a shell go to the iKin Cartesian interface build directory.
- Run the server executable with the following parameters.
server --from [configFile]
- Run the solver executable with the following parameters.
solver --from [configFile] The [configFile] should be replace with the path and file name of the configuration file
iKin Cartesian interface configuration files
Through the configuration files it is possible to determine which is the kinematic description that is needed and which of the parts are needed to control each of the arms.
The examples presented are for the left arm, the format is the same for the right arm with minor changes (basically changing the word "left" to "right").
Server config file
//the kinematics_file refers to the kinematics description file
kinematics_file kinematics_left_arm.ini
robot vizzy
//the part is either the left_arm or the right_arm
part left_arm
//local port for the ikin server
local cartesianController/left_arm
[GENERAL]
ControllerName vizzy/cartesianController/left_arm
// the robot is simulated @ 100Hz, hence let s give it some margin to respond
// we ll lower a bit the controller s speed
ControllerPeriod 20
//the port name for to connect to the solver
SolverNameToConnect cartesianSolver/left_arm
KinematicPart custom
NumberOfDrivers 3
//for the vizzy robot to control the arms it needs this three parts
[DRIVER_0]
Key torso
JointsOrder direct
[DRIVER_1]
Key left_shoulder
JointsOrder direct
[DRIVER_2]
Key left_arm
JointsOrder direct
Solver config file
//the kinematics_file refers to the kinematics description file
kinematics_file kinematics_left_arm.ini
robot vizzy
//the part is either the left_arm or the right_arm
part left_arm
//local port for the ikin solver
name cartesianSolver/left_arm
period 30
dof (1 1 1 1 1 1 1 1 1)
rest_pos (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0)
rest_weights (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0)
pose xyz //full
mode shot
verbosity on
maxIter 200
tol 0.0001
xyzTol 0.00000001
interPoints off
ping_robot_tmo 10.0
Kinematics description file
// 3-links planar manipulator
// note that it is not important to set the joints bound coherently with the hardware,
// since they will be aligned automatically at run-time through a call to getLimits()
H0 (1.0 0.0 0.0 0.0 0.0 0.0 -1.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0 1.0) // given per rows (Very precise MATLAB Matrix)
numLinks 9
link_0 (A 0.0) (D 0.0805) (alpha -90.0) (offset 180.0) (min -20.0) (max 20.0)
link_1 (A 0.0) (D -0.212) (alpha -90.0) (offset 0.0) (min -18.0) (max 18.0)
link_2 (A 0.0) (D -0.10256) (alpha 90.0) (offset 90.0) (min -75.0) (max 135.0)
link_3 (A 0.0) (D 0.0) (alpha -90.0) (offset -70.0) (min 0.0) (max 75.0)
link_4 (A 0.0) (D -0.16296) (alpha -90.0) (offset 90.0) (min -85.0) (max 85.0)
link_5 (A 0.0) (D 0.0) (alpha 90.0) (offset 0.0) (min -0.0) (max 110.0)
link_6 (A 0.0) (D -0.18925) (alpha 90.0) (offset 0.0) (min -85.0) (max 85.0)
link_7 (A 0.0) (D 0.0) (alpha 90.0) (offset -90.0) (min -35.0) (max 35.0)
link_8 (A 0.100) (D 0.0) (alpha -90.0) (offset 0.0) (min -35.0) (max 35.0)