LoginSignup
7
3

More than 1 year has passed since last update.

RustDDSのexampleを動かす

Last updated at Posted at 2022-11-18

これは何?

ROSCon2022に参加した際に、"Native Rust components for ROS 2"のセッションでRustDDSを紹介していました。今回はRustDDSをソースからビルドして動作を確認しました。

対象とする読者

この記事はRustDDSを試してみたいROSユーザー向けに書いています。

環境

  • ubuntu 22.04
  • ROS Humble
  • 言語 Rust 1.62.0

作業内容

  1. eProsimaのShapseDemoをビルドと動作確認
    • RustDDSのデモがShapseDemoを使用する為
  2. RustDDSのビルドと実行
    • こっちが今回の目的の方

作業準備

Rust, ROSはインストール済みとします。

eProsimaのShapes Demoのビルドと動作確認

e-ProsimaのShapes Demoのビルド方法を示します。

1.必要なソフトをインストールする

ビルドにな依存関係にあるソフトウェアをインストールします。

sudo apt install wget git
sudo apt install libasio-dev libtinyxml2-dev

colconなどがインストールされていない場合は、以下のコマンドを実行しでインストールします。

pip install -U colcon-common-extensions vcstool

2.ソースをダウンロードする

以下のコマンドでソースをダウンロードします。

mkdir -p ShapesDemo/src && cd ShapesDemo
wget https://raw.githubusercontent.com/eProsima/ShapesDemo/master/shapes-demo.repos
vcs import src < shapes-demo.repos

※ e-Prosimaのチュートリアルはreposファイルのアドレスが微妙に違うので修正してます。

3.ビルド

以下のコマンドでビルドします。

colcon build

4.動作確認

ビルドしたディレクトリ下で以下を実行します。

source install/setup.bash
ShapseDemo

以下のようなGUIが立ち上がれば成功です。

Screenshot from 2022-11-18 15-25-29.png

動作確認ができたら、Ctrl+cで終了してください

RustDDSのビルド

1.リポジトリのクローン

以下のコマンドでRustDDSのリポジトリをクローンします。

git clone git@github.com:jhelovuo/RustDDS.git

2.ソースのビルド

以下のコマンドでダウンロードしてきたソースのディレクトリに移動しビルドしてください。

cd RustDDS/ 
cargo build

3.動作確認

以下のcargoコマンドでexampleを実行してください。
Circle GREEN 11 11 [21]のような文字列が連続して出力できれば成功です。

$ cargo run --example=shapes_demo -- -P -t Circle -r -c GREEN -S
    Finished dev [unoptimized + debuginfo] target(s) in 0.07s
     Running `target/debug/examples/shapes_demo -P -t Circle -r -c GREEN -S`
No config file found in current working directory.
Topic name is Circle. Type is ShapeType.
(中略)
Circle     GREEN       11  11 [21]
Circle     GREEN       14  14 [21]
Circle     GREEN       17  17 [21]
Circle     GREEN       20  20 [21]
......

動作確認ができたら、Ctrl+cで終了してください

デモの実行方法

1.Shpes Demo起動と設定

ShapesDemoをビルドしたディレクトリに行き、以下のコマンドを実行してください。

ShapesDemo

以下のGUIが立ち上がりますので[Publish]と書かれたボタンを押下してください。

Screenshot from 2022-11-18 15-25-29.png

ダイアログが開かれますので以下を設定してください

  1. Shapeラベル下のドロップダウンリストから"Circle"を選択
  2. Colorラベル下のドロップダウンリストからREDを選択
  3. [:white_check_mark:OK]を押してダイアログを閉じる

Screenshot from 2022-11-18 15-34-47.png

次に[Subscribe]と書かれたボタンを押下します。

ダイアログが開かれますので以下を設定してください

  1. Shapeラベル下のドロップダウンリストから"Circle"を選
  2. [:white_check_mark:OK]を押してダイアログを閉じる

Screenshot from 2022-11-18 15-34-43.png

以下の図の用に赤い丸が動き回っていれば設定成功です。

Screenshot from 2022-11-18 15-47-24.png

これでShapeDemosの設定は完了しました。

2.RustDDSのデモの実行

新しく端末を開き、RustDDSをビルドしたディレクトリへ行ってください。
以下のコマンドを実行すれば、RustDDSのデモが実行されます。

cargo run --example=shapes_demo -- -P -t Circle -r -c GREEN -S

上手く行けば以下のような表示が端末に表示されるはずです。

Circle     GREEN      184 155 [21]
Circle     RED         97 225 [30]
Circle     RED        102 220 [30]
Circle     RED        107 215 [30]
Circle     GREEN      169 170 [21]
Circle     RED        112 210 [30]
....

また、ShapseDemoのGUI上に緑色の丸が表示されるはずです。(数秒のラグがあるので、コマンドの実行後少し待ってください)

Screenshot from 2022-11-18 15-33-31.png

動作確認ができたら、Ctrl+cで終了してください

私が詰まったところ

参考資料

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3