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

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

Public Member Functions

 CJacoControlManagerRemote (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 (CProductJaco jaco)
 Gets information about the singularities around Jaco. More...
 
float[] GetPositionCurrentActuators (CProductJaco jaco)
 
void SetActuatorPID (CProductJaco jaco, uint address, float P, float I, float D)
 
void SetAngularControl (CProductJaco jaco)
 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 (CProductJaco jaco)
 Set Jaco to cartesian control mode. More...
 
void StartControlAPI (CProductJaco jaco)
 Tell JACO that from now on, the API will control it. More...
 
void StopControlAPI (CProductJaco jaco)
 Tell JACO that from now on, the API is no longuer in control of JACO. More...
 
bool IsApiInControl (CProductJaco jaco)
 Ask if the API is in control. More...
 
void SendJoystickFunctionality (CProductJaco jaco, 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 (CProductJaco jaco, CPointsTrajectory PointsTrajectory)
 Sends a basic(without limitation) angular trajectory. The trajectory will be executed only if the API is in control of JACO. More...
 
void SendBasicTrajectory (CProductJaco jaco, 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 (CProductJaco jaco)
 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 (CProductJaco jaco)
 Get all informations about the Trajectory FIFO inside Jaco. The trajectory FIFO contains the trajectories that are waiting to be executed. More...
 
void EraseTrajectories (CProductJaco jaco)
 Erase all trajectories in the trajectory's FIFO of Jaco. More...
 
CCartesianInfo GetPositioningCartesianInfo (CProductJaco jaco)
 Gets cartesian information about the position. More...
 
CAngularInfo GetPositioningAngularInfo (CProductJaco jaco)
 Gets angular information about the positioning. More...
 
CCartesianInfo GetForceCartesianInfo (CProductJaco jaco)
 Gets cartesian information about the force. More...
 
CAngularInfo GetForceAngularInfo (CProductJaco jaco)
 Gets angular information about the force. More...
 
CCartesianInfo GetCommandCartesianInfo (CProductJaco jaco)
 Gets cartesian information about the command. More...
 
CAngularInfo GetCommandAngularInfo (CProductJaco jaco)
 Gets angular information about the command. More...
 
CAngularInfo GetCurrentAngularInfo (CProductJaco jaco)
 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.CJacoControlManagerRemote.CJacoControlManagerRemote ( 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.CJacoControlManagerRemote.EraseTrajectories ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetActualTrajectoryInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetCommandAngularInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetCommandCartesianInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetCurrentAngularInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetForceAngularInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetForceCartesianInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetInfoFIFOTrajectory ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetPositioningAngularInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetPositioningCartesianInfo ( CProductJaco  jaco)

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.CJacoControlManagerRemote.GetSingularityVector ( CProductJaco  jaco)

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.CJacoControlManagerRemote.IsApiInControl ( CProductJaco  jaco)

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.CJacoControlManagerRemote.SendBasicTrajectory ( CProductJaco  jaco,
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.CJacoControlManagerRemote.SendJoystickFunctionality ( CProductJaco  jaco,
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.CJacoControlManagerRemote.SendTrajectoryFunctionnality ( CProductJaco  jaco,
CPointsTrajectory  PointsTrajectory 
)

Sends a basic(without limitation) angular 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.CJacoControlManagerRemote.SetAngularControl ( CProductJaco  jaco)

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.CJacoControlManagerRemote.SetCartesianControl ( CProductJaco  jaco)

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.CJacoControlManagerRemote.StartControlAPI ( CProductJaco  jaco)

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.CJacoControlManagerRemote.StopControlAPI ( CProductJaco  jaco)

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: