|
API C#
|
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... | |
This class represent all method needed to move and control JACO from a computer via USB protocol.
| 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.
| encryptedPass | The encrypted password. |
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A USB packet has been skip during the communication. |
| 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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.
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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.
| 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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.
| PointsTrajectory | The 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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.
| joystickValue | The 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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.
| PointsTrajectory | The 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A 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"); }
| CJACOOfflineException | JACO is offline (USB Connection) |
| CAccessDeniedException | You must enter a valid password when you declare a CJacoArm object. |
| CJacoCommFailedException | Communication has been broken and the system was not able to recover from the fault. |
| CPacketSynchroException | A USB packet has been skip during the communication. |