未分類

ROS2勉強メモ1日目:通信、パッケージ、ディレクトリ構成

クライアントライブラリ(Client Library)

クライアントライブラリは多言語サポートのためのライブラリ。

roscpp

rospy

 

通信種

メッセージ通信、メッセージ、ネーム、座標返還、クライアントライブラリは、異種デバイス間の通信をサポート。

個人的メモ

すべてのノードにはURL(URI)が割り振られている。ROSマスター(ROScore)がノードの名前、URIなどを管理。新規のノードはマスターにプッシュして登録してもらう。

マスターはノードのリクエストに合わせて情報を返す。通信経路ができたらノード間で通信。(なのでROScoreは何台あっても1つで動かせばOK)

QoSは、MD5(Message-Digest algorithm 5)で担保。128ビット暗号化ハッシュ関数。

ネットワーク上の通信はRPCという(Remote Procedure Call:遠隔で手続きをコール[呼び出し])。プロトコルはTCP/IP, IPXなどを使用。

ROS2のディレクトリ構成

ROSアプリ本体

/opt/ros/ がルートディレクトリ

その下層に、bin, etc, include, lib, shareディレクトリ、env, setupファイルが構成

ユーザ作業スペース

任意。~/catkin_ws とする場合が多い。

ワークスペースディレクトリ(~/catkin_ws)下に、build, devel, srcディレクトリと、.catkin_workspaceファイルが構成

ユーザパッケージ

srcディレクトリには、ユーザが作成または公開されているパッケージのソースコードを置いてビルドする。

パッケージディレクトリ内の構成

「~/catkin_ws/src/パッケージ名/各パッケージ/」この中に、

/include:ヘッダーファイル

/launch:ラウンチファイル

/node:ノード

/msg:メッセージ

/src:ソース

/srv:サービス

CmakeLists.txt:ビルド設定ファイル

package.xml:パッケージ設定ファイル

ビルド

CMakeがコアビルダに採用されている。makeはLinuxのみサポートだがCMakeによって、VSC(Visual Studio Code)やQtCreatorで開発できる。

 

メッセージ通信の手続き

トピック:一方行、非同期、ブロードキャスト可
ノードから一方的につぶやく感じ。

サービス:双方向、同期、1対1

ノードからの要請に対して規定の応答を返す。

アクション:双方向、非同期、目標・結果・フィードバックの3種通信モードを内包

ゴール(目標)があって、目標についての設定変更、途中経過、達成したかをやり取り。

パラメータは。マスタのパラメータサーバ経由でノード間やり取り。

各ノードの呼び方。

トピック:発信側=パブリッシャ、受信側=サブスクライバ
パブリッシャとサブスクライバ。DDS的な名称。

サービス:要請側=サービスクライアント、応答側=サービスサーバ

アクション:要請側=アクションクライアント、応答側=アクションサーバ

アクションとサービスは、サーバ&クライアント。

パッケージ

Turtlebot3のパッケージ

ros-kinetic-turtlebot3
ros-kinetic-turtlebot3-msgs
ros-kinetic-turtlebot3-simulations

PR2のパッケージ

sudo apt-get install ros-kinetic-pr2-desktop

-未分類

© 2021 技術科・情報科のサイト Powered by AFFINGER5