API C#
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties
Kinova.API.Jaco.Control.CJacoControlManager Class Reference

This class represent all method needed to move and control JACO from a computer via USB protocol. More...

Public Member Functions

 CJacoControlManager (CCypherMessage encryptedPass)
 Initializes a new instance of the CJacoControlManager class. To get access of this class, you must provide a correct encrypted password. If the password provided is not valid, a CAccessDeniedException is thrown. Developper that use that API should never have to declare an object of this class because you can access it via the object CJacoArm. More...
 
CSingularityVector GetSingularityVector ()
 Gets information about the singularities around Jaco. More...
 
CSpasmFilter GetPositionCurrentActuators ()
 
CSpasmFilter GetSpasmParameters ()
 
void SetSpasmParameters (CSpasmFilter filterParam)
 
CQuickStatus GetQuickStatus ()
 
void SetActuatorPID (UInt32 address, float P, float I, float D)
 
void SetFrameType (int type)
 
void SetPIDFilter (UInt32 address, float command, float derivative, float error)
 
void SetGainTorqueSensor (UInt32 address, float gain)
 
void SetAngularControl ()
 Set Jaco to angular control mode. WARNING!!! Use this function with extreme caution. In angular control mode there is no protection(For exemple, the joint #2 will not stop even if the arm is about to crash in itself) and if you are not absolutly sure of what you are doing, you can damage your JACO. More...
 
void SetCartesianControl ()
 Set Jaco to cartesian control mode. More...
 
void StartControlAPI ()
 Tell JACO that from now on, the API will control it. More...
 
void StopControlAPI ()
 Tell JACO that from now on, the API is no longuer in control of JACO. More...
 
void StartForceControl ()
 
void StopForceControl ()
 
void StartCurrentLimitation ()
 
void StopCurrentLimitation ()
 
bool IsApiInControl ()
 Ask if the API is in control. More...
 
void SendJoystickFunctionality (CJoystickValue joystickValue)
 Send a joystick functionnality to JACO. The functionality will be executed only if the API is in control of JACO. More...
 
void SendTrajectoryFunctionnality (CPointsTrajectory PointsTrajectory)
 Sends a trajectory. The trajectory will be executed only if the API is in control of JACO. More...
 
void SendBasicTrajectory (CPointsTrajectory PointsTrajectory)
 Sends a basic(without limitation) trajectory. The trajectory will be executed only if the API is in control of JACO. More...
 
CTrajectoryInfo GetActualTrajectoryInfo ()
 Get informations about the position of the robot regarding the actual trajectories. The object CTrajectoryInfo, returned by the method, contains the cartesian/angular position of the robot, the actual limitation of the robot and a flag that indicates if those limitation are being currently used. More...
 
CInfoFIFOTrajectory GetInfoFIFOTrajectory ()
 Get all informations about the Trajectory FIFO inside Jaco. The trajectory FIFO contains the trajectories that are waiting to be executed. More...
 
void EraseTrajectories ()
 Erase all trajectories in the trajectory's FIFO of Jaco. More...
 
CCartesianInfo GetPositioningCartesianInfo ()
 Gets cartesian information about the position. More...
 
CAngularInfo GetPositioningAngularInfo ()
 Gets angular information about the positioning. More...
 
CCartesianInfo GetForceCartesianInfo ()
 Gets cartesian information about the force. More...
 
CAngularInfo GetForceAngularInfo ()
 Gets angular information about the force. More...
 
CCartesianInfo GetCommandCartesianInfo ()
 Gets cartesian information about the command. More...
 
CAngularInfo GetCommandAngularInfo ()
 Gets angular information about the command. More...
 
CAngularInfo GetCurrentAngularInfo ()
 Gets angular information about the current. More...
 

Detailed Description

This class represent all method needed to move and control JACO from a computer via USB protocol.

Constructor & Destructor Documentation

Kinova.API.Jaco.Control.CJacoControlManager.CJacoControlManager ( CCypherMessage  encryptedPass)

Initializes a new instance of the CJacoControlManager class. To get access of this class, you must provide a correct encrypted password. If the password provided is not valid, a CAccessDeniedException is thrown. Developper that use that API should never have to declare an object of this class because you can access it via the object CJacoArm.

Parameters
encryptedPassThe encrypted password.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.

Member Function Documentation

void Kinova.API.Jaco.Control.CJacoControlManager.EraseTrajectories ( )

Erase all trajectories in the trajectory's FIFO of Jaco.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

if (m_Jaco.JacoIsReady()) { //We create a trajectory CPointsTrajectory trajectory = new CPointsTrajectory(); CTrajectoryInfo point1 = new CTrajectoryInfo(); CTrajectoryInfo point2 = new CTrajectoryInfo(); CTrajectoryInfo point3 = new CTrajectoryInfo(); CTrajectoryInfo point4 = new CTrajectoryInfo();

CVectorEuler ActualPosition = m_Jaco.ConfigurationsManager.GetHandPosition();

point1.UserPosition.HandMode = CJacoStructures.HandMode.PositionMode; point1.UserPosition.Position = ActualPosition; point1.UserPosition.FingerPosition[0] = -200; point1.UserPosition.FingerPosition[1] = -200; point1.UserPosition.FingerPosition[2] = -200;

point2.UserPosition.HandMode = CJacoStructures.HandMode.PositionMode; point2.UserPosition.Position = ActualPosition; point2.UserPosition.FingerPosition[0] = 200; point2.UserPosition.FingerPosition[1] = 200; point2.UserPosition.FingerPosition[2] = 200;

point3.UserPosition.HandMode = CJacoStructures.HandMode.PositionMode; point3.UserPosition.Position = ActualPosition; point3.UserPosition.FingerPosition[0] = -200; point3.UserPosition.FingerPosition[1] = -200; point3.UserPosition.FingerPosition[2] = -200;

point4.UserPosition.HandMode = CJacoStructures.HandMode.PositionMode; point4.UserPosition.Position = ActualPosition; point4.UserPosition.FingerPosition[0] = 200; point4.UserPosition.FingerPosition[1] = 200; point4.UserPosition.FingerPosition[2] = 200;

trajectory.Add(point1); trajectory.Add(point2); trajectory.Add(point3); trajectory.Add(point4);

m_Jaco.ControlManager.StartControlAPI();

//We send the trajectory. m_Jaco.ControlManager.SendTrajectoryFunctionnality(trajectory);

//Anytime while the robot is executing the trajectory the user can press a button to stop the trajectory. System.Console.ReadKey();

m_Jaco.ControlManager.EraseTrajectories();

//We wait a bit... Thread.Sleep(4000);

//The robot is ready to receive other trajectory so we resend another one. m_Jaco.ControlManager.SendTrajectoryFunctionnality(trajectory);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CTrajectoryInfo Kinova.API.Jaco.Control.CJacoControlManager.GetActualTrajectoryInfo ( )

Get informations about the position of the robot regarding the actual trajectories. The object CTrajectoryInfo, returned by the method, contains the cartesian/angular position of the robot, the actual limitation of the robot and a flag that indicates if those limitation are being currently used.

Returns
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CAngularInfo Kinova.API.Jaco.Control.CJacoControlManager.GetCommandAngularInfo ( )

Gets angular information about the command.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the angular command. CAngularInfo info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetCommandAngularInfo();

System.Console.WriteLine(" Command Joint 1 : " + info.Joint1); System.Console.WriteLine(" Command Joint 2 : " + info.Joint2); System.Console.WriteLine(" Command Joint 3 : " + info.Joint3); System.Console.WriteLine(" Command Joint 4 : " + info.Joint4); System.Console.WriteLine(" Command Joint 5 : " + info.Joint5); System.Console.WriteLine(" Command Joint 6 : " + info.Joint6); System.Console.WriteLine(" Command Finger #1 : " + info.Finger1); System.Console.WriteLine(" Command Finger #2 : " + info.Finger2); System.Console.WriteLine(" Command Finger #3 : " + info.Finger3);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Angular information about the command.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CCartesianInfo Kinova.API.Jaco.Control.CJacoControlManager.GetCommandCartesianInfo ( )

Gets cartesian information about the command.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the cartesian command. CCartesianInfo info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetCommandCartesianInfo();

System.Console.WriteLine(" Command X : " + info.X); System.Console.WriteLine(" Command Y : " + info.Y); System.Console.WriteLine(" Command Z : " + info.Z); System.Console.WriteLine(" Command Theta X : " + info.ThetaX); System.Console.WriteLine(" Command Theta Y : " + info.ThetaY); System.Console.WriteLine(" Command Theta Z : " + info.ThetaZ); System.Console.WriteLine(" Command Finger #1 : " + info.Finger1); System.Console.WriteLine(" Command Finger #2 : " + info.Finger2); System.Console.WriteLine(" Command Finger #3 : " + info.Finger3);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Cartesian information about the current.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CAngularInfo Kinova.API.Jaco.Control.CJacoControlManager.GetCurrentAngularInfo ( )

Gets angular information about the current.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the angular current. CAngularInfo info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetCurrentAngularInfo();

System.Console.WriteLine(" Current Joint 1 : " + info.Joint1); System.Console.WriteLine(" Current Joint 2 : " + info.Joint2); System.Console.WriteLine(" Current Joint 3 : " + info.Joint3); System.Console.WriteLine(" Current Joint 4 : " + info.Joint4); System.Console.WriteLine(" Current Joint 5 : " + info.Joint5); System.Console.WriteLine(" Current Joint 6 : " + info.Joint6); System.Console.WriteLine(" Current Finger #1 : " + info.Finger1); System.Console.WriteLine(" Current Finger #2 : " + info.Finger2); System.Console.WriteLine(" Current Finger #3 : " + info.Finger3);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Angular information about the current.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CAngularInfo Kinova.API.Jaco.Control.CJacoControlManager.GetForceAngularInfo ( )

Gets angular information about the force.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the angular force. CAngularInfo info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetForceAngularInfo();

System.Console.WriteLine(" Force Joint 1 : " + info.Joint1); System.Console.WriteLine(" Force Joint 2 : " + info.Joint2); System.Console.WriteLine(" Force Joint 3 : " + info.Joint3); System.Console.WriteLine(" Force Joint 4 : " + info.Joint4); System.Console.WriteLine(" Force Joint 5 : " + info.Joint5); System.Console.WriteLine(" Force Joint 6 : " + info.Joint6); System.Console.WriteLine(" Force Finger #1 : " + info.Finger1); System.Console.WriteLine(" Force Finger #2 : " + info.Finger2); System.Console.WriteLine(" Force Finger #3 : " + info.Finger3);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Angular information about the force
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CCartesianInfo Kinova.API.Jaco.Control.CJacoControlManager.GetForceCartesianInfo ( )

Gets cartesian information about the force.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the cartesian force. CCartesianInfo info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetForceCartesianInfo();

System.Console.WriteLine(" Force X : " + info.X); System.Console.WriteLine(" Force Y : " + info.Y); System.Console.WriteLine(" Force Z : " + info.Z); System.Console.WriteLine(" Force Theta X : " + info.ThetaX); System.Console.WriteLine(" Force Theta Y : " + info.ThetaY); System.Console.WriteLine(" Force Theta Z : " + info.ThetaZ); System.Console.WriteLine(" Force Finger #1 : " + info.Finger1); System.Console.WriteLine(" Force Finger #2 : " + info.Finger2); System.Console.WriteLine(" Force Finger #3 : " + info.Finger3);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Cartesian information about the force.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CInfoFIFOTrajectory Kinova.API.Jaco.Control.CJacoControlManager.GetInfoFIFOTrajectory ( )

Get all informations about the Trajectory FIFO inside Jaco. The trajectory FIFO contains the trajectories that are waiting to be executed.

Returns
CAngularInfo Kinova.API.Jaco.Control.CJacoControlManager.GetPositioningAngularInfo ( )

Gets angular information about the positioning.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the angular position. CAngularInfo info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetPositioningAngularInfo();

System.Console.WriteLine(" Joint 1 : " + info.Joint1); System.Console.WriteLine(" Joint 2 : " + info.Joint2); System.Console.WriteLine(" Joint 3 : " + info.Joint3); System.Console.WriteLine(" Joint 4 : " + info.Joint4); System.Console.WriteLine(" Joint 5 : " + info.Joint5); System.Console.WriteLine(" Joint 6 : " + info.Joint6); System.Console.WriteLine(" Finger #1 : " + info.Finger1); System.Console.WriteLine(" Finger #2 : " + info.Finger2); System.Console.WriteLine(" Finger #3 : " + info.Finger3);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Angular information about the position.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CCartesianInfo Kinova.API.Jaco.Control.CJacoControlManager.GetPositioningCartesianInfo ( )

Gets cartesian information about the position.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the cartesian position. CCartesianInfo info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetPositioningCartesianInfo();

System.Console.WriteLine(" X : " + info.X); System.Console.WriteLine(" Y : " + info.Y); System.Console.WriteLine(" Z : " + info.Z); System.Console.WriteLine(" Theta X : " + info.ThetaX); System.Console.WriteLine(" Theta Y : " + info.ThetaY); System.Console.WriteLine(" Theta Z : " + info.ThetaZ); System.Console.WriteLine(" Finger #1 : " + info.Finger1); System.Console.WriteLine(" Finger #2 : " + info.Finger2); System.Console.WriteLine(" Finger #3 : " + info.Finger3);

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Cartesian information about the position.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
CSingularityVector Kinova.API.Jaco.Control.CJacoControlManager.GetSingularityVector ( )

Gets information about the singularities around Jaco.

try { CJacoArm m_Jaco = new CJacoArm(Crypto.GetInstance().Encrypt(MyValidPassword));

if (m_Jaco.JacoIsReady()) { //Declaration of the data structure that will hold information about the hand. CSingularityVector info;

//We get the information from the robotic arm Jaco. info = m_Jaco.ControlManager.GetSingularityVector();

System.Console.WriteLine(" Near singularity count : " + info.NbSingularity); System.Console.WriteLine(" Nearest singularity distance : " + info.SingularityDistance); } } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
A vector representing the position
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
bool Kinova.API.Jaco.Control.CJacoControlManager.IsApiInControl ( )

Ask if the API is in control.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

if (m_Jaco.JacoIsReady()) { if(m_Jaco.ControlManager.IsApiInControl()) { System.Console.WriteLine("API is in control."); } else { System.Console.WriteLine("API is not in control."); } } } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
True of False the API is controlling Jaco.
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
void Kinova.API.Jaco.Control.CJacoControlManager.SendBasicTrajectory ( CPointsTrajectory  PointsTrajectory)

Sends a basic(without limitation) trajectory. The trajectory will be executed only if the API is in control of JACO.

Parameters
PointsTrajectoryThe points trajectory.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

CPointsTrajectory m_PointsTrajectory = new CPointsTrajectory(); if (m_Jaco.JacoIsReady()) { //From now on, API can move JACO. m_Jaco.ControlManager.StartControlAPI();

CTrajectoryInfo trajectory = new CTrajectoryInfo();

//Load or create a trajectory ..

m_PointsTrajectory.Add(trajectory);

m_Jaco.ControlManager.SendBasicTrajectory(m_PointsTrajectory); } } catch (Exception) { System.Console.WriteLine("EXCEPTION"); }

Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
void Kinova.API.Jaco.Control.CJacoControlManager.SendJoystickFunctionality ( CJoystickValue  joystickValue)

Send a joystick functionnality to JACO. The functionality will be executed only if the API is in control of JACO.

Parameters
joystickValueThe data structure representing a joystick.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

if (m_Jaco.JacoIsReady()) {

//From now on, API can move JACO.
m_Jaco.ControlManager.StartControlAPI();

//Default mapping for the API is that the third button(index = 2) control the retract/ready movement.
CJoystickValue Value = new CJoystickValue();
Value.ButtonValue[2] = 1;

//Send a PRESS event on the third button(index 2).
m_Jaco.ControlManager.SendJoystickFunctionality(Value);

//We wait 4 second to simulate a HOLD THE BUTTON FOR 4 SECONDS event
Thread.Sleep(4000);

Value.ButtonValue[2] = 0;

//Send a RELEASE event on the third button(index 2).
m_Jaco.ControlManager.SendJoystickFunctionality(Value);

m_Jaco.ControlManager.StopControlAPI();

// ...
//A PRESS and a RELEASE is considered like you have clicked the second button. Based on the mapping that has been configured, JACO will perform
//the functionnality. For example, if the funcionnality Retract_ReadyToUse is set on the second button, JACO will move according to that.

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
void Kinova.API.Jaco.Control.CJacoControlManager.SendTrajectoryFunctionnality ( CPointsTrajectory  PointsTrajectory)

Sends a trajectory. The trajectory will be executed only if the API is in control of JACO.

Parameters
PointsTrajectoryThe points trajectory.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

CPointsTrajectory m_PointsTrajectory = new CPointsTrajectory(); if (m_Jaco.JacoIsReady()) { //From now on, API can move JACO. m_Jaco.ControlManager.StartControlAPI();

CVectorAngle vector = new CVectorAngle(); CTrajectoryInfo trajectory = new CTrajectoryInfo();

trajectory.UserPosition.AnglesJoints = vector; trajectory.UserPosition.PositionType = CJacoStructures.PositionType.AngularPosition;

trajectory.UserPosition.HandMode = CJacoStructures.HandMode.PositionMode;

trajectory.UserPosition.FingerPosition[0] = 10; trajectory.UserPosition.FingerPosition[1] = 30; trajectory.UserPosition.FingerPosition[2] = 40;

m_PointsTrajectory.Add(trajectory);

m_Jaco.ControlManager.SendTrajectoryFunctionnality(m_PointsTrajectory); } } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
void Kinova.API.Jaco.Control.CJacoControlManager.SetAngularControl ( )

Set Jaco to angular control mode. WARNING!!! Use this function with extreme caution. In angular control mode there is no protection(For exemple, the joint #2 will not stop even if the arm is about to crash in itself) and if you are not absolutly sure of what you are doing, you can damage your JACO.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

if (m_Jaco.JacoIsReady()) { m_Jaco.ControlManager.SetAngularControl();

//JACO is now in Angular control. System.Console.WriteLine("JACO is now in angular mode"); } } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
void Kinova.API.Jaco.Control.CJacoControlManager.SetCartesianControl ( )

Set Jaco to cartesian control mode.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

if (m_Jaco.JacoIsReady()) { m_Jaco.ControlManager.SetCartesianControl();

//JACO is now in Cartesian control. System.Console.WriteLine("JACO is now in cartesian mode"); } } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Returns
Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
void Kinova.API.Jaco.Control.CJacoControlManager.StartControlAPI ( )

Tell JACO that from now on, the API will control it.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

if (m_Jaco.JacoIsReady()) {

//From now on, API can move the arm.
m_Jaco.ControlManager.StartControlAPI();

//The API will lose control if the StopControlAPI is called, if the USB connection broke or if another interface with a higher priority move the arm.
//For example, the 3 axis joystick directly connected to JACO have an higher priority.

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.
void Kinova.API.Jaco.Control.CJacoControlManager.StopControlAPI ( )

Tell JACO that from now on, the API is no longuer in control of JACO.

try { CCypherMessage cypherPass;

//MyValidPassword is a string containing the password. cypherPass = Crypto.GetInstance().Encrypt(MyValidPassword); CJacoArm m_Jaco = new CJacoArm(cypherPass);

if (m_Jaco.JacoIsReady()) {

//From now on, API can move the arm.
m_Jaco.ControlManager.StopControlAPI();

} } catch (Exception ex) { System.Console.WriteLine("EXCEPTION"); }

Exceptions
CJACOOfflineExceptionJACO is offline (USB Connection)
CAccessDeniedExceptionYou must enter a valid password when you declare a CJacoArm object.
CJacoCommFailedExceptionCommunication has been broken and the system was not able to recover from the fault.
CPacketSynchroExceptionA USB packet has been skip during the communication.

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