技術情報・開発日誌

CRANE-X7 ROS 2(Foxy)パッケージをリリースしました

技術情報・開発日誌

鍬形です。

アールティが販売するアームロボットCRANE-X7のROS 2(Foxy)パッケージをリリースしました。ROS 2へのアップデートに伴う変更点やパッケージのセットアップ手順についてご紹介します。

CRANE-X7のご紹介

CRANE-X7はアールティが販売しているアームロボットです。7自由度のアームにグリッパを搭載しています。今回ご紹介するROS 2パッケージを使用することでボールを掴んで移動させるといった動作が簡単にプログラミングできます。

今回ご紹介するROS 2パッケージでは取り扱っていないのですがアールティが公開しているC++ライブラリを用いることで外力に柔軟な制御をすることもできます。

詳細な特徴は下記の製品ページをご覧ください。

https://rt-net.jp/products/crane-x7/

CRANE-X7は下記の販売ページから購入できます。シミュレータを含むROS 2パッケージは無償で公開しているため購入前の参考に是非ご利用ください。ROS 2パッケージのインストール方法については記事後半にてご紹介します。

CRANE-X7 [RT-CRANE-X7] - ¥990,000.- : アールティロボットショップ, ロボットキット、部品は専門スタッフがいるアールティへ!
アールティロボットショップ CRANE-X7 - 実機で動力学が学べるロボットアーム CRANE+ V2の上位機種である、ROS/ROS 2に標準対応した研究・開発用ロボットです。 コンパクトでスタイリッシュ!協働型ロボットの研究に最適です。 持ち運びに便利なスーツケース付き! ■納期:受注後1~1.5か月  ※カラ...

ROS 1からROS 2へ

CRANE-X7はROS 1パッケージを提供していましたが、今回のリリースから新たにROS 2パッケージが追加されました。ROS 1はNoetic Ninjemysのリリースを最後に2025年でサポートが終了します。そのためCRANE-X7は今後もROSを用いた開発ができるようROS 2対応をしました。

ROS 2対応に伴い、使用している各種ライブラリにおいても変更が生じています。例えばアームの軌道生成などに使用しているMoveItパッケージは、2022年9月現在ROS 2向けにPythonライブラリを提供していません。そのためCRANE-X7のサンプルスクリプトをPythonからC++へ書き換えています。

またシミュレーション環境のGazeboも機能やUIが一新されています。※ROS 1で使用していたGazeboは、Gazebo Classicに改名されました。

ハードウェア制御に使用するros_controlパッケージも、ROS 2ではros2_controlとなり機能や使い方が一新されました。crane_x7_controlパッケージを編集されていた方は、パッケージの構造が大きく変わっているのでご注意ください。

ROS 2パッケージのインストール方法

CRANE-X7 ROS 2パッケージのインストール方法についてご紹介します。まずは下記のコマンドでワークスペースを作成しパッケージをクローンします。

source /opt/ros/foxy/setup.bash
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone -b ros2 https://github.com/rt-net/crane_x7_ros.git
git clone -b ros2 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

パッケージのソースコードは下記のGitHubリポジトリで公開しています。

GitHub - rt-net/crane_x7_ros at ros2
CRANE-X7 ROS / ROS 2 Packages. Contribute to rt-net/crane_x7_ros development by creating an account on GitHub.

CRANE-X7の起動とサンプルの実行

CRANE-X7を制御するROSノードを起動します。まずはCRANE-X7を電源とPCに接続してください。詳細はREADMEをご覧ください。

下記コマンドでUSBポートの設定を行います。下記の設定のみでアームの動作に問題はないですが、CRANE-X7の制御周期を変更する際はcrane_x7_controlのREADMEを参照してください。

sudo chmod 666 /dev/ttyUSB0

下記コマンドを実行するとサーボのトルクがオンになりアームを手で触っても動かなくなります。

ros2 launch crane_x7_examples demo.launch.py port_name:=/dev/ttyUSB0

以下の動画のようにRViz上でアームの手先をマウスドラッグし、PlanボタンとExecuteボタンをクリックすると実機のアームが動き出します。

RVizを使用した操作を自動化するためのサンプルコードも提供しています。例えば下記コマンドでピックアンドプレースのサンプルが実行されます。アームの土台から20cm前にある物体を把持して移動させています。アームが周囲と接触しないように、十分なスペースを確保してください。その他のサンプルについて詳しくはcrane_x7_examplesのREADMEをご覧ください。

ros2 launch crane_x7_examples example.launch.py example:='pick_and_place'

まとめ

今回はCRANE-X7のROS 2パッケージについてお知らせしました。またアップデートに伴う変更点やセットアップ手順についてご紹介しました。今後も開発を継続してまいりますのでCRANE-X7をよろしくお願いします。

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