技術情報・開発日誌

Sciurus17 ROS 2 (Humble) パッケージをリリースしました

技術情報・開発日誌

鍬形です。

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

Sciurus17のご紹介

Sciurus17はアールティが販売している上半身人型ロボットです。グリッパ付きの7自由度のアーム、2自由度の首、1自由度の腰の合計17自由度 (+グリッパ) になっています。今回ご紹介するROS 2パッケージを使用することで物を掴んで移動させるといった動作が簡単にプログラミングできます。

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

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

https://rt-net.jp/products/sciurus17/

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

Sciurus17 [RT-SCIURUS17] - ¥3,300,000.- : アールティロボットショップ, ロボットキット、部品は専門スタッフがいるアールティへ!
アールティロボットショップ Sciurus17 - ROSに対応した上半身ヒューマノイド型研究用ロボット 頭部に3次元距離カメラ搭載の位置・速度・電流(トルク)制御を選択可能な上半身人型ロボットです。 受注生産品(納期:約2~2.5ヶ月) ...

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リポジトリで公開しています。

GitHub - rt-net/sciurus17_ros at ros2
Sciurus17 ROS packages. Contribute to rt-net/sciurus17_ros development by creating an account on 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のロゴで亀がとっているポーズを真似してみました。気づきましたでしょうか。

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