[cnoid]CnoidInterface API Reference - graspPlugin/wiki GitHub Wiki
-
createGp7ParaInterface(string model_name)
パラレルグリッパロボットのインターフェースを作成する.
▶️ 引数:
①string model_name: パラレルグリッパロボットのモデル名
⤴️ 返り値:
①CnoidInterface: パラレルインターフェース
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
-
createGp7ShutInterface(string model_name)
シャッターグリッパロボットのインターフェースを作成する.
▶️ 引数:
①string model_name: シャッターグリッパロボットのモデル名.
⤴️ 返り値:
①CnoidInterface: シャッターインターフェース.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ShutInterface("gp7_shuttergripper_z_wrist")
-
setMode(int operating_mode)
ロボット・力覚センサ・カメラ・グリッパ全てのモードを指定したモードに切り替える.
▶️ 引数:
①int operating_mode: 切り替えるモード.
・SIM_MODE (1): シミュレーションモードに切り替える.
・REAL_MODE (2): 実機モードに切り替える.
ロボット・力覚センサ・カメラ・グリッパの全てがオンライン状態である必要がある.
⤴️ 返り値:
①bool: モード切り替えの成否.
・True: モード切り替え成功.
・False: モード切り替え失敗.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
gp7_para.setMode(REAL_MODE)
-
setMode(int device_id, int operating_mode)
ロボット・力覚センサ・カメラ・グリッパのいずれかのモードを指定したモードに切り替える.
▶️ 引数:
①int device_id: デバイスID. モードを切り替えたいデバイスのデバイスIDを入力する.
・ROBOT (0): ロボット.
・FORCE_SENSOR (1): 力覚センサ.
・CAMERA (2): カメラ.
・GRIPPER (3): グリッパ.
②int operating_mode: 切り替えるモード.
・SIM_MODE (1): 指定したデバイスをシミュレーションモードに切り替える.
・REAL_MODE (2): 指定したデバイスを実機モードに切り替える.
⤴️ 返り値:
①bool: モード切り替えの成否.
・True: モード切り替え成功.
・False: モード切り替え失敗.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
gp7_para.setMode(GRIPPER, REAL_MODE)
-
getMode(int device_id)
ロボット・力覚センサ・カメラ・グリッパのいずれかのモードを取得する.
▶️ 引数:
①int device_id: デバイスID. モードを取得したいデバイスのデバイスIDを入力する.
・ROBOT (0): ロボット.
・FORCE_SENSOR (1): 力覚センサ.
・CAMERA (2): カメラ.
・GRIPPER (3): グリッパ.
⤴️ 返り値:
①int:
・1: シミュレーションモード.
・2: 実機モード.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
gp7_para.getMode(ROBOT)
-
setServoState(bool servo_state)
サーボ状態の切り替えを行う.(ロボットが実機モードである必要がある).
▶️ 引数:
①bool servo_state:
・True: サーボON.
・False: サーボOFF.
⤴️ 返り値:
①bool: サーボ切り替えの成否.
・True: サーボ切り替え成功.
・False: サーボ切り替え失敗.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
gp7_para.setServoState(True)
-
getModelJointAngles()
シミュレーション上のロボットの各関節角度を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①list: 各関節角度が格納されたリスト.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
q = gp7_para.getModelJointAngles()
-
getRealJointAngles()
実機の各関節角度を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①list: 各関節角度が格納されたリスト.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
q = gp7_para.getRealJointAngles()
-
getModelPRpy(string joint_name = "palm")
シミュレーション上のロボットの指定した関節の位置・姿勢を取得する.
▶️ 引数:
①string joint_name = "palm": 関節の名前. デフォルトは手先.
⤴️ 返り値:
①tuple(list, list): (位置, 姿勢)
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
p, R = gp7_para.getModelPRpy()
-
setIKCenter()
逆運動学を解くための初期値を現在のシミュレーターのロボットの位置に設定する.
逆運動学を解けない,または望まない解が出る場合に理想的な解の周辺に設定すると良い.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 成否.
・True: 成功.
・False: 失敗. -
setIKCenter(list q)
逆運動学を解くための初期値を指定した関節角度に設定する.
逆運動学を解けない,または望まない解が出る場合に理想的な解の周辺に設定すると良い.
▶️ 引数:
①list q: 初期値とする関節角度.
⤴️ 返り値:
①bool: 成否.
・True: 成功.
・False: 失敗.
-
getForce()
全ての軸に対する力・モーメントの値を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①list: 各力覚値が格納されたリスト.([Fx,Fy,Fz,Mx,My,Mz])
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
forces = gp7_para.getForce()
print(f"Fx: {forces[0]}")
-
moveGripper(string order, list values)
グリッパを指定したオーダー通りに動かす.
▶️ 引数:
①string order: 文字列型のオーダー.
②list values: グリッパの開き幅,電流値,速度などを指定する.
⤴️ 返り値:
①bool: 成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
gp7_para.moveGripper("open", [0]) # パラレルグリッパを最大まで開く
gp7_para.moveGripper("open_width", [50]) # パラレルグリッパを50mm開く
gp7_para.moveGripper("close", [200]) # パラレルグリッパを200pwmで閉じる
gp7_para.moveGripper("close_low", [0]) # パラレルグリッパを弱め力(120pwm)で閉じる
gp7_para.moveGripper("close_middle", [0]) # パラレルグリッパを300pwmで閉じる
gp7_para.moveGripper("close_high", [0]) # パラレルグリッパを強めの力(350pwm)で閉じる
gp7_shut = createGp7ShutInterface("gp7_shuttergripper_4finger")
gp7_shut.moveGripper("open", [30]) # シャッターグリッパを30*2.69[mA]で開く(電流制御)
gp7_shut.moveGripper("move", [30]) # シャッターグリッパを30*2.69[mA]で閉じる(電流制御)
gp7_shut.moveGripper("rotate", [30]) # シャッターグリッパを30[rpm]で回転させる(速度制御)
gp7_shut.moveGripper("keep", [0]) # シャッターグリッパの回転を止める
-
moveJ(int servo_power, list target_joint_angles, list forces, bool is_wait, bool check_coll)
ロボットを指定した関節角度に移動させる.
▶️ 引数:
①int servo_power: 動作スピードを決める値. 1〜100の範囲の値を入れる. 値が大きいほど動作スピードが上がる.
②list target_joint_angles: 関節角度の配列. 第1関節から順に[q1,q2,...q6]の順に指定する. 単位は[deg].
③list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
④bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑤bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
q = [0,0,0,0,-90,0]
forces = [100,100,100,1,1,1]
gp7_para.moveJ(servo_power, q, forces, True, True)
-
moveL(float speed, list target_coordinates, list forces, bool is_wait, bool check_coll)
ロボットの姿勢を変えずに,指定した座標に移動させる. 手先(palm)ではなく,J6の先端(YRC_PALM)を指定した座標に移動させる.
▶️ 引数:
①float speed: 動作スピードを決める値. 単位は[m/s]. 上限値が決められている(0.1[m/s]).
②list target_joint_angles: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
③list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
④bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑤bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
speed = 0.01
p, R = gp7_para.getModelPRpy("YRC_PALM")
p[2] += 0.1
forces = [100,100,100,1,1,1]
gp7_para.moveL(speed, p, forces, True, True)
-
moveP(int servo_power, list p, list R, list forces, bool is_wait, bool check_coll)
ロボットを指定した位置・姿勢に移動させる. grasp-plaginの逆運動学を解く機能を使用している. 手先(palm)を基準として逆運動学を解いている.
▶️ 引数:
①int servo_power: 動作スピードを決める値. 1〜100の範囲の値を入れる. 値が大きいほど動作スピードが上がる.
②list p: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
③list R: (3×3)配列の回転行列.
④list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑤bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑥bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
p, R = gp7_para.getModelPRpy()
p[2] += 0.1
forces = [100,100,100,1,1,1]
gp7_para.moveP(servo_power, p, R, forces, True, True)
-
moveGrasp(int servo_power, string target_name, list offset, int graspID, list forces, bool is_wait, bool check_coll)
指定したオブジェクトに対して定義した把持パターンを元に,その位置まで移動する.
▶️ 引数:
①int servo_power: 動作スピードを決める値. 1〜100の範囲の値を入れる. 値が大きいほど動作スピードが上がる.
②string target_name: 対象となるオブジェクト. choreonoid上でのオブジェクト名を入力する.
③list offset: 定義した把持パターンからのオフセット距離. (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④int graspID: 把持パターンを指定する. デフォルトでは動作可能な把持パターンが選ばれ実行される.
⑤list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑥bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑦bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
from cnoid.CnoidInterface import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
forces = [100,100,100,1,1,1]
gp7_para.moveGrasp(servo_power, "peg_8", [0,0,0.01], 0, forces, True, True)
-
moveJ(CnoidInterface gp7, int servo_power, list target_joint_angles, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True)
ロボットを指定した関節角度に移動させる.
▶️ 引数:
①CnoidInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 1〜100の範囲の値を入れる. 値が大きいほど動作スピードが上がる.
③list target_joint_angles: 関節角度の配列. 第1関節から順に[q1,q2,...q6]の順に指定する. 単位は[deg].
④list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑤bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑥bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
q = [0,0,0,0,-90,0]
moveJ(gp7_para, servo_power, q)
-
moveL(CnoidInterface gp7, float speed, list target_coordinates, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True)
ロボットの姿勢を変えずに,指定した座標に移動させる. 手先(palm)ではなく,J6の先端(YRC_PALM)を指定した座標に移動させる.
▶️ 引数:
①CnoidInterface gp7: ロボットインターフェース.
②float speed: 動作スピードを決める値. 単位は[m/s]. 上限値が決められている(0.1[m/s]).
③list target_joint_angles: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑤bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑥bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
speed = 0.01
p, R = gp7_para.getModelPRpy("YRC_PALM")
p[2] += 0.1
moveL(gp7_para, speed, p)
-
moveP(CnoidInterface gp7, int servo_power, list p, list R, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True)
ロボットを指定した位置・姿勢に移動させる. grasp-plaginの逆運動学を解く機能を使用している. 手先(palm)を基準として逆運動学を解いている.
▶️ 引数:
①CnoidInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 1〜100の範囲の値を入れる. 値が大きいほど動作スピードが上がる.
③list p: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④list R: (3×3)配列の回転行列.
⑤list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑥bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑦bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
p, R = gp7_para.getModelPRpy()
p[2] += 0.1
moveP(gp7_para, servo_power, p, R)
-
moveRelative(CnoidInterface gp7, flaot speed, list target_vector, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True)
ロボットの現在位置からの相対座標を指定して移動させる. ワールド座標系を入力する.
▶️ 引数:
①CnoidInterface gp7: ロボットインターフェース.
②float speed: 動作スピードを決める値. 単位は[m/s]. 上限値が決められている(0.1[m/s]).
③list target_vector: 現在位置からの相対座標.(1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑤bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑥bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
speed = 0.01
moveRelative(gp7_para, speed, [0.1,0,0])
-
translationMoveAtPalm(CnoidInterface gp7, flaot speed, list palm_diff, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True)
ロボットの現在位置からの相対座標を指定して移動させる. ハンド座標系を入力する.
▶️ 引数:
①CnoidInterface gp7: ロボットインターフェース.
②float speed: 動作スピードを決める値. 単位は[m/s]. 上限値が決められている(0.1[m/s]).
③list palm_diff: 現在位置からの相対座標.(1×3)配列のハンド座標系[x,y,z]. 単位は[m].
④list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑤bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑥bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
speed = 0.01
translationMoveAtPalm(gp7_para, speed, [0.1,0,0])
-
rotationMoveAtPalm(CnoidInterface gp7, int servo_power, list euler, list offset, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True)
ハンド座標系の軸を回転中心に,指定した角度だけロボットを回転動作させる.
▶️ 引数:
①CnoidInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 1〜100の範囲の値を入れる. 値が大きいほど動作スピードが上がる.
③list euler: 回転角度. (1×3)配列のハンド座標系[x軸周り,y軸回り,z軸回り]. 単位は[deg].
④list offset: 回転軸のオフセット量. (1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑤list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑥bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑦bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
rotationMoveAtPalm(gp7_para, servo_power, [30,0,0], [0,0,0])
-
moveGrasp(CnoidInterface gp7, int servo_power, string target_name, list offset = [0,0,0], int graspID = -1, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True)
指定したオブジェクトに対して定義した把持パターンを元に,その位置まで移動する.
▶️ 引数:
①CnoidInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 1〜100の範囲の値を入れる. 値が大きいほど動作スピードが上がる.
③string target_name: 対象となるオブジェクト. choreonoid上でのオブジェクト名を入力する.
④list offset: 定義した把持パターンからのオフセット距離. (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
⑤int graspID: 把持パターンを指定する. デフォルトでは動作可能な把持パターンが選ばれ実行される.
⑥list forces: 力覚センサの閾値を指定する. x軸方向の力から順に[Fx,Fy,Fz,Mx,My,Mz]の順に指定する.
単位は力[N],モーメント[Nm].
⑦bool is_wait: 動作中,スリープするかどうかを指定する.
・True: 動作中,スリープが入る. スリープ中は他の指令を送れない.
・False: 動作中,スリープが入らない. 動作中,もう片方のロボットを動かすなどの指令を送ることができる.
⑧bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
moveGrasp(gp7_para, servo_power, "peg_8", [0,0,0.01], 0)
-
moveGraspByIKCenters(CnoidInterface gp7, int servo_power, string target_name, list offset = [0,0,0], int graspID = -1, list forces = [100,100,100,1,1,1], bool is_wait = True, bool check_coll = True), list ik_centers = [])
パーツの姿勢が未知の場合に,失敗せずmoveGraspを行うための関数.複数の関節角度を初期値としてGraspPatternをトライし,最初にJ4がひっくり返らずに成功した初期値でmoveGraspを行う.動作後の姿勢でSetIKCenterするので注意.offsetはz軸のみ安全,他の軸は保証しない.
▶️ 引数:
moveGraspと共通のものは省略
⑧list ik_centers: 初期値候補となる複数の関節角度を内包したリスト.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗. エラーメッセージから失敗した原因を探ることができる.
サンプルコード
import sys
from cnoid.Util import *
from cnoid.CnoidInterface import *
topdir = executableTopDirectory
MotionModulePath = topdir + "/ext/graspPlugin/CnoidInterface/python_MotionModule/"
sys.path.append(MotionModulePath)
from MotionModule import *
gp7_para = createGp7ParaInterface("gp7_parallelgripper")
servo_power = 1
ik_centers = [[0.0, -30.0, -30.0, 0.0, -90.0, 0.0], [0.0, -30.0, -30.0, 0.0, -90.0, 90.0],[0.0, -30.0, -30.0, 0.0, -90.0, -90.0]]
moveGraspByIKCenters(gp7_para, servo_power, "peg_8", [0,0,0.01], 0, ik_centers = ik_centers)