鍬形です。
アールティが販売するアームロボットCRANE-X7のROS 2(Foxy)パッケージをリリースしました。ROS 2へのアップデートに伴う変更点やパッケージのセットアップ手順についてご紹介します。
CRANE-X7のご紹介
CRANE-X7はアールティが販売しているアームロボットです。7自由度のアームにグリッパを搭載しています。今回ご紹介するROS 2パッケージを使用することでボールを掴んで移動させるといった動作が簡単にプログラミングできます。
今回ご紹介するROS 2パッケージでは取り扱っていないのですがアールティが公開しているC++ライブラリを用いることで外力に柔軟な制御をすることもできます。
詳細な特徴は下記の製品ページをご覧ください。

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