はじめに
こちらのページでは、Qualcomm® Robotics RB3 Platform の開発キットを用いてROS(Robot Operating System)のサンプルアプリケーションの1つを動かす手順についてまとめてあります。Qualcomm® Robotics RB3 PlatformでROSが動作することを確認してみましょう。
Qualcomm® Robotics RB3 Platformの開発キットにはROSが予めインストールされています。下記の手順に沿ってROSのサンプルアプリケーション(ROSのトピック通信を行うシンプルなPublisherとSubscriber)のビルドを行い、開発キット上で実行してみます。
ROS(Robot Operating System)とは?
ROS (Robot Operating System)はソフトウェア開発者のロボット・アプリケーション作成を支援するライブラリとツールを提供しています. 具体的には, ハードウェア抽象化, デバイスドライバ,ライブラリ,視覚化ツール, メッセージ通信,パッケージ管理などが提供されています. ROSはオープンソースの一つ, BSDライセンスにより, ライセンス化されています.
名前にOSとありますが、Windows, Linux, Androidなどの既存のOSとは異なり、既存のOS上にて動作しているプロセスの制御(プロセス間通信、スケジューリング、エラー処理などの支援)をするソフトウェアです。ソフトウェア開発者はROSが提供する様々な枠組みをロボット開発に活用できます。
ROSのトピック通信とはノード(ROSにおけるプロセスの基本単位)間の非同期な通信方法です。メッセージを送る側をPublisher(配信者)、受け取る側をSubscriber(購読者)と呼びます。トピック通信は連続的にメッセージの送受信がされるため、センサーデータの送受信などに利用されます。
ROSサンプルアプリケーションのダウンロード
Thundercomm社のウェブサイトより"ros_test.tar"をダウンロードください。
"ros_test.tar.gz"というファイルがPCへ保存されます。
(注):Thundercomm社ウェブサイトからのダウンロードには、別途Qualcomm® Robotics RB3 開発キットの購入とウェブサイトへのアカウント登録が必要となります。開発キットの購入に関するお問い合わせ、お見積りは以下リンクよりご用命ください。
ROSサンプルアプリケーションのビルド
本アプリケーションのビルドには事前にApplication SDKのインストールが必要となります。
関連ページ:Qualcomm® Robotics RB3 Platform向けApplication SDKのインストールについて
Linux PCにてターミナルを立ち上げ、順に以下のコマンドを実行します。
まずは、ros_test.tar.gzを展開します。
$ tar zxvf ros_test.tar.gz
$ cd ros_test
ビルドに必要な環境設定を行います。
$ source /usr/local/oecore-x86_64/environment-setup-armv7a-neon-oemllib32-linux-gnueabi
$ export PYTHONPATH=/usr/local/oecore-x86_64/sysroots/aarch64-oe-linux/usr/lib/python2.7/site-packages
ROSサンプルアプリケーションに含まれる"Hello world"をビルドします。
$ cd ros_test/ros-hello-world-master
$ mkdir build ; cd build
$ cmake ../hello_world/ '-DCMAKE_PREFIX_PATH=/usr/local/oecore-x86_64/sysroots/aarch64-oe-linux/opt/ros/indigo; /usr/local/oecore-x86_64/sysroots/aarch64-oe-linux/usr' -DCMAKE_INSTALL_PREFIX:PATH=/opt/ros/indigo -DCATKIN_BUILD_BINARY_PACKAGE=ON -DSETUPTOOLS_DEB_LAYOUT=OFF -DCATKIN_ENABLE_TESTING=0 -Wno-dev
$ make
ROSサンプルアプリケーションに含まれる"Listener"(Subscriber)をビルドします。
$ cd ros_test/ros-publisher_subscriber-test
$ mkdir build_listener ; cd build_listener
$ cmake ../listener/ '-DCMAKE_PREFIX_PATH=/usr/local/oecore-x86_64/sysroots/aarch64-oe-linux/opt/ros/indigo; /usr/local/oecore-x86_64/sysroots/aarch64-oe-linux/usr' -DCMAKE_INSTALL_PREFIX:PATH=/opt/ros/indigo -DCATKIN_BUILD_BINARY_PACKAGE=ON -DSETUPTOOLS_DEB_LAYOUT=OFF -DCATKIN_ENABLE_TESTING=0 -Wno-dev
$ make
ROSサンプルアプリケーションに含まれる"Talker"(Publisher)をビルドします。
$ cd ros_test/ros-publisher_subscriber-test
$ mkdir build_talker ; cd build_talker
$ cmake ../taker/ '-DCMAKE_PREFIX_PATH=/usr/local/oecore-x86_64/sysroots/aarch64-oe-linux/opt/ros/indigo; /usr/local/oecore-x86_64/sysroots/aarch64-oe-linux/usr' -DCMAKE_INSTALL_PREFIX:PATH=/opt/ros/indigo -DCATKIN_BUILD_BINARY_PACKAGE=ON -DSETUPTOOLS_DEB_LAYOUT=OFF -DCATKIN_ENABLE_TESTING=0 -Wno-dev
$ make
ROSサンプルアプリケーションを開発キットで実行してみる
Linux PCとQualcomm® Robotics RB3 開発キットをUSBケーブルで接続し、出来上がったROSサンプルアプリケーションの実行ファイルをADBを使用して開発キットへ転送します。
$ adb push ros-hello-world-master/build/devel/lib/hello_world/hello_world /opt/ros/indigo/bin
$ adb push ros-publisher_subscriber-test/build_listener/devel/lib/listener/listener /opt/ros/indigo/bin
$ adb push ros-publisher_subscriber-test/build_talker/devel/lib/talker/talker /opt/ros/indigo/bin
初めに"roscore"を起動させ、次に"Listener"を実行します。
$ adb shell
# cd /opt/ros/indigo/
# bash
bash-4.4# source ./ros-env.sh
bash-4.4# roscore &
bash-4.4# cd bin
bash-4.4# ./listener
Linux PCにて別のターミナルを立ち上げて、"Talker"を実行します。
$ adb shell
# cd /opt/ros/indigo/
# bash
bash-4.4# source ./ros-env.sh
bash-4.4# cd bin
bash-4.4# ./talker
結果は、それぞれ以下のように表示されます。


Qualcomm® Robotics RB3 Platformを活用してロボット開発をスタートしてみましょう。
お問い合わせ / お見積もり
製品に関するお問い合わせ、開発キットのお見積りは以下リンクよりご用命ください。