0
0

MyCobot 280をPythonで制御するためのチュートリアル (3)

Last updated at Posted at 2024-05-30

前回の続きです。

mycobot.jpg

1 Overall Status -

power_on

プロトタイプ: power_on()

説明: Atomの通信を開始します(デフォルトでは開いています)。

詳細説明: この関数は、MyCobotのAtomモジュールの通信をオンにし、ロボットアームが動作を開始できる状態にします。

power_off

プロトタイプ: power_off()

説明: Atomの通信をオフにします。

詳細説明: この関数は、MyCobotのAtomモジュールの通信をオフにし、ロボットアームの動作を停止させます。

is_power_on

プロトタイプ: is_power_on()

説明: ロボットアームの電源がオンかどうかを確認します。

戻り値:

  • 1: 電源がオン
  • 0: 電源がオフ
  • -1: エラー

詳細説明: この関数は、ロボットアームの電源状態を確認し、オン、オフ、またはエラーの状態を返します。

read_next_error

プロトタイプ: read_next_error()

説明: ロボットのエラーを検出します。

戻り値: 長さ7のリスト

  • 0: 異常なし
  • 1: 通信が切断された
  • 2: 不安定な通信
  • 3: サーボ異常

詳細説明: この関数は、ロボットのエラー状態を検出し、特定のエラーコードを返します。リスト形式でエラーを提供します。

release_all_servos

プロトタイプ: release_all_servos()

説明: ロボットアームを自由移動モードに設定します。

詳細説明: この関数は、ロボットアームのサーボモーターを解除し、手動で自由に動かせる状態にします。

is_controller_connected

プロトタイプ: is_controller_connected()

説明: Atomと接続されているかどうかを確認します。

戻り値:

  • 1: 接続されている
  • 0: 接続されていない
  • -1: エラー

詳細説明: この関数は、ロボットアームのコントローラが正しく接続されているかどうかを確認します。

get_error_information

プロトタイプ: get_error_information()

説明: ロボットのエラー情報を取得します。

戻り値:

  • 0: エラーメッセージなし
  • 1 ~ 6: 該当するジョイントが限界位置を超えた
  • 32: 運動学逆解が存在しない
  • 33 ~ 34: 直線運動に隣接解がない

詳細説明: この関数は、ロボットの詳細なエラー情報を取得し、エラーコードに応じた説明を提供します。

clear_error_information

プロトタイプ: clear_error_information()

説明: ロボットのエラーメッセージをクリアします。

詳細説明: この関数は、ロボットアームの現在のエラーメッセージをクリアし、エラー状態をリセットします。

表に整理

関数名 プロトタイプ 説明 詳細説明
power_on power_on() Atomの通信を開始します Atomモジュールの通信をオンにし、ロボットアームが動作を開始できる状態にします。
power_off power_off() Atomの通信をオフにします Atomモジュールの通信をオフにし、ロボットアームの動作を停止させます。
is_power_on is_power_on() 電源がオンか確認します ロボットアームの電源状態を確認し、オン、オフ、またはエラーの状態を返します。
read_next_error read_next_error() ロボットのエラーを検出します ロボットのエラー状態を検出し、特定のエラーコードを返します。リスト形式でエラーを提供します。
release_all_servos release_all_servos() 自由移動モードに設定します ロボットアームのサーボモーターを解除し、手動で自由に動かせる状態にします。
is_controller_connected is_controller_connected() 接続状態を確認します ロボットアームのコントローラが正しく接続されているかどうかを確認します。
get_error_information get_error_information() エラー情報を取得します ロボットの詳細なエラー情報を取得し、エラーコードに応じた説明を提供します。
clear_error_information clear_error_information() エラーメッセージをクリアします ロボットアームの現在のエラーメッセージをクリアし、エラー状態をリセットします。

2. MDIモードと操作

「MDI」は、関節の角度または座標の目標値を入力して、位置と姿勢を教える操作です。

get_angles

プロトタイプ: get_angles()

説明: すべてのジョイントの角度を取得します。

戻り値: リスト: すべての角度の浮動小数点リスト。

詳細説明: この関数は、ロボットアームの各ジョイントの現在の角度を取得し、リスト形式で返します。

set_fresh_mode(mode)

説明: コマンドリフレッシュモードを設定します。

パラメータ:

  • mode – int:
    • 1 - 最新のコマンドを最優先で実行します。
    • 0 - キュー形式で順次指示を実行します。

詳細説明: この関数は、コマンド実行の優先度を設定します。最新コマンドを優先するか、順次実行するかを選択できます。

get_fresh_mode()

説明: コマンドリフレッシュモードを取得します。

戻り値:

  • 1 - 最新のコマンドを最優先で実行します。
  • 0 - キュー形式で順次指示を実行します。

詳細説明: この関数は、現在のコマンド実行の優先度設定を取得します。

send_angle

プロトタイプ: send_angles(id, degree, speed)

説明: 特定のジョイントに角度を送信します。

パラメータ:

  • id: ジョイントID(genre.Angle) / int: 1-7
  • degree: 角度値(float): -170 〜 170
  • speed: (int) 0 ~ 100

詳細説明: この関数は、特定のジョイントに指定した角度を指定した速度で送信します。

send_angles

プロトタイプ: send_angles(degrees, speed)

説明: すべてのジョイントに角度を送信します。

パラメータ:

  • degrees: 角度値のリスト(List[float])、長さ7
  • speed: (int) 0 ~ 100

詳細説明: この関数は、すべてのジョイントに指定した角度を指定した速度で送信します。

get_radians

プロトタイプ: get_radians()

説明: すべてのジョイントのラジアンを取得します。

戻り値: リスト: すべてのラジアンの浮動小数点リスト。

詳細説明: この関数は、ロボットアームの各ジョイントの現在のラジアン値を取得し、リスト形式で返します。

send_radians

プロトタイプ: send_radians(radians, speed)

説明: すべてのジョイントにラジアンを送信します。

パラメータ:

  • radians: ラジアン値のリスト(List[float])
  • speed: (int) 0 ~ 100

詳細説明: この関数は、すべてのジョイントに指定したラジアン値を指定した速度で送信します。

get_coords

プロトタイプ: get_coords()

説明: ロボットアームの座標を取得します(ベース座標系に基づく)。

戻り値: リスト: 座標の浮動小数点リスト - [x, y, z, rx, ry, rz]

詳細説明: この関数は、ロボットアームのエンドエフェクタの現在の座標を取得し、リスト形式で返します。

send_coord

プロトタイプ: send_coords(id, coord, speed)

説明: 特定の座標をロボットアームに送信します。

パラメータ:

  • id: 座標ID(genre.Coord) / int: 1-6
  • coord: 座標値(float)
  • speed: (int) 0 ~ 100

詳細説明: この関数は、特定の座標を指定した速度でロボットアームに送信します。

send_coords

プロトタイプ: send_coords(coords, speed, mode)

説明: すべての座標をロボットアームに送信します。

パラメータ:

  • coords: 座標値のリスト(List[float])
  • speed: (int) 0 ~ 100
  • mode: (int): 0 - 角度、1 - 直線

詳細説明: この関数は、すべての座標を指定した速度とモード(角度または直線)でロボットアームに送信します。

sync_send_angles

プロトタイプ: sync_send_angles(degrees, speed, timeout=15)

説明: 同期状態で角度を送信し、目標点に到達したときに戻ります。

パラメータ:

  • degrees: 角度値のリスト(List[float])
  • speed: (int) 0 ~ 100
  • timeout: デフォルトは7秒

詳細説明: この関数は、同期状態で角度を送信し、指定した角度に到達したときに制御を戻します。

sync_send_coords

プロトタイプ: sync_send_coords(coords, speed, mode, timeout=15)

説明: 同期状態で座標を送信し、目標点に到達したときに戻ります。

パラメータ:

  • coords: 座標値のリスト(List[float])
  • speed: (int) 0 ~ 100
  • mode: (int): 0 - 角度、1 - 直線
  • timeout: デフォルトは7秒

詳細説明: この関数は、同期状態で座標を送信し、指定した座標に到達したときに制御を戻します。

is_in_position

プロトタイプ: is_in_position(data, flag)

説明: 指定した位置にあるかどうかを判定します。

パラメータ:

  • data: データリスト、角度または座標
  • flag: データタイプをタグ付け、0 - 角度、1 - 座標

戻り値:

  • 1 - true
  • 0 - false
  • -1 - エラー

詳細説明: この関数は、ロボットアームが指定した位置にあるかどうかを判定します。

is_moving

プロトタイプ: is_moving()

説明: ロボットが動いているかどうかを検出します。

戻り値:

  • 1 - 動いている
  • 0 - 動いていない
  • -1 - エラーデータ

詳細説明: この関数は、ロボットアームが現在動いているかどうかを検出します。

表に整理

関数名 プロトタイプ 説明 詳細説明
get_angles get_angles() すべてのジョイントの角度を取得します ロボットアームの各ジョイントの現在の角度を取得し、リスト形式で返します。
set_fresh_mode set_fresh_mode(mode) コマンドリフレッシュモードを設定します コマンド実行の優先度を設定します。最新コマンドを優先するか、順次実行するかを選択できます。
get_fresh_mode get_fresh_mode() コマンドリフレッシュモードを取得します 現在のコマンド実行の優先度設定を取得します。
send_angle send_angle(id, degree, speed) 特定のジョイントに角度を送信します 特定のジョイントに指定した角度を指定した速度で送信します。
send_angles send_angles(degrees, speed) すべてのジョイントに角度を送信します すべてのジョイントに指定した角度を指定した速度で送信します。
get_radians get_radians() すべてのジョイントのラジアンを取得します ロボットアームの各ジョイントの現在のラジアン値を取得し、リスト形式で返します。
send_radians send_radians(radians, speed) すべてのジョイントにラジアンを送信します すべてのジョイントに指定したラジアン値を指定した速度で送信します。
get_coords get_coords() ロボットアームの座標を取得します ロボットアームのエンドエフェクタの現在の座標を取得し、リスト形式で返します。
send_coord send_coord(id, coord, speed) 特定の座標をロボットアームに送信します 特定の座標を指定した速度でロボットアームに送信します。
send_coords send_coords(coords, speed, mode) すべての座標をロボットアームに送信します すべての座標を指定した速度とモード(角度または直線)でロボットアームに送信します。
sync_send_angles sync_send_angles(degrees, speed, timeout=15) 同期状態で角度を送信し、目標点に到達したときに戻ります 同期状態で角度を送信し、指定した角度に到達したときに制御を戻します。
sync_send_coords sync_send_coords(coords, speed, mode, timeout=15) 同期状態で座標を送信し、目標点に到達したときに戻ります 同期状態で座標を送信し、指定した座標に到達したときに制御を戻します。
is_in_position is_in_position(data, flag) 指定した位置にあるかどうかを判定します ロボットアームが指定した位置にあるかどうかを判定します。
is_moving is_moving() ロボットが動いているかどうかを検出します ロボットアームが現在動いているかどうかを検出します。

3. JOGモードと操作

「JOG」は、関節の角度または座標を少しずつ動かして、目標の位置と姿勢を教える操作です。

jog_angle

プロトタイプ: jog_angle(joint_id, direction, speed)

説明: ジョグ制御角度

パラメータ:

  • joint_id: (int) 1 ~ 6
  • direction: 0 - 減少, 1 - 増加
  • speed: 0 ~ 100

詳細説明: この関数は、指定されたジョイントの角度を指定された方向と速度でジョグ制御します。

jog_coord

プロトタイプ: jog_coord(coord_id, direction, speed)

説明: ジョグ制御座標

パラメータ:

  • coord_id: (int) 1 ~ 6
  • direction: 0 - 減少, 1 - 増加
  • speed: 0 ~ 100

詳細説明: この関数は、指定された座標の位置を指定された方向と速度でジョグ制御します。

jog_absolute

プロトタイプ: jog_absolute(joint_id, angle, speed)

説明: 絶対角度ジョグ制御

パラメータ:

  • joint_id: (int)
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7
  • angle: 角度値
  • speed: 0 ~ 100

詳細説明: この関数は、指定されたジョイントを指定された角度と速度で絶対的にジョグ制御します。

jog_increment

プロトタイプ: jog_increment(coord_id, direction, speed)

説明: ステップモード

パラメータ:

  • coord_id: (int)
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7
  • direction: 方向
  • speed: 0 ~ 100

詳細説明: この関数は、指定された座標の位置をステップモードでジョグ制御します。

jog_stop

プロトタイプ: jog_stop()

説明: ジョグ動作を停止します

詳細説明: この関数は、現在行われているジョグ動作を停止します。

pause

プロトタイプ: pause()

説明: 動作を一時停止します

詳細説明: この関数は、ロボットアームの動作を一時停止します。

resume

プロトタイプ: resume()

説明: 動作を再開します

詳細説明: この関数は、一時停止したロボットアームの動作を再開します。

stop

プロトタイプ: stop()

説明: 動作を停止します

詳細説明: この関数は、ロボットアームの動作を完全に停止します。

is_paused

プロトタイプ: is_paused()

説明: マニピュレータが一時停止しているかどうかを判定します

戻り値:

  • 1 - 一時停止中
  • 0 - 一時停止していない
  • -1 - エラー

詳細説明: この関数は、ロボットアームが現在一時停止中かどうかを判定します。

set_encoder

プロトタイプ: set_encoder(joint_id, encoder)

説明: 単一のジョイントを指定されたポテンシャル値に設定します

パラメータ:

  • joint_id: (int)
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7
  • encoder: 0 ~ 4096

詳細説明: この関数は、指定されたジョイントのエンコーダ値を設定します。

get_encoder

プロトタイプ: get_encoder(joint_id)

説明: 指定されたジョイントのポテンシャル値を取得します

パラメータ:

  • joint_id: (int)
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7

戻り値: encoder: 0 ~ 4096

詳細説明: この関数は、指定されたジョイントのエンコーダ値を取得します。

set_encoders

プロトタイプ: set_encoders(encoders, sp)

説明: マニピュレータの6つのジョイントを指定された位置に同期して実行するように設定します

パラメータ:

  • encoders: エンコーダのリスト
  • sp: 速度 0 ~ 100

詳細説明: この関数は、マニピュレータの6つのジョイントを指定された位置に同期して動かすように設定します。

get_encoders

プロトタイプ: get_encoders()

説明: マニピュレータの6つのジョイントのエンコーダ値を取得します

戻り値: エンコーダのリスト(list)

詳細説明: この関数は、マニピュレータの6つのジョイントのエンコーダ値をリスト形式で取得します。

動作状態と設定

get_speed

プロトタイプ: get_speed()

説明: 速度を取得します

戻り値: speed: (int)

詳細説明: この関数は、現在の速度設定を取得します。

set_speed

プロトタイプ: set_speed(speed)

説明: 速度を設定します

パラメータ: speed: (int) 0 ~ 100

詳細説明: この関数は、ロボットアームの動作速度を設定します。

set_joint_min

プロトタイプ: set_joint_min(id, angle)

説明: 指定されたジョイントの最小角度を設定します

パラメータ:

  • id: (int)
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7
  • angle: 0 - 180

詳細説明: この関数は、指定されたジョイントの最小角度を設定します。

set_joint_max

プロトタイプ: set_joint_max(id, angle)

説明: 指定されたジョイントの最大角度を設定します

パラメータ:

  • id: (int) ジョイントID
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7
  • angle: 0 - 180

詳細説明: この関数は、指定されたジョイントの最大角度を設定します。

get_joint_min_angle

プロトタイプ: get_joint_min_angle(joint_id)

説明: 指定されたジョイントの最小運動角度を取得します

パラメータ:

  • joint_id: (int)
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7

戻り値: 角度値(float)

詳細説明: この関数は、指定されたジョイントの最小運動角度を取得します。

get_joint_max_angle

プロトタイプ: get_joint_max_angle(joint_id)

説明: 指定されたジョイントの最大運動角度を取得します

パラメータ:

  • joint_id: (int)
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7

戻り値: 角度値(float)

詳細説明: この関数は、指定されたジョイントの最大運動角度を取得します。

表に整理

関数名 プロトタイプ 説明 詳細説明
jog_angle jog_angle(joint_id, direction, speed) ジョグ制御角度 指定されたジョイントの角度を指定された方向と速度でジョグ制御します。
jog_coord jog_coord(coord_id, direction, speed) ジョグ制御座標 指定された座標の位置を指定された方向と速度でジョグ制御します。
jog_absolute jog_absolute(joint_id, angle, speed) 絶対角度ジョグ制御 指定されたジョイントを指定された角度と速度で絶対的にジョグ制御します。
jog_increment jog_increment(coord_id, direction, speed) ステップモード 指定された座標の位置をステップモードでジョグ制御します。
jog_stop jog_stop() ジョグ動作を停止します 現在行われているジョグ動作を停止します。
pause pause() 動作を一時停止します ロボットアームの動作を一時停止します。
resume resume() 動作を再開します 一時停止したロボットアームの動作を再開します。
stop stop() 動作を停止します ロボットアームの動作を完全に停止します。
is_paused is_paused() マニピュレータが一時停止しているかどうかを判定します ロボットアームが現在一時停止中かどうかを判定します。
set_encoder set_encoder(joint_id, encoder) 単一のジョイントを指定されたポテンシャル値に設定します 指定されたジョイントのエンコーダ値を設定します。
get_encoder get_encoder(joint_id) 指定されたジョイントのポテンシャル値を取得します 指定されたジョイントのエンコーダ値を取得します。
set_encoders set_encoders(encoders, sp) マニピュレータの6つのジョイントを指定された位置に同期して実行するように設定します マニピュレータの6つのジョイントを指定された位置に同期して動かすように設定します。
get_encoders get_encoders() マニピュレータの6つのジョイントのエンコーダ値を取得します マニピュレータの6つのジョイントのエンコーダ値をリスト形式で取得します。
get_speed get_speed() 速度を取得します 現在の速度設定を取得します。
set_speed set_speed(speed) 速度を設定します ロボットアームの動作速度を設定します。
set_joint_min set_joint_min(id, angle) 指定されたジョイントの最小角度を設定します 指定されたジョイントの最小角度を設定します。
set_joint_max set_joint_max(id, angle) 指定されたジョイントの最大角度を設定します 指定されたジョイントの最大角度を設定します。
get_joint_min_angle get_joint_min_angle(joint_id) 指定されたジョイントの最小運動角度を取得します 指定されたジョイントの最小運動角度を取得します。
get_joint_max_angle get_joint_max_angle(joint_id) 指定されたジョイントの最大運動角度を取得します 指定されたジョイントの最大運動角度を取得します。

4. サーボ制御

is_servo_enable

プロトタイプ: is_servo_enable(servo_id)

説明: すべてのステアリングギアが接続されているかどうかを判定します。

パラメータ:

  • servo_id (int):
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7

戻り値:

  • 0: 無効
  • 1: 有効
  • -1: エラー

詳細説明: この関数は、指定されたサーボモーターが有効か無効かを判定し、結果を返します。

is_all_servo_enable

プロトタイプ: is_all_servo_enable()

説明: 指定されたステアリングギアが接続されているかどうかを判定します。

戻り値:

  • 0: 無効
  • 1: 有効
  • -1: エラー

詳細説明: この関数は、すべての指定されたサーボモーターが有効か無効かを判定し、結果を返します。

set_servo_data

プロトタイプ: set_servo_data(servo_no, data_id, value, mode=None)

説明: 指定されたステアリングギアのアドレスにデータパラメータを設定します。

パラメータ:

  • servo_no (int): 関節サーボモーターのシリアル番号
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7
  • data_id: データアドレス
  • value: 0 - 4096
  • mode: 0 - 1バイト値を示す(デフォルト)、1 - 2バイト値を示す

詳細説明: この関数は、指定されたサーボモーターの特定アドレスにデータパラメータを設定します。

get_servo_data

プロトタイプ: get_servo_data(servo_no, data_id)

説明: 指定されたステアリングギアのアドレスからデータパラメータを読み取ります。

パラメータ:

  • servo_no: 関節サーボモーターのシリアル番号
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7
  • data_id: データアドレス

戻り値:

  • value: 0 - 4096

詳細説明: この関数は、指定されたサーボモーターの特定アドレスからデータパラメータを読み取ります。

set_servo_calibration

プロトタイプ: set_servo_calibration(servo_no)

説明: キャリブレーションジョイントアクチュエータの現在の位置を角度のゼロ点として、対応するポテンシャル値を2048に設定します。

パラメータ:

  • servo_no: 関節サーボモーターのシリアル番号
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7

詳細説明: この関数は、指定されたサーボモーターの現在の位置を基準としてキャリブレーションを行い、角度のゼロ点として設定します。

release_servo

プロトタイプ: release_servo(servo_id)

説明: 指定されたサーボの電源を切ります。

パラメータ:

  • servo_id:
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7

詳細説明: この関数は、指定されたサーボモーターの電源をオフにします。

focus_servo

プロトタイプ: focus_servo(servo_id)

説明: 指定されたサーボの電源を入れます。

パラメータ:

  • servo_id:
    • mycobot / mecharm: int 1-6
    • mypalletizer: int 1-4
    • myArm: int 1-7

詳細説明: この関数は、指定されたサーボモーターの電源をオンにします。

表に整理

関数名 プロトタイプ 説明 詳細説明
is_servo_enable is_servo_enable(servo_id) すべてのステアリングギアが接続されているかどうかを判定します 指定されたサーボモーターが有効か無効かを判定し、結果を返します。
is_all_servo_enable is_all_servo_enable() 指定されたステアリングギアが接続されているかどうかを判定します すべての指定されたサーボモーターが有効か無効かを判定し、結果を返します。
set_servo_data set_servo_data(servo_no, data_id, value, mode=None) 指定されたステアリングギアのアドレスにデータパラメータを設定します 指定されたサーボモーターの特定アドレスにデータパラメータを設定します。
get_servo_data get_servo_data(servo_no, data_id) 指定されたステアリングギアのアドレスからデータパラメータを読み取ります 指定されたサーボモーターの特定アドレスからデータパラメータを読み取ります。
set_servo_calibration set_servo_calibration(servo_no) キャリブレーションジョイントアクチュエータの現在の位置を角度のゼロ点として設定します 指定されたサーボモーターの現在の位置を基準としてキャリブレーションを行い、角度のゼロ点として設定します。
release_servo release_servo(servo_id) 指定されたサーボの電源を切ります 指定されたサーボモーターの電源をオフにします。
focus_servo focus_servo(servo_id) 指定されたサーボの電源を入れます 指定されたサーボモーターの電源をオンにします。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0