[cnoid]JaksInterface API Reference - graspPlugin/wiki GitHub Wiki
-
createJaksInterface(
$\textcolor{mediumblue}{\text{string}}$ ros_namespace,$\textcolor{mediumblue}{\text{string}}$ robot_body_name)
ロボットのインターフェースを作成する.
▶️ 引数:
①string ros_namespace: ros名前空間名
②string robot_body_name: ロボットモデル名
⤴️ 返り値:
①class JaksInterface*: JaksInterfaceクラスのインスタンス
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper") # parallelのInterfaceの作成
chuck = JaksInterface.createJaksInterface("/gp7_chuck/", "gp7_chucktergripper") # chuckのInterfaceの作成
-
realModeReady()
力覚センサとの通信状態を確認する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 通信状態確認の結果.
・True: 通信可.
・False: 通信不可.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.ForceSensor.realModeReady()
-
setMode(
$\textcolor{mediumblue}{\text{enum}}$ operating_mode)
力覚センサのモードを指定したモードに切り替える.
▶️ 引数:
①enum OperatingMode operating_mode: 切り替えるモード.
・SIM_MODE: シミュレーションモードに切り替える.
・REAL_MODE: 実機モードに切り替える.
⤴️ 返り値:
①bool: モード切り替えの成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.ForceSensor.setMode(SIM_MODE) # シミュレーションモードに切り替え
para.ForceSensor.setMode(REAL_MODE) # 実機モードに切り替え
-
getMode()
力覚センサの現在のモードを取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①enum OperatingMode: モード.
・OperatingMode.SIM_MODE: シミュレーションモード.
・OperatingMode.REAL_MODE: 実機モード.
・OperatingMode.INVALID_MODE: 無効なモード.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.ForceSensor.setMode(SIM_MODE)
para.ForceSensor.getMode()
-
getForce()
力覚センサの全ての軸に対する力[N]・モーメント[Nm]の値を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 力覚値取得の成否.
・True: 成功.
・False: 失敗.
②list: 各力覚値が格納されたリスト.([Fx,Fy,Fz,Mx,My,Mz])
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.ForceSensor.realModeReady()
para.ForceSensor.setMode(REAL_MODE)
is_successful, force = para.ForceSensor.getForce()
if is_successful:
print(force)
-
setForceLimit(
$\textcolor{mediumblue}{\text{list}}$ force_limit)
力覚上限値を設定する.
▶️ 引数:
①list force_limit: 力覚上限値([N][Nm])を格納したリスト.([Fx_min,Fx_max,Fy_min,Fy_max,Fz_min,Fz_max,Mx_min,Mx_max,My_min,My_max,Mz_min,Mz_max])
⤴️ 返り値:
①bool: 力覚上限値設定の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.ForceSensor.realModeReady()
para.ForceSensor.setMode(REAL_MODE)
forces = para.ForceSensor.setForceLimit([-500, 500, -500, 500, -500, 500, -4, 4, -4, 4, -4, 4])
-
setRelativeForceLimit(
$\textcolor{mediumblue}{\text{list}}$ relative_force_limit)
現在の力覚値からの相対量を入力として力覚上限値を設定する.
▶️ 引数:
①list relative_force_limit: 相対力覚上限値([N][Nm])を格納したリスト.([d_Fx,d_Fy,d_Fz,d_Mx,d_My,d_Mz])
⤴️ 返り値:
①bool: 力覚上限値設定の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.ForceSensor.realModeReady()
para.ForceSensor.setMode(REAL_MODE)
forces = para.ForceSensor.setRelativeForceLimit([20, 20, 20, 1, 1, 1])
-
realModeReady()
グリッパーとの通信状態を確認する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 通信状態確認の結果.
・True: 通信可.
・False: 通信不可.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Gripper.realModeReady()
-
setMode(
$\textcolor{mediumblue}{\text{enum}}$ operating_mode)
グリッパーのモードを指定したモードに切り替える.
▶️ 引数:
①enum OperatingMode operating_mode: 切り替えるモード.
・SIM_MODE: シミュレーションモードに切り替える.
・REAL_MODE: 実機モードに切り替える.
⤴️ 返り値:
①bool: モード切り替えの成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Gripper.setMode(SIM_MODE) # シミュレーションモードに切り替え
para.Gripper.setMode(REAL_MODE) # 実機モードに切り替え
-
getMode()
グリッパーの現在のモードを取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①enum OperatingMode: モード.
・OperatingMode.SIM_MODE: シミュレーションモード.
・OperatingMode.REAL_MODE: 実機モード.
・OperatingMode.INVALID_MODE: 無効なモード.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Gripper.setMode(SIM_MODE)
para.Gripper.getMode()
-
moveGripper(
$\textcolor{mediumblue}{\text{string}}$ order,$\textcolor{mediumblue}{\text{list}}$ values)
グリッパーを指定したオーダー通りに動かす.
▶️ 引数:
①string order: 文字列型のオーダー.
②list values: グリッパーの開き幅,電流値,速度などを指定する.
⤴️ 返り値:
①bool: グリッパー動作の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Gripper.realModeReady()
para.Gripper.setMode(REAL_MODE)
para.Gripper.moveGripper("open", [0]) # パラレルグリッパを最大まで開く
para.Gripper.moveGripper("open_width", [50]) # パラレルグリッパを50mm開く
para.Gripper.moveGripper("close", [200]) # パラレルグリッパを200pwmで閉じる
para.Gripper.moveGripper("close_low", [0]) # パラレルグリッパを弱め力(120pwm)で閉じる
para.Gripper.moveGripper("close_middle", [0]) # パラレルグリッパを中くらいの力(300pwm)で閉じる
para.Gripper.moveGripper("close_high", [0]) # パラレルグリッパを強めの力(350pwm)で閉じる
chuck = JaksInterface.createJaksInterface("/gp7_chuck/", "gp7_chucktergripper")
chuck.Gripper.realModeReady()
chuck.Gripper.setMode(REAL_MODE)
chuck.moveGripper("open", [30]) # シャッターグリッパを30*2.69[mA]で開く(電流制御)
chuck.moveGripper("move", [30]) # シャッターグリッパを30*2.69[mA]で閉じる(電流制御)
chuck.moveGripper("rotate", [30]) # シャッターグリッパを30[rpm]で回転させる(速度制御)
chuck.moveGripper("keep", [0]) # シャッターグリッパの回転を止める
-
realModeReady()
カメラとの通信状態を確認する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 通信状態確認の結果.
・True: 通信可.
・False: 通信不可.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Camera.realModeReady()
-
setMode(
$\textcolor{mediumblue}{\text{enum}}$ operating_mode)
カメラのモードを指定したモードに切り替える.
▶️ 引数:
①enum OperatingMode operating_mode: 切り替えるモード.
・SIM_MODE: シミュレーションモードに切り替える.
・REAL_MODE: 実機モードに切り替える.
⤴️ 返り値: ①bool: モード切り替えの成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Camera.setMode(SIM_MODE) # シミュレーションモードに切り替え
para.Camera.setMode(REAL_MODE) # 実機モードに切り替え
-
getMode()
カメラの現在のモードを取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①enum OperatingMode: モード.
・OperatingMode.SIM_MODE: シミュレーションモード.
・OperatingMode.REAL_MODE: 実機モード.
・OperatingMode.INVALID_MODE: 無効なモード.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Camera.setMode(SIM_MODE)
para.Camera.getMode()
-
getCameraImage()
カメラ画像を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: カメラ画像取得の成否.
・True: 成功.
・False: 失敗.
②array: カメラ画像.
③array: カメラ内部パラメータ行列.
④array: レンズ歪み係数.
サンプルコード
from cnoid.JaksInterface import *
import cv2
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Camera.realModeReady()
para.Camera.setMode(REAL_MODE)
is_successful, img, K_mtx, dist_coef = para.Camera.getCameraImage()
if is_successful:
cv2.imwrite("/home/robotlab/para_sample_image.png", img)
-
setCameraParameter(
$\textcolor{mediumblue}{\text{int}}$ parameter,$\textcolor{mediumblue}{\text{int}}$ value)
カメラのパラメータを設定する.
▶️ 引数:
①int parameter: 設定するパラメータ.
・AUTOFOCUS: オートフォーカスモードの設定.
・FOCAL_LENGTH: 焦点距離の設定.
②int value: パラメータの詳細情報を指定する.
⤴️ 返り値:
①bool: カメラパラメータ設定の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.Camera.realModeReady()
para.Camera.setMode(REAL_MODE)
para.Camera.setCameraParameter(para.Camera.AUTOFOCUS, 0) # オートフォーカスを無効化
para.Camera.setCameraParameter(para.Camera.AUTOFOCUS, 1) # オートフォーカスを有効化
para.Camera.setCameraParameter(para.Camera.FOCAL_LENGTH, 100) # 焦点距離の設定値(0〜225)を100に設定
-
realModeReady()
ロボットとの通信状態を確認する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 通信状態確認の結果.
・True: 通信可.
・False: 通信不可.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
-
setMode(
$\textcolor{mediumblue}{\text{enum}}$ operating_mode)
ロボットのモードを指定したモードに切り替える.
▶️ 引数:
①enum OperatingMode operating_mode: 切り替えるモード.
・SIM_MODE: シミュレーションモードに切り替える.
・REAL_MODE: 実機モードに切り替える.
⤴️ 返り値: ①bool: モード切り替えの成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE) # シミュレーションモードに切り替え
para.GP7.setMode(REAL_MODE) # 実機モードに切り替え
-
getMode()
ロボットの現在のモードを取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①enum OperatingMode: モード.
・OperatingMode.SIM_MODE: シミュレーションモード.
・OperatingMode.REAL_MODE: 実機モード.
・OperatingMode.INVALID_MODE: 無効なモード.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
para.GP7.getMode()
-
setServoState(
$\textcolor{mediumblue}{\text{bool}}$ servo_state)
サーボ状態の切り替えを行う.
▶️ 引数:
①bool servo_state: サーボ状態.
・True: サーボON.
・False: サーボOFF.
⤴️ 返り値:
①bool: サーボ切り替えの成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.GP7.setServoState(True) # サーボオン
para.GP7.setServoState(False) # サーボオフ
-
getServoState()
サーボ状態を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: サーボ状態取得の成否.
・True: 成功.
・False: 失敗.
①bool: サーボ状態.
・True: サーボON.
・False: サーボOFF.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.GP7.setServoState(True)
para.GP7.getServoState()
-
getJointAngles()
実機の各関節角度を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 各関節角度取得の成否.
・True: 成功.
・False: 失敗.
②list: 各関節角度が格納されたリスト.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.GP7.getJointAngles()
-
setServoPowerLimit(
$\textcolor{mediumblue}{\text{int}}$ servo_power)
サーボパワーの上限値を設定する. デフォルトのサーボパワー上限値は10[%].
▶️ 引数:
①int servo_power: サーボパワー上限値.
⤴️ 返り値:
①bool: サーボパワー上限値設定の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.GP7.setServoPowerLimit(15)
-
getServoPowerLimit()
サーボパワーの上限値を取得する.
なし.
⤴️ 返り値:
①int: サーボパワー上限値.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.GP7.getServoPowerLimit()
-
setSpeedLimit(
$\textcolor{mediumblue}{\text{float}}$ speed)
スピードの上限値を設定する. デフォルトのスピード上限値は0.3[m/s].
▶️ 引数:
①float speed: スピード上限値.
⤴️ 返り値:
①bool: スピード上限値設定の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.GP7.setSpeedLimit(0.35)
-
getSpeedLimit()
スピードの上限値を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①float: スピード上限値.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.GP7.getSpeedLimit()
-
stopMotion(
$\textcolor{mediumblue}{\text{float}}$ wait_time = 0)
ロボットの動作を停止する.
▶️ 引数:
① wait_time 指定した時間後に停止する.
⤴️ 返り値:
① bool: 停止の成否.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.moveJ(1, [0, -30, -30, 0, -90, 90], [20, 20, 20, 1, 1, 1], True, True)
para.GP7.stopMotion() # 即停止
-
setEnvironment(
$\textcolor{mediumblue}{\text{string}}$ body_item_name)
指定したオブジェクトを干渉環境にセットする.
▶️ 引数:
①string body_item_name: 干渉環境にセットするオブジェクト名.
⤴️ 返り値:
①bool: 干渉環境設定の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
collision_controller = CollisionController() # インスタンス作成
collision_controller.setEnvironment("gp7_parallelgripper")
-
setEnvironment()
チェックのついた全てのオブジェクトを干渉環境にセットする.
▶️ 引数:
なし.
⤴️ 返り値:
なし.
サンプルコード
from cnoid.JaksInterface import *
collision_controller = CollisionController() # インスタンス作成
collision_controller.setEnvironment()
-
removeEnvironment(
$\textcolor{mediumblue}{\text{string}}$ body_item_name)
指定したオブジェクトを干渉環境から取り除く.
▶️ 引数:
①string body_item_name: 干渉環境から取り除くオブジェクト名.
⤴️ 返り値:
①bool: 干渉環境設定の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
collision_controller = CollisionController() # インスタンス作成
collision_controller.setEnvironment("gp7_parallelgripper")
collision_controller.removeEnvironment("gp7_parallelgripper")
-
removeEnvironment()
チェックのついた全てのオブジェクトを干渉環境から取り除く.
▶️ 引数:
なし.
⤴️ 返り値:
なし.
サンプルコード
from cnoid.JaksInterface import *
collision_controller = CollisionController() # インスタンス作成
collision_controller.setEnvironment()
collision_controller.removeEnvironment()
-
getBodyItemEnv()
干渉環境オブジェクトを取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①list: 干渉環境オブジェクト名の配列.
サンプルコード
from cnoid.JaksInterface import *
collision_controller = CollisionController() # インスタンス作成
collision_controller.setEnvironment()
collision_controller.getBodyItemEnv()
-
moveJ(
$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{list}}$ joint_angles,$\textcolor{mediumblue}{\text{list}}$ thresh_forces,$\textcolor{mediumblue}{\text{bool}}$ is_wait,$\textcolor{mediumblue}{\text{bool}}$ check_coll)
ロボットを指定した関節角度に移動させる.
▶️ 引数:
①int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
②list joint_angles: 関節角度の配列. 第1関節から[q1,q2,...q6]の順に指定する. 単位は[deg].
③list thresh_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.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.moveJ(1, [0, -30, -30, 0, -90, 90], [20, 20, 20, 1, 1, 1], True, True)
-
moveL(
$\textcolor{mediumblue}{\text{float}}$ speed,$\textcolor{mediumblue}{\text{list}}$ coordinates,$\textcolor{mediumblue}{\text{list}}$ thresh_forces,$\textcolor{mediumblue}{\text{bool}}$ is_wait,$\textcolor{mediumblue}{\text{bool}}$ check_coll)
ロボットの姿勢を変えずに,J6の先端(YRC_PALM)を指定した座標に移動させる.
▶️ 引数:
①float speed: 動作スピードを決める値. 単位は[m/s]. 上限値(デフォルト)は0.3[m/s].
②list coordinates: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
③list thresh_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.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.moveL(0.05, [1.05, 0.425, 0.5], [20, 20, 20, 1, 1, 1], True, True)
-
movePR(
$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{list}}$ p,$\textcolor{mediumblue}{\text{list}}$ R,$\textcolor{mediumblue}{\text{list}}$ thresh_forces,$\textcolor{mediumblue}{\text{bool}}$ is_wait,$\textcolor{mediumblue}{\text{bool}}$ check_coll)
ロボットを指定した位置・姿勢に移動させる. grasp-plaginの逆運動学を解く機能を利用している. 手先(palm)を基準として逆運動学を解いている.
▶️ 引数:
①int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
②list p: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
③list R: (3×3)配列の回転行列.
④list thresh_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.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
p = [1.0675, 0.425, 0.3156]
R = [[0, 0, -1],[0, -1, 0],[-1, 0, 0]]
para.movePR(1, p, R, [10, 10, 10, 1, 1, 1], True, True)
-
moveGrasp(
$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{string}}$ target_item_name,$\textcolor{mediumblue}{\text{list}}$ offset,$\textcolor{mediumblue}{\text{int}}$ grasp_id,$\textcolor{mediumblue}{\text{list}}$ thresh_forces,$\textcolor{mediumblue}{\text{bool}}$ is_wait,
$\textcolor{mediumblue}{\text{bool}}$ check_coll)
指定したオブジェクトに対して,あらかじめ保存した把持パターンを元に移動する.
▶️ 引数:
①int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
②string target_item_name: 対象となるオブジェクト. choreonoid上におけるオブジェクト名を入力する.
③list offset: 指定した把持パターンからのオフセット距離. (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④int grasp_id: 把持パターンを指定する. -1を指定すると自動で把持パターンが選ばれ実行される.
⑤list thresh_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.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
para.moveGrasp(1, "belt", [0, 0, 0.05], 0, [20, 20, 20, 1, 1, 1], True, True)
-
getGraspJointAngles(
$\textcolor{mediumblue}{\text{string}}$ target_item_name,$\textcolor{mediumblue}{\text{int}}$ grasp_id)
把持パターンを解いたときの各関節角度を取得する.
▶️ 引数:
①string target_item_name: 対象となるオブジェクト. choreonoid上におけるオブジェクト名を入力する.
②int grasp_id: 把持パターンを指定する. -1を指定すると自動で把持パターンが選ばれ実行される.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗.
②list: 把持パターンを解いたときの関節角度の配列.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.realModeReady()
para.GP7.setMode(REAL_MODE)
is_successful, joint_angles = para.getGraspJointAngles("belt", 0)
if is_successful:
print(joint_angles)
-
setIKCenter()
GP7のモードがREAL_MODEの場合: 逆運動学を解くための初期値を現在の実機ロボットの関節角度に設定する.
GP7のモードがSIM_MODEの場合: 逆運動学を解くための初期値を現在のロボットモデルの関節角度に設定する.
逆運動学を解けない,または望まない解が出る場合に理想的な解の周辺に設定すると良い.
デフォルトの値は[0, -30, -30, 0, -90, 0](deg).
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
para.setIKCenter()
-
setIKCenter(
$\textcolor{mediumblue}{\text{list}}$ q)
逆運動学を解くための初期値を指定した関節角度[deg]に設定する.
逆運動学を解けない,または望まない解が出る場合に理想的な解の周辺に設定すると良い.
デフォルトの値は[0, -30, -30, 0, -90, 0](deg).
▶️ 引数:
①list q: 逆運動学の初期値とする関節角度.
⤴️ 返り値:
①bool: 成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
para.setIKCenter([0, -30, -30, 0, -90, 90])
-
getIKCenter()
逆運動学を解くための初期値を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①list: 逆運動学を解くための初期値となる関節角度の配列.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
para.getIKCenter()
-
getModelJointAngles()
シミュレーション上のロボットモデルの各関節角度を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①list: 関節角度の配列.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
para.getModelJointAngles()
-
getJointAngles()
GP7のモードがREAL_MODEの場合: 実機ロボットの各関節角度を取得する.
GP7のモードがSIM_MODEの場合: ロボットモデルの各関節角度を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①bool: 各関節角度取得の成否.
・True: 成功.
・False: 失敗.
②list: 関節角度の配列.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
is_successful, joint_angles = para.getJointAngles()
if is_successful:
print(joint_angles)
-
getModelPR(
$\textcolor{mediumblue}{\text{string}}$ joint_name="")
シミュレーション上のロボットモデルの指定した関節の位置・姿勢を取得する.
▶️ 引数:
①string joint_name="": 関節の名前. デフォルトは手先.
⤴️ 返り値:
①list: 指定した関節の位置.
②list: 指定した関節の姿勢.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
p, R = para.getModelPR() # 手先の位置・姿勢を取得する
print(p)
print(R)
p_camera, R_camera = para.getModelPR("CAMERA") # カメラジョイントの位置・姿勢を取得する
print(p_camera)
print(R_camera)
-
getPR(
$\textcolor{mediumblue}{\text{string}}$ joint_name="")
GP7のモードがREAL_MODEの場合: 実機ロボットの指定した関節の位置・姿勢を取得する.
GP7のモードがSIM_MODEの場合: ロボットモデルの指定した関節の位置・姿勢を取得する.
▶️ 引数:
①string joint_name="": 関節の名前. デフォルトは手先.
⤴️ 返り値:
①bool: 位置・姿勢取得の成否.
・True: 成功.
・False: 失敗.
②list: 指定した関節の位置.
③list: 指定した関節の姿勢.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
is_successful, p, R = para.getPR() # 手先の位置・姿勢を取得する
if is_successful:
print(p)
print(R)
is_successful, p_camera, R_camera = para.getPR("CAMERA") # カメラジョイントの位置・姿勢を取得する
if is_successful:
print(p_camera)
print(R_camera)
-
rosNameSpace()
ros名前空間名を取得する.
▶️ 引数:
なし.
⤴️ 返り値:
①string: ros名前空間名.
サンプルコード
from cnoid.JaksInterface import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(SIM_MODE)
para.rosNameSpace()
-
moveJ(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{list}}$ joint_angles,$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,
$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ロボットを指定した関節角度に移動させる.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③list joint_angles: 関節角度の配列. 第1関節から[q1,q2,...q6]の順に指定する. 単位は[deg].
④list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
moveJ(para, 1, [0, -30, -30, 0, -90, 90])
-
moveL(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{float}}$ speed,$\textcolor{mediumblue}{\text{list}}$ coordinates,$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,
$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ロボットの姿勢を変えずに,J6の先端(YRC_PALM)を指定した座標に移動させる.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②float speed: 動作スピードを決める値. 単位は[m/s]. 上限値(デフォルト)は0.3[m/s].
③list coordinates: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
moveL(para, 0.05, [1.05, 0.425, 0.5])
-
movePR(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{list}}$ p,$\textcolor{mediumblue}{\text{list}}$ R,$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,
$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ロボットを指定した位置・姿勢に移動させる. grasp-plaginの逆運動学を解く機能を利用している. 手先(palm)を基準として逆運動学を解いている.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③list p: (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④list R: (3×3)配列の回転行列.
⑤list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
p = [1.0675, 0.425, 0.3156]
R = [[0, 0, -1],[0, -1, 0],[-1, 0, 0]]
movePR(para, 1, p, R)
-
moveGrasp(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{string}}$ target_item_name,$\textcolor{mediumblue}{\text{list}}$ offset=[0, 0, 0],$\textcolor{mediumblue}{\text{int}}$ grasp_id=-1,
$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
指定したオブジェクトに対して,あらかじめ保存した把持パターンを元に移動する.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③string target_item_name: 対象となるオブジェクト. choreonoid上におけるオブジェクト名を入力する.
④list offset: 指定した把持パターンからのオフセット距離. (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
⑤int grasp_id: 把持パターンを指定する. デフォルト(-1)の場合,自動で把持パターンが選ばれ実行される.
⑥list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
moveGrasp(para, 1, "belt", offset=[0, 0, 0.05], grasp_id=0)
-
moveGraspByIKCenters(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{string}}$ target_item_name,$\textcolor{mediumblue}{\text{list}}$ offset=[0, 0, 0],
$\textcolor{mediumblue}{\text{int}}$ grasp_id=-1,$\textcolor{mediumblue}{\text{list}}$ ik_centers=[],$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,
$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
パーツの姿勢が未知の場合に,失敗せずmoveGraspを行うための関数. 複数の関節角度を逆運動学を解くための初期値としてGraspPatternをトライし,最初にJ4がひっくり返らずに成功した初期値でmoveGraspを行う. offsetはz軸のみ安全,他の軸は保証しない.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③string target_item_name: 対象となるオブジェクト. choreonoid上におけるオブジェクト名を入力する.
④list offset: 指定した把持パターンからのオフセット距離. (1×3)配列のワールド座標系[x,y,z]. 単位は[m].
⑤int grasp_id: 把持パターンを指定する. デフォルト(-1)の場合,自動で把持パターンが選ばれ実行される.
⑥list ik_centers: 逆運動学を解くための初期値候補を内包したリスト.
⑦list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
ik_centers = [[0, -30, -30, 0, -90, 0], [0, -30, -30, 0, -90, 90], [0, -30, -30, 0, -90, -90]]
moveGraspByIKCenters(para, 1, "belt", offset=[0, 0, 0.05], grasp_id=0, ik_centers=ik_centers)
-
moveRelative(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{float}}$ speed,$\textcolor{mediumblue}{\text{list}}$ target_vector,$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,
$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ロボットの現在位置からの相対座標(ワールド座標系)を指定して移動させる.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②float speed: 動作スピードを決める値. 単位は[m/s]. 上限値(デフォルト)は0.3[m/s].
③list target_vector: 現在位置からの相対座標.(1×3)配列のワールド座標系[x,y,z]. 単位は[m].
④list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
moveRelative(para, 0.05, [0, 0, 0.1])
-
movePose(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{float}}$ theta,$\textcolor{mediumblue}{\text{string}}$ rotate_axis,$\textcolor{mediumblue}{\text{list}}$ palm_axis_offset=[0, 0, 0],
$\textcolor{mediumblue}{\text{list}}$ palm_offset=[0, 0, 0],$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ワールド座標系の軸を回転軸として,指定した角度に達するまで徐々にロボットを回転動作させる. 姿勢も変化する.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③float theta: 回転角度. 単位は[deg].
④string rotate_axis: ワールド座標系の軸("x","y","z")のいずれかを指定する.
⑤list palm_axis_offset: 回転軸の手先からのオフセット量.(1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑥list palm_offset: 回転中の手先のオフセット量. (1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑦list thresh_forces: 現在の力覚値からの相対量を指定する. 相対分を足した/引いた力覚値が力覚上限値となる.
x軸方向の力から[Fx,Fy,Fz,Mx,My,Mz]の順に指定する. 単位は力[N],モーメント[Nm].
デフォルトの値が存在する.
⑧bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
movePose(para, 1, theta=90, rotate_axis="x", palm_axis_offset=[0.2, 0, 0], palm_offset=[0, 0, 0.1])
-
moveCircle(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{float}}$ theta,$\textcolor{mediumblue}{\text{string}}$ rotate_axis,$\textcolor{mediumblue}{\text{list}}$ palm_axis_offset=[0, 0, 0],
$\textcolor{mediumblue}{\text{list}}$ palm_offset=[0, 0, 0],$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ワールド座標系の軸を回転軸として,指定した角度に達するまで徐々にロボットを回転動作させる. 姿勢は変化しない.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③float theta: 回転角度. 単位は[deg].
④string rotate_axis: ワールド座標系の軸("x","y","z")のいずれかを指定する.
⑤list palm_axis_offset: 回転軸の手先からのオフセット量.(1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑥list palm_offset: 回転中の手先のオフセット量. (1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑦list thresh_forces: 現在の力覚値からの相対量を指定する. 相対分を足した/引いた力覚値が力覚上限値となる.
x軸方向の力から[Fx,Fy,Fz,Mx,My,Mz]の順に指定する. 単位は力[N],モーメント[Nm].
デフォルトの値が存在する.
⑧bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
moveCircle(para, 1, theta=90, rotate_axis="x", palm_axis_offset=[0.2, 0, 0], palm_offset=[0, 0, 0.1])
-
translationMoveAtPalm(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{float}}$ speed,$\textcolor{mediumblue}{\text{list}}$ palm_diff,$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,
$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ロボットの現在位置からの相対座標(ハンド座標系)を指定して移動させる.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②float speed: 動作スピードを決める値. 単位は[m/s]. 上限値(デフォルト)は0.3[m/s].
③list palm_diff: 現在位置からの相対座標.(1×3)配列のハンド座標系[x,y,z]. 単位は[m].
④list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
translationMoveAtPalm(para, 0.05, [0.1, 0, 0])
-
rotationMoveAtPalm(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{list}}$ euler,$\textcolor{mediumblue}{\text{list}}$ axis_offset=[0, 0, 0],
$\textcolor{mediumblue}{\text{list}}$ palm_offset=[0, 0, 0],$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ is_wait=True,$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ハンド座標系の軸を回転軸として,指定した角度だけロボットを回転動作させる.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③list euler: 回転角度. (1×3)配列のハンド座標系[x軸周り,y軸回り,z軸回り]. 単位は[deg].
④list axis_offset: 回転軸の手先からのオフセット量.(1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑤list palm_offset: 手先のオフセット量. (1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑥list thresh_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.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
rotationMoveAtPalm(para, 1, euler=[0, 0, 45], axis_offset=[0.02, 0, 0], palm_offset=[0, 0, 0])
-
movePoseAtPalm(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{list}}$ euler,$\textcolor{mediumblue}{\text{list}}$ axis_offset=[0, 0, 0],
$\textcolor{mediumblue}{\text{list}}$ palm_offset=[0, 0, 0],$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ハンド座標系の軸を回転軸として,指定した角度に達するまで徐々にロボットを回転動作させる. 姿勢も変化する.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③list euler: 回転角度. (1×3)配列のハンド座標系[x軸周り,y軸回り,z軸回り]. 単位は[deg].
④list axis_offset: 回転軸の手先からのオフセット量.(1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑤list palm_offset: 回転中の手先のオフセット量. (1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑥list thresh_forces: 現在の力覚値からの相対量を指定する. 相対分を足した/引いた力覚値が力覚上限値となる.
x軸方向の力から[Fx,Fy,Fz,Mx,My,Mz]の順に指定する. 単位は力[N],モーメント[Nm].
デフォルトの値が存在する.
⑦bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
movePoseAtPalm(para, 1, euler=[0, 0, 90], axis_offset=[0.2, 0, 0], palm_offset=[0, 0, 0.1])
-
moveCircleAtPalm(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{int}}$ servo_power,$\textcolor{mediumblue}{\text{list}}$ euler,$\textcolor{mediumblue}{\text{list}}$ axis_offset=[0, 0, 0],
$\textcolor{mediumblue}{\text{list}}$ palm_offset=[0, 0, 0],$\textcolor{mediumblue}{\text{list}}$ thresh_forces=[],$\textcolor{mediumblue}{\text{bool}}$ check_coll=True)
ハンド座標系の軸を回転軸として,指定した角度に達するまで徐々にロボットを回転動作させる. 姿勢は変化しない.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②int servo_power: 動作スピードを決める値. 値が大きいほど動作スピードが上がる. 上限値(デフォルト)は10[%].
③list euler: 回転角度. (1×3)配列のハンド座標系[x軸周り,y軸回り,z軸回り]. 単位は[deg].
④list axis_offset: 回転軸の手先からのオフセット量.(1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑤list palm_offset: 回転中の手先のオフセット量. (1×3)配列のハンド座標系[x,y,z]. 単位は[m].
⑥list thresh_forces: 現在の力覚値からの相対量を指定する. 相対分を足した/引いた力覚値が力覚上限値となる.
x軸方向の力から[Fx,Fy,Fz,Mx,My,Mz]の順に指定する. 単位は力[N],モーメント[Nm].
デフォルトの値が存在する.
⑦bool check_coll: 干渉判定を行うかどうかを指定する.
・True: 干渉判定を行う.
・False: 干渉判定を行わない.
⤴️ 返り値:
①bool: 動作の成否.
・True: 成功.
・False: 失敗.
サンプルコード
from cnoid.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from MotionModule import *
para = JaksInterface.createJaksInterface("/gp7_para/", "gp7_parallelgripper")
para.GP7.setMode(REAL_MODE)
moveCircleAtPalm(para, 1, euler=[0, 0, 90], axis_offset=[0.1, 0, 0], palm_offset=[0, 0, 0.05])
-
IRGripper(
$\textcolor{mediumblue}{\text{JaksInterface}}$ chuck,$\textcolor{mediumblue}{\text{string}}$ command,$\textcolor{mediumblue}{\text{boolean}}$ direction,$\textcolor{mediumblue}{\text{int}}$ speed,$\textcolor{mediumblue}{\text{int}}$ width)
無限回転グリッパ(IRGripper)の諸機能を使用する.
▶️ 引数:
①JaksInterface chuck: IRGripperのロボットインターフェース.
②String command: IRGripperに送信する指令.大文字小文字は区別しない.
1. Open/Close: グリッパの指の開閉.どちらを使用しても機能は同じ.
2. Grasp: 指が物体に衝突して停止するまで閉める.
3. Reset: 指の開き幅とエンコーダ値をリセットする.7の後に使用推奨.
4. Keep: 指の開き幅を固定する.
5. IR: 掌部の無限回転.
6. Stop_ir: グリッパの高速無限回転停止.(5)のIRを止めるのに使用.
7. rotate: 掌の角度指定回転.
8. EmergencyStop: グリッパの緊急停止.
9. Reboot: モータの再起動. 10. center: 指の中心位置で把持する. 11. initpospalm:掌の位置を初期化する
③boolean direction: 5,7で使用.グリッパの回転方向.TrueでCW回転,FalseでCCW回転.デフォルトはTrue
④int speed: 5で使用.グリッパの回転速度を0~100で指定.デフォルトは100
⑤int width: 1,7で使用.指の開閉幅を0~100で指定.0が閉じきり,100が全開.
⤴️ 返り値:
①boolean: 動作の成否.
・True: 成功.
・False: 失敗.(コマンドのタイポ含む)
サンプルコード
from cnoid.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/RobotCompetition/Sample/scripts/SampleModule/"
sys.path.append(python_module_path)
from Sub_MotionModule import *
chuck = JaksInterface.createJaksInterface("/gp7_chuck/", "gp7_chuckgripper")
chuck.IRChuck.setMode(REAL_MODE)
IRGripper(chuck, "open", width = 40) # グリッパの開閉
IRGripper(chuck, "close", width = 100) # これでも全開する
IRGripper(chuck, "grasp") #把持
IRGripper(chuck, "center", width = 30) # 一度把持し,30度回転してもう一度把持(中心位置で把持
IRGripper(chuck, "keep") #指の位置固定
IRGripper(chuck, "ir", speed = 80) # グリッパのCW方向高速無限回転
IRGripper(chuck, "stop_ir") # 無限回転停止
IRGripper(chuck, "initpospalm", width = 30) # 掌を定位置に戻し指の開き幅を30にする
IRGripper(chuck, "rotate", direction = True, width = 30) # 掌のCW方向30度回転
IRGripper(chuck, "reset", width = 10) # 指の開き幅とエンコーダ値をリセットし,開き幅を10にする
IRGripper(chuck, "eMeRGencYsTOp") # 緊急停止 大小文字を区別しないのでこれでもOK
-
getPartsPositionByYolo(
$\textcolor{mediumblue}{\text{JaksInterface}}$ gp7,$\textcolor{mediumblue}{\text{string}}$ yaml_file,$\textcolor{mediumblue}{\text{string}}$ parts_name)
Yolov7による物体検出を行い,指定した物体の位置やカメラとの相対位置を取得する.
▶️ 引数:
①JaksInterface gp7: ロボットインターフェース.
②string yaml_file: 検出したい部品のyamlファイル名.
③string parts_name: 検出したい部品の名前.
⤴️ 返り値:
①bool: 検出の成否.
・True: 成功.
・False: 失敗.
②list: 検出した部品とカメラ中心との相対位置.[x, y].
③list: 検出した部品の全ての位置.[x1, y1]. 最も近い部品座標をpos[0], pos[1]に格納
④list: カメラ中心の位置.[x, y].
サンプルコード
from cnoid.JaksInterface import *
from cnoid.Util import *
import sys
topdir = executableTopDirectory
python_module_path = topdir + "/ext/graspPlugin/JaksInterface/python_Module/"
sys.path.append(python_module_path)
from VisualSensing import *
chuck = JaksInterface.createJaksInterface("/gp7_chuck/", "gp7_chuckgripper")
yaml_file = "peg_16_pick.yaml"
parts_name = "peg_16"
getPartsPositionByYolo(chuck, yaml_file, parts_name)