ROS 2でCRANE+ V2を動かしてみた技術情報・開発日誌

MoveIt 2とCRANE+ V2のROS 2パッケージのインストール方法を紹介します

ROS 2でCRANE+ V2を動かしてみた
グリッパーの開閉

こんにちはshotaです。

このシリーズでは、アールティのアームロボットCRANE+ V2(クラインプラスブイツー)ROS 2で動かしていきます。
今回はMoveIt 2のインストール方法と、CRANE+ V2のROS 2パッケージのインストール方法を紹介します。

前回のおさらい

前回の記事ではCRANE+ V2の購入から、設置方法、サンプルプログラムの実行方法までを紹介しました。

また、こちらの記事ではCRANE+ V2とはどんなロボットなのか、ROS 2パッケージでどんな動きをするのかを紹介しました。ぜひご覧ください。

MoveIt 2のインストール

まずはMoveIt 2をインストールします。

作業用のPCにはUbuntu 20.04をインストールしています。

MoveIt 2とは

MoveItマニピュレータを簡単に動かすためのオープンソースソフトウェアです。
軌道計画逆運動学の演算、衝突検出・回避等のマニピュレータに必要な機能が豊富に含まれています。

MoveItのROS 2バージョンがMoveIt 2です。

MoveIt 2は2020年11月時点ではROS 2 Foxy向けにリリースされていません。

そのため、ソースファイルをビルドして、インストールします。

MoveIt2をインストールする

MoveIt 2のビルド&インストール方法はMoveIt 公式ページに記載されています。

公式手順に従ってMoveIt 2をインストールします。

Prerequistes

まずはROS 2 Foxyのインストールです。下記の公式手順に従ってインストールします。

続いてROS 2のビルドツールをインストールします。
詳細な手順はこちらです。

ROS 2パッケージの依存パッケージをインストールする際はrosdepコマンドが使われるのですが、
現時点のMoveIt 2はrosdepに対応していません。

そのため後述する別の方法(ビルドツール)で依存パッケージをダウンロードし、インストールします。

下記のコマンドを実行してビルドツールをインストールします。

$ sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  libbullet-dev \
  python3-colcon-common-extensions \
  python3-flake8 \
  python3-pip \
  python3-pytest-cov \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool \
  wget

# install some pip packages needed for testing
$ python3 -m pip install -U \
  argcomplete \
  flake8-blind-except \
  flake8-builtins \
  flake8-class-newline \
  flake8-comprehensions \
  flake8-deprecated \
  flake8-docstrings \
  flake8-import-order \
  flake8-quotes \
  pytest-repeat \
  pytest-rerunfailures \
  pytest

# install Fast-RTPS dependencies
$ sudo apt install --no-install-recommends -y \
  libasio-dev \
  libtinyxml2-dev

# install Cyclone DDS dependencies
$ sudo apt install --no-install-recommends -y \
  libcunit1-dev

Create Workspace and Source

続いて、MoveIt 2用のワークスペースを作成します。
CRANE+ V2用のワークスペースと区別するため、名前をmoveit_wsとします。

$ mkdir -p ~/moveit_ws/src

Download Source Code

MoveIt 2と依存パッケージのソースファイルをダウンロードします。

$ cd ~/moveit_ws/src
$ wget https://raw.githubusercontent.com/ros-planning/moveit2/main/moveit2.repos
$ vcs import < moveit2.repos
$ rosdep install -r --from-paths . --ignore-src --rosdistro foxy -y

vsc import < moveit2.reposを実行すると、10個くらいのパッケージがダウンロードされます。
ダウンロードされたパッケージのバージョンは、moveit2.reposファイルを見ると確認できます。

$ cat moveit2.repos
repositories:
  moveit2:
    type: git
    url: https://github.com/ros-planning/moveit2
    version: main
  moveit_msgs:
    type: git
    url: https://github.com/ros-planning/moveit_msgs
    version: ros2
  moveit_resources:
    type: git
    url: https://github.com/ros-planning/moveit_resources
    version: ros2
--- 以下略 ---

Build MoveIt

いよいよMoveIt 2のビルドです。
次のコマンドを実行します。

$ cd ~/moveit_ws
$ colcon build --event-handlers desktop_notification- status- --cmake-args -DCMAKE_BUILD_TYPE=Release

パッケージ数が多いためビルドに時間がかかります

colconコマンドに--parallel-workersオプションをつけると、並列パッケージビルド数を変更できます。CPU使用率やメモリ消費量を抑えたい場合に試してみてください。

$ colcon build --event-handlers desktop_notification- status- --cmake-args -DCMAKE_BUILD_TYPE=Release --parallel-workers 2

参考:https://colcon.readthedocs.io/en/released/reference/executor-arguments.html

Source the Colcon Workspace

ビルドに成功したらセットアップスクリプトを読み込んで準備完了です。

$ source ~/moveit_ws/install/setup.bash

ページ下のMoveItCpp Demo Packageをクリックし、デモパッケージの実行に進みます。

MovetIt 2のデモパッケージをを実行する

デモパッケージの説明は下記に書かれています。

次のコマンドを実行します。

$ ros2 launch run_moveit_cpp run_moveit_cpp.launch.py

RVizが起動してpanda_armが動きます。

MoveIt 2 デモパッケージの実行

終了するときはCtrl+Cを入力します。

CRANE+ V2をROS 2で動かす

続いてCRANE+ V2のROS 2パッケージcrane_plusをインストールして動かします。

crane_plusのインストール

crane_plusのREADMEに従い、パッケージをインストールします。
MoveIt 2はインストール済みなので、crane_plusのビルドから始めます。

まず、crane_plus用のワークスペースを作成します。名前はros2_wsとします。

$ mkdir -p ~/ros2_ws/src

crane_plusと依存パッケージをダウンロード・インストールします。

$ cd ~/ros2_ws/src
$ git clone https://github.com/rt-net/crane_plus.git

# Install dependencies
$ source ~/moveit_ws/install/setup.bash
$ rosdep install -r -y -i --from-paths .

crane_plusをビルドします。

$ cd ~/ros2_ws
$ colcon build --symlink-install

セットアップスクリプトを読み込んで準備完了です。

$ source ~/ros2_ws/install/setup.bash

セットアップスクリプトはcrane_plusを実行するたびに読み込むので、.bashrc等のスクリプトで読み込むように設定しておくと、毎回のコマンド入力を省略できます。

$ echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc

パッケージの実行 Quick Start

それではCRANE+ V2をROS 2で動かしましょう。
READMEのQuick Startに記載されているコマンドをそのまま実行します。

CRANE+ V2が人や物にぶつからないように、スペースを確保してから動かしてください
$ ros2 launch crane_plus_examples demo.launch.py

コマンドを実行するとRVizが起動します。
Jointや、インタラクティブマーカを操作して目標姿勢を決め、Plan & Executeを押すと、CRANE+ V2が目標姿勢になるように動作します。

CRANE+ V2は4自由度のアームロボットなので、インタラクティブマーカで目標姿勢を決めることが難しいです

ターミナルをもう一つ開き、次のコマンドを実行するとグリッパーを開閉できます。

$ ros2 launch crane_plus_examples example.launch.py example:='gripper_control'

グリッパーの開閉

終了するときはCtrl+Cを入力します。

まとめ

今回は

  • MoveIt 2をインストールしました
  • CRANE+ V2 のROS 2パッケージcrane_plusをインストールしました
  • crane_plusのQuick Startを実行しました

次回の記事ではcrane_plusのその他のサンプルプログラムを紹介します。
また、CRANE+ V2の制御周期の変更方法も紹介します。

タイトルとURLをコピーしました