Dobot CRシリーズ SDKで取得可能なロボットステータス

ロボットのデカルト座標値算出方法

Dobot社のロボットは多くのロボットステータスがSDKにより取得可能であり、独自のアプリケーションを作成することで、ロボットの能力を最大限に活用できます。

取得できるステータスはDobot Download Centerから取得できるSDKのコード内に記述されています。

 class CFeedbackData
	{
	public:
		unsigned short MessageSize = 0;//メッセージのバイト長の合計

		short Reserved1[3];//予約

		long DigitalInputs = 0;//IO入力
		long DigitalOutputs = 0;//IO出力
		long RobotMode = 0;//ロボットモード
		long TimeStamp = 0;//タイムスタンプ(単位ms)

		long Reserved2 = 0;//予約2
		long TestValue = 0;//  0x0123 4567 89AB CDEF
		double Reserved3 = 0;//予約3

		double SpeedScaling = 0;//速度オーバーライド値
		double LinearMomentumNorm = 0; //ロボット運動量の現在値
		double VMain = 0;//制御盤電圧
		double VRobot = 0;//ロボット本体電圧
		double IRobot = 0;//ロボット本体電流

		double Reserved4 = 0;//予約4
		double Reserved5 = 0;//予約5

		double ToolAccelerometerValues[3];//TCP加速度
		double ElbowPosition[3];//肘位置
		double ElbowVelocity[3];//肘速度

		double QTarget[6];//目標関節位置
		double QdTarget[6];//目標関節速度
		double QddTarget[6];//目標関節加速度
		double ITarget[6];//目標関節モーター電流
		double MTarget[6];//目標関節モーター電流
		double QActual[6];//実際の関節位置
		double QdActual[6];//実際の関節速度
		double IActual[6];//実際の関節モーター電流
		double IControl[6];//TCP力覚センサー値
		double ToolVectorActual[6];//実際のTCPデカルト座標値
		double TCPSpeedActual[6]; //実際のTCP速度
		double TCPForce[6];//TCP力値
		double ToolVectorTarget[6];//目標とするTCPデカルト座標値
		double TCPSpeedTarget[6];//目標とするTCP速度
		double MotorTempetatures[6];//各軸モーター温度
		double JointModes[6];//関節制御モード
		double VActual[6];//各軸関節電圧

		unsigned char Handtype[4];//関節方向 R,D,N,Cfg
		unsigned char User = 0;//ユーザー座標系
		unsigned char Tool = 0;//工具座標系
		unsigned char RunQueuedCmd = 0;//動作キューフラグ
		unsigned char PauseCmdFlag = 0;//一時停止フラグ
		unsigned char VelocityRatio = 0;//ジョイント速度レシオ(0~100)
		unsigned char AccelerationRatio = 0;//ジョイント加速度レシオ(0~100)
		unsigned char JerkRatio = 0;//ジョイント加加速度レシオ(0~100)
		unsigned char XYZVelocityRatio = 0;//デフォルト座標系速度レシオ(0~100)
		unsigned char RVelocityRatio = 0;//デフォルト座標系回転速度レシオ(0~100)
		unsigned char XYZAccelerationRatio = 0;//デフォルト座標系加速度レシオ(0~100)
		unsigned char RAccelerationRatio = 0;//デフォルト座標回転系加速度レシオ(0~100)
		unsigned char XYZJerkRatio = 0;//デフォルト座標系加加速度レシオ(0~100)
		unsigned char RJerkRatio = 0;//デフォルト座標回転系加加速度レシオ(0~100)

		unsigned char BrakeStatus = 0; //ブレーキ状態
		unsigned char EnableStatus = 0;//イネーブル状態
		unsigned char DragStatus = 0;//ティーチングモード状態
		unsigned char RunningStatus = 0;//ロボット動作状態
		unsigned char ErrorStatus = 0;//エラー状態
		unsigned char JogStatus = 0;//ロボットのジョグ状態
		unsigned char RobotType = 0; //ロボットのタイプ
		unsigned char DragButtonSignal = 0; //ティーチングモードボタン信号
		unsigned char EnableButtonSignal = 0;//イネーブルボタンの信号
		unsigned char RecordButtonSignal = 0;//ロボット動作記録ボタンの信号
		unsigned char ReappearButtonSignal = 0;//軌跡再生ボタンの信号
		unsigned char JawButtonSignal = 0; //グリッパ制御信号
		unsigned char SixForceOnline = 0;//六軸力覚センサーの通信状況

		unsigned char Reserved6[82];//予約6

		double MActual[6];//実トルク
		double Load = 0;//ハンド搭載kg
		double CenterX = 0;//ハンド重心X方向距離mm
		double CenterY = 0;//ハンド重心Y方向距離mm
		double CenterZ = 0;//ハンド重心Z方向距離mm
		double UserValu[6];//ユーザー座標系設定値
		double Tools[6];//ツール座標系設定値
		double TraceIndex = 0;//再現軌跡選択のインデックス
		double SixForceValue[6];//現在の6軸力覚センサーの変換前の値
		double TargetQuaternion[4]; //[qw,qx,qy,qz] 目標とする四元数
		double ActualQuaternion[4];//[qw,qx,qy,qz]  実際の四元数

		unsigned char Reserved7[24];//予約7
	};