Qualcomm® Robotics RB3 Platform 開発キットでROSを動かす(その1)

はじめに

こちらのページでは、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を活用してロボット開発をスタートしてみましょう。

お問い合わせ / お見積もり

製品に関するお問い合わせ、開発キットのお見積りは以下リンクよりご用命ください。