鍬形です。
アールティが販売する上半身人型ロボットSciurus17のROS 2 (Humble) パッケージをリリースしました。ROS 2へのアップデートに伴う変更点やパッケージのセットアップ手順についてご紹介します。
Sciurus17のご紹介
Sciurus17はアールティが販売している上半身人型ロボットです。グリッパ付きの7自由度のアーム、2自由度の首、1自由度の腰の合計17自由度 (+グリッパ) になっています。今回ご紹介するROS 2パッケージを使用することで物を掴んで移動させるといった動作が簡単にプログラミングできます。
また今回ご紹介するROS 2パッケージでは取り扱っていないのですが、アールティが公開しているC++ライブラリを用いることで外力に柔軟な制御をすることもできます。
詳細な特徴は下記の製品ページをご覧ください。
Sciurus17は下記の販売ページから購入できます。シミュレータを含むROS 2パッケージは無償で公開しているため購入前の参考に是非ご利用ください。ROS 2パッケージのインストール方法については記事後半にてご紹介します。
ROS 2パッケージ公開の経緯
これまでSciurus17を動かすソフトウェアとしてROS 1パッケージのみを提供していました。今回のリリースから新たにROS 2パッケージが加わります。ROS 1はNoetic Ninjemysのリリースを最後に2025年5月でサポートが終了予定です。そのため今後もSciurus17でROSを用いた開発ができるようROS 2対応をしました。
現在ROS 1パッケージを使用されている方で、2025年5月以降もSciurus17を使用する場合はROS 2への移行をご検討ください。
ROS 2パッケージでの変更点
サンプルコード内の使用言語
アームや胴体を動作させるサンプルコードをPythonからC++へ置き換えました。ROS 1でアームの軌道生成に使用していたMoveItのPython APIは、次のROS 2バージョンから使用可能になります。Sciurus17のPythonサンプルもそれに合わせて提供予定です。
またSciurus17のサンプルコードはアールティのアームロボットCRANE-X7のサンプルと統一されています。CRANE-X7ユーザの方もぜひSciurus17を使ってみてください。
新しいGazebo
シミュレーション環境に使用しているGazeboが更新され、機能やUIが一新されています。※ROS 1で使用していたGazeboはGazebo Classicに改名されました。
ros2_controlへの移行
ハードウェア制御に使用するros_controlパッケージも、ROS 2ではros2_controlとなり機能や使い方が異なります。sciurus17_controlパッケージを編集されていた方は、パッケージの構造が大きく変わっているのでご注意ください。
未収録サンプルコード
記事執筆時点(2023年11月14日)ではROS 1パッケージに収録されているサンプルコードの一部がROS 2パッケージに収録されていません。順次追加してまいりますのでお楽しみにお待ちください。
ROS 2パッケージのインストール方法
Sciurus17 ROS 2パッケージのインストール方法についてご紹介します。まずは下記コマンドでワークスペースを作成しパッケージをクローンします。
source /opt/ros/humble/setup.bash mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src git clone -b ros2 https://github.com/rt-net/sciurus17_ros.git git clone -b ros2 https://github.com/rt-net/sciurus17_description.git
次に依存パッケージをインストールします。
rosdep install -r -y -i --from-paths .
最後にパッケージをビルドしてインストール完了です。
cd ~/ros2_ws colcon build --symlink-install source ~/ros2_ws/install/setup.bash
実機を使用する場合は下記コマンドで、sciurus17_controlが実機と通信するためのUSBシリアル変換デバイス名を固定します。
ros2 run sciurus17_tools create_udev_rules
実行後に再起動しSciurus17を接続すると/dev/sciurus17spineが作成されるようになります。
パッケージのソースコードは下記のGitHubリポジトリで公開しています。
Sciurus17の起動方法
Sciurus17を制御するROSノードを起動します。まずはSciurus17を電源とPCに接続してください。接続手順の詳細は製品ページ下部にある「Sciurus17 入門ガイド」をご覧ください。
下記コマンドを実行するとサーボのトルクがオンになり、GUIツールであるRVizが起動します。
source ~/ros2_ws/install/setup.bash ros2 launch sciurus17_examples demo.launch.py
シミュレータを使用する場合は下記コマンドを実行します。
source ~/ros2_ws/install/setup.bash ros2 launch sciurus17_gazebo sciurus17_with_table.launch.py
アームの動作方法
RViz上でアームの手先をマウスでドラッグし、Plan & Executeボタンをクリックするとアームが動き出します。アームが周囲と接触しないように、十分なスペースを確保してください。
RVizを使用した操作を自動化するためのサンプルコードも提供しています。例えば下記コマンドでピックアンドプレースのサンプルが実行されます。Sciurus17の土台から25cm前にある物体を把持して移動させています。その他のサンプルについて詳しくはsciurus17_examplesのREADMEをご覧ください。
ros2 launch sciurus17_examples example.launch.py example:='pick_and_place_right_arm_waist'
シミュレータを動かす場合は下記コマンドのようにuse_sim_timeオプションをtrueにします。
ros2 launch sciurus17_examples example.launch.py example:='pick_and_place_right_arm_waist' use_sim_time:='true'
まとめ
今回はSciurus17のROS 2パッケージについてお知らせしました。またアップデートに伴う変更点やセットアップ手順についてご紹介しました。今後も開発を継続してまいりますのでSciurus17をよろしくお願いします。
ちなみに今回のサムネイルでSciurus17がとっているポーズはROS 2 Humbleのロゴで亀がとっているポーズを真似してみました。気づきましたでしょうか。