myBlocklyでmyCobotを動かす①
やってること
ロボットアームmyCobotをビジュアルプログラミング(myBlockly)で開発する環境を整備する。
実際にmyBlocklyでmyCobot 280を動かする
実装例:ティッシュの受け渡し
1.はじめに
このページでは、ブロックプログラミング
myCobot 280をmyBlocklyで動かすためのメモ。
myStudio 3.6.5では、myBlocklyボタンを押してもダウンロードページが開くだけの場合がある。
その場合は、myBlocklyを直接インストールして起動する。
2.使用環境
myCobot 280
myStudio 3.6.5
myBlockly
Windows
COMポート:
ポート番号:各自の環境に設定
Baud: 115200
3.インストール・起動準備
myStudioをインストールしてドライバーをインストール
※(学内向け)アクセスできない場合はMoodleの資料ページに記載されている注意を参照すること。
CDM21228_Setup.zip
CDM21228_Setup.exeをインストール
CP210x_VCP_Windows.zip
フォルダを展開して「CP210xVCPInstaller_Win7_v5.40.24.exe」をインストール
ドライバーをインストール後、COMポートの番号を確認する。
https://gyazo.com/735f1c1f446a93e78de0002f2b8fd9b7
Pythonのインストール(※Pythonがインストールされていない場合のみ)
https://gyazo.com/1b07ed6bbe090592a119d550d1d5f505
インストールの際は「Add python.ex. to PATH」にチェックを入れること
https://gyazo.com/45f289844c40556780c4ddcb392d2732
pymycobotのインストール
コマンドプロンプトから下記を実行
code:pymycobotのインストール
pip install pymycobot
4.myCobot 280のハードウェア
https://gyazo.com/61d8f04df67f74dd6eff09d786b2d495 https://gyazo.com/489ceb763851343a164b98926b818399https://gyazo.com/61d8f04df67f74dd6eff09d786b2d495
myCobot 280で制御可能なハードウェア
J1からJ6までの6個の関節角 + グリッパー(Type: Flexible)
M5 Stack Basic (土台部分)
M5 Stack Atom(手先部分)
5.myBlocklyの起動と設定
初期位置にあることを確認し、myCobotの電源を接続する
myBlocklyを直接起動する(myStudioは用いない)
5.1 初期設定
起動後、「Init」ブロックで以下を設定する。
code:設定
Model: MyCobot 280
Port: 「3.インストール・起動準備」で確認したポート番号
Baud: 115200
5.2 ATOMのLEDパネル表示、アームの操作
下記の動作を実現する。
code:動作
1. 初期設定
Model: MyCobot 280
Port: 「3.インストール・起動準備」で確認したポート番号
Baud: 115200
↓
2. Power ON
↓
3. M5 ATOMのLEDパネルを赤(R:255,G:0,B:0)にセット
↓
4. 1秒待機
↓
5. Joint ID: 1 の関節を 角度 90° スピード 20° で セット
※myBlocklyの「RUN」がクリックできないときはここを参照してください ● 確認してみよう
左上のタブを「Blockly」から「Python」に切り替えると、生成されたコードを確認できます。
Blockly表示
https://gyazo.com/f41ddc2612b6bc744967843478a0c8e0
code:Python表示
from pymycobot import MyCobot280
import time
mc = MyCobot280('COM18',115200)
mc.power_on()
mc.set_color(255,0,0)
time.sleep(1)
mc.send_angle(1,90,20)
ヒント:
ATOMの操作には、「ATOM IO」を用いる
Power Onは「Status」の中にある
関節角の設定には「MDI Control」内にあるSet Joint、Set Angleなどを用いる
課題1
下記の動作を実現する
code:動作
Joint ID: 3 の関節を 角度 90° の位置に指定
M5 ATOMのLEDパネルを 緑 に 表示
↓
Joint ID: 1 の関節を 角度 90° の位置に指定
M5 ATOMのLEDパネルを 青 に 表示
↓
Joint ID: 1 の関節を 角度 0° の位置に指定
Joint ID: 3 の関節を 角度 0° の位置に指定
M5 ATOMのLEDパネルを 緑 に 表示
5.3 課題2 ティッシュ手渡しロボットの作成
上記を踏まえて、ロボットアームによるティッシを手渡しを実現する
ヒント:
すべての関節を動かす必要はない。必要な関節角をあらかじめ考えておくこと。
ティッシをつかむ際は、「Gripper」内のブロックを用いる。
Type は 「 Flexible Gripper 」を指定すること。
6.まとめ
このチュートリアルでは、以下が確認できた。
COM通信
サーボON
LED制御
関節移動
グリッパ開閉
Sleepによる待ち時間
BlocklyからPythonへの変換
注意点
最初は速度を20程度にする
周囲に物を置かない
腕が大きく動くので、必ず手を離してからRunする
J1やJ3を90度動かす場合は、ロボット周辺の干渉に注意する
動かない場合は、Power Onが入っているか確認する
腕が手で簡単に動く場合は、サーボOFFの可能性がある