myCobotでとりあえずmoveitする


なぜmyCobotなのか?

  • 6自由度のアームなのに安い。実質無料。
  • M5StackとM5Atomを搭載してて、色々いじれそう
  • アタッチメントの形式がレゴテクニック式なので、レゴテクニック勢の私が買わない理由がない。
  • 白くシュッとしたデザイン

moveitできる実機が欲しくて自作に挑戦したことがあったのですが、ある程度高性能なサーボを買う必要があり「コスト的に気軽に踏み込めないないなぁ」と絶望してたところにmyCobotの先行販売があったので、さっと飛び付きました。

(なお、myCobotのリポジトリは日々更新されています。2021/01/06時点での情報なので、今後の変化についてはご了承ください)

環境

この記事は以下の環境で動いています。

項目
Ubuntu 18.04
ROS Melodic

moveitの準備

  1. moveitのインストール sudo apt install ros-melodic-moveit
  2. catkin_ws/srcの下で myCobotROSリポジトリのclone git clone https://github.com/elephantrobotics/myCobotROS.git
  3. catkin_ws下で catkin_make
  4. moveitのsetup_assistantを使って設定します。やり方は公式が一番詳しいので読んで順番に設定しましょう(私は不安だったので一度公式の通りpanda_moveit_configで練習しました)。最初に Create New MoveIt するときに落としてきた myCobotROS/urdf/mycobot_urdf.urdf を指定します。最後に Generate Package するときは Create New Folder してください。ここでは「 catkin_ws/src の下に mycobot_moveit として作った」として説明を進めます。

M5StackとM5Atomのファーム更新

  1. myCobotリポジトリのclone git clone https://github.com/elephantrobotics/myCobot.git
  2. ローダのインストール pip3 install esptool
  3. ファームのフォルダへ移動 cd myCobot/Software/myCobot固件烧录器V1.3/ino
  4. PCとM5Stack(根っこの方)をUSBケーブルでつないでファームを焼く。 esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash --flash_mode dio -z 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 Transponder.ino.bin 0x8000 Transponder.ino.partitions.bin
  5. PCとM5Atom(先っちょの方)をUSBケーブルでつないでファームを焼く。 esptool.py --port /dev/ttyUSB0 write_flash --flash_mode dio -z 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 AtomMain2.3.ino.bin 0x8000 AtomMain2.3.ino.partitions.bin

エラーがでなければ完了です。なお、M5StackもM5Atomも何も表示されない&光らない状態になるので、不安になります(笑) でも中身は動いてるので安心してください。

moveitの起動

  1. USBケーブルをM5Stack側に接続し直す。
  2. ターミナルを2つ開く。
  3. ターミナル1 roslaunch mycobot_moveit demo.launch
  4. ターミナル2 rosrun myCobotROS control_slider.py

あとは、rvizでグリグリと動かすだけです。rviz上の操作方法は公式に説明がありますので読みましょう。

なお、表示されるスライドバーを動かすと各関節を曲げることができます。急激に変化させると激しく動くためかなり危険です。気を付けて少しずつ動かしましょう。

myCobotを持ってないけどPC内で動かしたい!

という方も大丈夫、できます。↑の手順をすべて実行し、※の部分だけ実行しなければOkです。rviz内でmyCobotが動きます。

すいません

この記事で書いた方法は「とりあえず簡単にmoveitを使ってmyCobotを動かす」やり方になります。本当はros_controlに接続できるかたちでmyCobot側のハードウェアインタフェースを記述してあげる必要があります。勉強して、正式対応版の記事を書きたいと思います。

→ myCobotでほんとうにmoveitする にまとめました。

参考 & Thanks

  1. ファームのロード方法は とよしさんのesptool – ESP8266およびESP32シリアルブートローダユーティリティ – GitHubじゃ!Pythonじゃ!を参考にしました。
  2. 色々迷ったらからあげさんのmyCobotのすべてを参考にしました。