アーム#
導入#
6軸ロボットアームは、CTEワークセルで使用されるロボットマニピュレータです。VEXcode EXPでは、アームブロックを使用することで、EXPブレインが6軸アームを動かしたり、エンドエフェクタを回転させたり、動作が可能かどうかをチェックしたり、マグネットピックアップツールやペンホルダーツールなどの付属ツールを制御したりすることができます。
このページは、6軸アームがEXPブレインに接続されているCTEワークセルプロジェクト向けです。CTEタイルで6軸アームを単独で使用する場合は、CTEアームAPIページを使用してください。
利用可能なブロックの一覧は以下のとおりです。
操作 — 6軸アームを所定の位置または向きに移動させます。
アームを位置に移動 — 6軸アームを指定されたx、y、z座標に移動します。
アーム位置を増分 — 6軸アームを現在の位置から指定された距離だけ移動します。
アームを方向へ移動 — エンドエフェクタを指定された方向に回転させます。
アームの向きを増分 — エンドエフェクタを指定された角度だけ回転させます。
設定 — 移動、ツール、および制御設定を構成します。
アーム速度を設定 — 6軸アームの移動速度を設定します。
アームエンドエフェクタの設定 — 6軸アームに取り付けられているツールを選択します。
アームマグネットモードを設定 — マグネットピックアップツールを作動または解除します。
set arm pen offset — ペンホルダーツールの垂直オフセットを設定します。
set arm to control stopped — 6軸アームを停止し、それ以上のアームの動きを防止します。
値 — 動作を実行できるかどうか、動作が完了したかどうか、衝突が発生したかどうか、現在の位置や向きを読み取るか、Arm イベントが発生したときにブロックを実行するかどうかを確認します。
アームを所定の位置に移動できるか? — 6軸アームが指定された位置に移動できるかどうかを返します。
アーム増分位置? — 6軸アームが指定された距離だけ移動できるかどうかを返します。
アーム移動エンドエフェクタ? — エンドエフェクタが指定された方向に回転できるかどうかを返します。
アーム増分方向? — エンドエフェクタが指定された度数だけ回転できるかどうかを返します。
アームは移動を完了しましたか? — 6軸アームの移動が完了したかどうかを返します。
アームがクラッシュしましたか? — 6軸アームが移動中にクラッシュしたかどうかを返します。
アーム位置 — 選択した軸に沿った6軸アームの現在位置を返します。
arm orientation — エンドエフェクタの現在の向きを、選択した軸に沿って返します。
アーム制御が停止したとき — 制御停止が有効になっているときに、添付されているスタックを実行します。
arm がクラッシュしたとき — クラッシュが検出されたときに、添付されているスタックを実行します。
行動#
腕を所定の位置に移動#
アームを所定の位置に移動スタックブロックは、6軸アームを指定されたx、y、z座標に移動させます。
x、y、z座標は、エンドエフェクタの3次元空間における位置を表します。目標位置が6軸アームの到達可能な作業空間外にある可能性がある場合は、このブロックの前にarm move to position?を使用してください。
[Arm1 v] を位置 x:[120] y:[0] z:[100] [mm v] へ移動 ▶
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
x |
目標位置のx座標。 |
y |
目標位置のy座標。 |
z |
目標位置のz座標。 |
ユニット |
x、y、z座標に使用される単位:mm(ミリメートル)またはインチ。 |
拡大矢印 |
デフォルトでは、6軸アームは次のブロックが実行される前に動作を完了します。ブロックを展開して動作を開始し、すぐに次のブロックに進んでください。 |
例
開始したとき
[Move Arm1 to a standard position at the start of the project.]
[Arm1 v] を位置 x:(120) y:(120) z:(75) [mm v] へ移動 ▶
アーム位置を増分する#
アーム位置増分スタックブロックは、6軸アームを現在の位置から指定された距離だけx、y、z軸に沿って移動させます。
このブロックを使用して、エンドエフェクタの現在の位置を基準に移動させます。移動によって6軸アームが可動範囲外になる可能性がある場合は、このブロックの前にarm increment position?を使用してください。
[Arm1 v] の位置を x:[0] y:[0] z:[0] [mm v] 増分 ▶
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
x |
x軸に沿って移動する距離。 |
y |
y軸に沿って移動する距離。 |
z |
z軸に沿って移動する距離。 |
ユニット |
x、y、z の距離に使用される単位:mm(ミリメートル)またはインチ。 |
拡大矢印 |
デフォルトでは、6軸アームは次のブロックが実行される前に動作を完了します。ブロックを展開して動作を開始し、すぐに次のブロックに進んでください。 |
例
開始したとき
[Move Arm1 100 millimeters along the x-axis.]
[Arm1 v] の位置を x:[100] y:[0] z:[0] [mm v] 増分 ▶
腕を所定の位置に動かす#
アームを方向へ移動スタックブロックは、エンドエフェクタを指定された方向に回転させます。
方向とは、エンドエフェクタがどのように回転するかを表します。ピッチはエンドエフェクタを上下に傾け、ロールは左右に回転させ、ヨーは左右に回転させます。
[Arm1 v] のエンドエフェクター方向を [ピッチ v] [0] 度へ移動 ▶
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
方向 |
エンドエフェクタを回転させる軸:
|
学位 |
目標物の向きの角度(度)。 |
拡大矢印 |
デフォルトでは、6軸アームは次のブロックが実行される前に動作を完了します。ブロックを展開して動作を開始し、すぐに次のブロックに進んでください。 |
例
開始したとき
[Rotate the end effector to 270 degrees of yaw.]
[Arm1 v] のエンドエフェクター方向を [ヨー v] [270] 度へ移動 ▶
インクリメントアームの向き#
アーム方向増分スタックブロックは、エンドエフェクタを現在の向きから指定された角度だけ回転させます。
このブロックを使用して、エンドエフェクタの現在のピッチ、ロール、またはヨーを基準に回転させます。
[Arm1 v] の方向を [ピッチ v] [0] 度増分 ▶
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
方向 |
エンドエフェクタを回転させる軸:
|
学位 |
エンドエフェクタを回転させる角度(度数)。 |
拡大矢印 |
デフォルトでは、6軸アームは次のブロックが実行される前に動作を完了します。ブロックを展開して動作を開始し、すぐに次のブロックに進んでください。 |
例
開始したとき
[Rotate the end effector 40 degrees in pitch.]
[Arm1 v] の方向を [ピッチ v] [40] 度増分 ▶
設定#
腕の速度を設定する#
set arm speedスタックブロックは、6軸アームの移動速度を設定します。
プロジェクト開始時、6軸アームの速度は50%に設定されます。
[Arm1 v]の速度を[50] %に設定する
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
パーセント |
6軸アームの移動速度は、1~100パーセントです。 |
例
開始したとき
[Set Arm1's speed to 30%.]
[Arm1 v]の速度を[30] %に設定する
[Arm1 v] を位置 x:[120] y:[120] z:[70] [mm v] へ移動 ▶
セットアームエンドエフェクタ#
アームエンドエフェクタ設定スタックブロックは、6軸アームに取り付けられたツールを選択します。
エンドエフェクタを変更すると、6軸アームは選択されたツールに合わせてZオフセットを自動的に調整します。プロジェクト開始時には、エンドエフェクタはマグネットピックアップツールに設定されています。
[Arm1 v] のエンドエフェクターを [マグネット v] に設定
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
エンドエフェクタ |
6軸アームに取り付けるツール:磁石(マグネットピックアップツール)またはペン(ペンホルダーツール)。 |
例
開始したとき
[Set Arm1 to use the Pen Holder Tool.]
[Arm1 v] のエンドエフェクターを [ペン v] に設定
アームマグネットモードを設定#
セットアームマグネットモードスタックブロックは、マグネットピックアップツールを作動または解除します。
マグネットモードは、別のアームマグネットモード設定ブロックによって変更されるまでアクティブなままです。マグネットモードは、プロジェクトの開始時に解放にリセットされます。
[Arm1 v] のマグネットを [接続 v] に設定
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
モード |
マグネットピックアップツールの状態:作動中で物体を拾い上げ、解放中で保持している物体を落とし、新しい物体を拾い上げなくなります。 |
例
開始したとき
[Pick up objects, then drop them after 2 seconds.]
[Arm1 v] のマグネットを [接続 v] に設定
[2] 秒待つ
[Arm1 v] のマグネットを [解除 v] に設定
アームペンオフセットを設定#
set arm pen offsetスタックブロックは、ペンホルダーツールの垂直オフセットを設定します。
このブロックを使用する前に、エンドエフェクタを「ペン」に設定してください。ペンホルダーツールが選択されていない場合、このブロックは効果を発揮しません。
ペンオフセットとは、ペンホルダーツールの先端からホワイトボードマーカーの先端までの距離のことです。プロジェクト開始時には、ペンオフセットは0に設定されています。ペンオフセットが0の場合、アームのZ軸原点は、ペンホルダーツールが6軸アームに接続される位置に配置されます。
[Arm1 v] のペンオフセットを [0] [mm v] に設定
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
オフセット |
ペンオフセット値。 |
ユニット |
ペンオフセットに使用される単位:mm(ミリメートル)またはインチ。 |
例
開始したとき
[Set the end effector to the Pen Holder Tool and set the pen offset to 1 inch.]
[Arm1 v] のエンドエフェクターを [ペン v] に設定
[Arm1 v] のペンオフセットを [1] [インチ v] に設定
[Arm1 v] を位置 x:[120] y:[120] z:[0] [mm v] へ移動 ▶
アームをコントロール停止位置にセットする#
set arm to control stoppedスタックブロックは、6軸アームを即座に停止させ、それ以上のアームブロックの実行を阻止します。
このブロックが実行されると、プロジェクトを再起動するまで6軸アームを再度有効にすることはできません。
[Arm1 v] を制御停止に設定
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
例
開始したとき
[Control stop after a movement.]
[Arm1 v] を位置 x:[120] y:[120] z:[70] [mm v] へ移動 ▶
[Arm1 v] を制御停止に設定
価値観#
腕を所定の位置に動かしますか?#
アームを所定の位置に移動させるか?ブールブロックは、6軸アームが指定されたx、y、z座標に移動できるかどうかを返します。
このブロックは、6軸アームが動作する前に目標位置を確認します。これにより、プロジェクトがアームを動作可能な作業範囲外に移動させようとするのを防ぐことができます。
<[Arm1 v] は位置 x:[0] y:[0] z:[0] [mm v] へ移動できる?>
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
x |
目標位置のx座標。 |
y |
目標位置のy座標。 |
z |
目標位置のz座標。 |
ユニット |
x、y、z座標に使用される単位:mm(ミリメートル)またはインチ。 |
例
開始したとき
[Check if Arm1 can move to a position.]
もし <<[Arm1 v] は位置 x:[0] y:[0] z:[0] [mm v] へ移動できる?> でない> なら
[The 6-Axis Arm can't move to this position.] をスクリーンに表示 ▶
終わり
腕の増分位置は?#
arm increment position? ブール値ブロックは、6軸アームが現在の位置から指定された距離だけ移動できるかどうかを返します。
このブロックは、6軸アームが動作する前に、段階的な動きをチェックします。
<[Arm1 v]の位置をx:[0] y:[0] z:[0] [mm v]分増加できますか?>
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
x |
x軸に沿って移動する距離。 |
y |
y軸に沿って移動する距離。 |
z |
z軸に沿って移動する距離。 |
ユニット |
x、y、z の距離に使用される単位:mm(ミリメートル)またはインチ。 |
例
開始したとき
[Check if Arm1 can increment from its current position.]
もし <<[Arm1 v]の位置をx:[0] y:[500] z:[0] [mm v]分増加できますか?> でない> なら
[The 6-Axis Arm can't move that distance.] をスクリーンに表示 ▶
終わり
アームを動かすエンドエフェクタ?#
arm move end effector? ブールブロックは、エンドエフェクタが指定された方向に回転できるかどうかを返します。
このブロックを使用して、エンドエフェクタを回転させる前に、目標とするピッチ、ロール、またはヨーの値が許容範囲内にあるかどうかを確認します。
<[Arm1 v] のエンドエフェクターを [ピッチ v] [0] 度へ移動できる?>
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
方向 |
エンドエフェクタを回転させる軸:
|
学位 |
目標物の向きの角度(度)。 |
例
開始したとき
[Check if Arm1 can roll its end effector to an orientation.]
もし <[Arm1 v] のエンドエフェクターを [ロール v] [40] 度へ移動できる?> なら
[The end effector can roll to that orientation.] をスクリーンに表示 ▶
終わり
腕の増分方向は?#
arm increment orientation? ブールブロックは、エンドエフェクタが現在の向きから指定された度数だけ回転できるかどうかを返します。
このブロックを使用して、エンドエフェクタを回転させる前に、ピッチ、ロール、またはヨーの微調整動作を確認します。
<[Arm1 v] の方向を [ピッチ v] [0] 度増分できる?>
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
方向 |
エンドエフェクタを回転させる軸:
|
学位 |
エンドエフェクタを回転させる角度(度数)。 |
例
開始したとき
[Check if Arm1 can increment yaw.]
もし <[Arm1 v] の方向を [ヨー v] [20] 度増分できる?> なら
[The end effector can increment yaw by 20 degrees.] をスクリーンに表示 ▶
終わり
腕の動きは終わりましたか?#
アームは動作を完了しましたか? ブールブロックは、6軸アームの動作が完了したかどうかを返します。
このブロックは、移動ブロックがそして待たないまで展開された後に役立ちます。
<[Arm1 v] 移動完了?>
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
例
開始したとき
[Display the current y-position while Arm1 moves.]
[Arm1 v] を位置 x:(-100) y:(200) z:(100) [mm v] へ移動 ◀ 待たない
<[Arm1 v] 移動完了?> まで繰り返す
([Arm1 v] の [y v] 位置([mm v])) をスクリーンに表示 ◀ カーソルを次の行へ移動する
[0.25] 秒待つ
終わり
アームがクラッシュしましたか?#
アームがクラッシュしましたか? ブールブロックは、6軸アームが移動中にクラッシュしたかどうかを返します。
衝突が検出されると、6軸アームはモーターの動きを停止し、一時的に力が抜けたように見えることがあります。これにより、負荷が軽減され、モーターが偶発的な損傷を受けるのを防ぎます。
<[Arm1 v]はクラッシュしていますか?>
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
例
開始したとき
[Quickly move to the specified location.]
[Arm1 v]の速度を[100] %に設定する
[Arm1 v] を位置 x:[-20] y:[240] z:[40] [mm v] へ移動 ◀ 待たない
[While moving, check for a crash.]
ずっと
もし <[Arm1 v]はクラッシュしていますか?> なら
[Indicate a crash with the Signal Tower and Brain screen.]
[Crash Detected] をスクリーンに表示 ▶
[SignalTower2 v] を [緑 v] にして [オフ v] に設定
[SignalTower2 v] を [赤 v] にして [点灯 v] に設定
ブレーク
終わり
終わり
腕の位置#
アーム位置レポーターブロックは、選択された軸に沿った6軸アームの現在位置を返します。
このブロックを使用して、エンドエフェクタが現在x軸、y軸、またはz軸のどの位置にあるかを読み取ります。
([Arm1 v] の [x v] 位置([mm v]))
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
軸 |
報告する位置軸:
|
ユニット |
位置値に使用される単位:mm(ミリメートル)またはインチ。 |
例
開始したとき
[Display the current y-position while Arm1 moves.]
[Arm1 v] を位置 x:(-100) y:(200) z:(100) [mm v] へ移動 ◀ 待たない
<[Arm1 v] 移動完了?> まで繰り返す
([Arm1 v] の [y v] 位置([mm v])) をスクリーンに表示 ◀ カーソルを次の行へ移動する
[0.25] 秒待つ
終わり
腕の向き#
アームの向きレポーターブロックは、選択された軸を中心としたエンドエフェクタの現在の向きを度数で返します。
このブロックを使用して、エンドエフェクタの現在のピッチ、ロール、またはヨーを読み取ります。
([Arm1 v] の [ピッチ v] 軸方向(度))
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
方向 |
報告する姿勢軸:
|
例
開始したとき
[Display the current yaw after rotating the end effector.]
[Arm1 v] のエンドエフェクター方向を [ヨー v] [90] 度へ移動 ◀ 待たない
<[Arm1 v] 移動完了?> まで繰り返す
([Arm1 v] の [ヨー v] 軸方向(度)) をスクリーンに表示 ◀ カーソルを次の行へ移動する
[0.25] 秒待つ
終わり
アームコントロールが停止したとき#
アーム制御停止時ハットブロックは、6軸アームの制御停止が有効になったときに、アタッチされたスタックを実行します。
[Arm1 v] が制御停止したとき :: hat events
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
腕が衝突したとき#
アームが衝突したときハットブロックは、6軸アームが移動中に衝突したときに、アタッチされたスタックを実行します。
衝突が検出されると、6軸アームはモーターの動きを停止し、一時的に力が抜けたように見えることがあります。これにより、負荷が軽減され、モーターが偶発的な損傷を受けるのを防ぎます。
when [Arm1 v] crashed :: hat events
パラメータ |
説明 |
|---|---|
デバイス |
使用するように構成された6軸アーム。 |
例
when [Arm1 v] crashed :: hat events
[Indicate a crash with the Signal Tower and Brain screen.]
[Crash Detected] をスクリーンに表示 ▶
[SignalTower2 v] を [赤 v] にして [点灯 v] に設定