CRANE-X7のROS 2 Jazzy版パッケージをリリースしました。Jazzyへの対応に加えて、moveit_pyサンプルパッケージの追加や、実機を用いずに動作確認が可能なMock componentsにも対応しております。本記事ではJazzy版パッケージの変更点と簡単な導入方法についてご紹介します。
CRANE-X7のご紹介
CRANE-X7はアールティが販売しているアームロボットです。7自由度のアームにグリッパを搭載しています。今回ご紹介するROS 2パッケージを使用することでボールを掴んで移動させるといった動作が簡単にプログラミングできます。
また、アールティが公開しているC++ライブラリを用いることで外力に柔軟な制御をすることができます。
詳細な特徴は下記の製品ページをご覧ください。
CRANE-X7は下記の販売ページから購入できます。
今回ご紹介するCRANE-X7 ROS 2パッケージは下記のGitHubリポジトリで配布しています。シミュレータ用パッケージも同梱されているので購入前の参考にも是非ご利用ください。インストール方法はパッケージのREADMEに記載されています。
Jazzy対応のお知らせ
CRANE-X7のROSパッケージが最新のROS 2長期サポート版ディストリビューションであるJazzy Jaliscoに対応しました。
Jazzy版のパッケージはGitHubリポジトリのjazzyブランチにて公開しております。ひとつ前の長期サポート版ディストリビューションであるHumble版のパッケージが必要な場合は、ros2ブランチではなくhumbleブランチを参照してください。
パッケージの基本機能は以前から変更ありませんが、本リリースに合わせて新機能を追加したため、合わせてご紹介します。
moveit_pyサンプルパッケージの追加
アームロボットを使ったマニピュレーションプラットフォームであるMoveit 2に、Jazzy版からPythonインターフェース (moveit_py) が追加されました。そのため以前からご要望の多かったPython版のサンプルパッケージを追加しました。Pythonによる開発に慣れている方は、より入門しやすくなったかと思います。
動作はC++版のサンプルと同様です。サンプルに関する詳細はcrane_x7_examples_pyのREADMEをご覧ください。
Mock componentsへの対応
Mock componentsを使用することで、実機を用いずに簡単にアームの動作を確認できるようになりました。
Mock componentsとは、ros2_controlの機能のひとつで、入力した指令値をそのまま現在の状態として出力する仮想的なハードウェアコンポーネントです。たとえば関節角度の指令値を送ると、そのまま現在の関節角度に反映されます。
シミュレータであるGazeboとの大きな違いは、物理演算等を行っていないことです。そのためros2_controlによるアームの動作のみを確認したい場合は、より計算リソースが少ない環境でも動作確認ができます。
Mock componentsを使用する場合は、パッケージインストール後に下記のコマンドを実行してください。RVizが起動し、実機とほぼ同様に動作します。
ros2 launch crane_x7_examples demo.launch.py use_mock_components:=true
インストール方法
CRANE-X7のROS 2パッケージのインストール方法について簡単にご紹介します。詳細はcrane_x7_rosのREADMEをご覧ください。
まずはじめにワークスペースを作成し、パッケージをGitHubからクローンします。
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone -b $ROS_DISTRO https://github.com/rt-net/crane_x7_ros.git
git clone -b $ROS_DISTRO https://github.com/rt-net/crane_x7_description.git
次に依存パッケージをインストールします。
rosdep install -r -y -i --from-paths .
最後にパッケージのビルドを行います。
cd ~/ros2_ws
colcon build --symlink-install
source ~/ros2_ws/install/setup.bash
実機の動作手順例
実機のCRANE-X7を動かす場合はUSB通信ポートの設定を行う必要があります。crane_x7_controlのREADMEの手順に従って設定を行ってください。
CRANE-X7は下記のコマンドで起動します。
ros2 launch crane_x7_examples demo.launch.py port_name:=/dev/ttyUSB0
別の端末を立ち上げて下記のコマンドを実行するとグリッパが開閉します。
ros2 launch crane_x7_examples example.launch.py example:='gripper_control'
シミュレータの動作手順例
ロボットシミュレータGazeboを用いることで、実機を使用せずにアームの動作をシミュレーションすることも可能です。
シミュレータは下記のコマンドで起動します。
ros2 launch crane_x7_gazebo crane_x7_with_table.launch.py
別の端末を立ち上げて下記のコマンドを実行するとグリッパが開閉します。
ros2 launch crane_x7_examples example.launch.py example:='gripper_control' use_sim_time:=true
おわりに
今回はCRANE-X7のJazzy版パッケージリリースについてお知らせしました。また、moveit_pyサンプルパッケージの追加やMock components対応、簡単なインストール手順についてご紹介しました。今後ともCRANE-X7をよろしくお願いします。