ROSの「ノード」について
ROSさんお手やわらかに:ROS入門編
今回はチュートリアルのこのページだ。タイトルは「ノードを理解する」となっている。ただし、このページのデスクリプションには「ROSの『グラフ』のコンセプトについて説明する」とある。グラフをどう訳せばよいか今はわからない。
ともかくこのチュートリアルを実行するには、軽量級のシミュレータのインストールが必要だ。下記のコマンドでインストールする。
sudo apt-get install ros-fuerte-ros-tutorials
僕の場合はすでにインストール済みで更新の必要はないというメッセージがでた。
次に、このチュートリアルに出てくるキーワードについての説明がある。下記に意訳しておく。
・ノード(Nodes); 一つのノードは実行可能なオブジェクトで、ROSを使って他のノードと交信する。
・メッセージ(Messages): ROSのデータ形式で、「トピック」に対して「発行」と「引用」するときに用いる。
・トピック(Topics): ノードはトピックに対しメッセージを「発行」し、また「引用」することでメッセージをトピックから受信できる。
・マスター(Master): ROSのネームサーバー(例えば:ノードが他のノードを見つけられるようにする)
・ロスアウト(rosout): c言語などのstdoutとstderrのROS版
・ロスコア(roscore): マスターとロスアウトとパラメータサーバーのこと(パラメータサーバーは後ほど説明)
パブリッシュとサブスクライブはMacの慣習にならって「発行」と「引用」と訳した。この訳がいいのかどうかはわからない。兎に角、この関係は下記の様になっているのだろう。
・発行側 メッセージは誰でも読めるように公開されている。受け手を指定しない。
・引用側 メッセージは使用する度に新たに読み込まれる。発行側が内容を更新すれば、それが反映される。
サブスクライブは「購読」と訳す場合もある。でも、日本語にするとどうも分かりにくいね。なかなかいい日本語訳が見当たらない。インタラプトを「中断」ではなく「割り込み」とした先達の知恵に改めて敬服の念を禁じ得ない。
お次はノードの説明だ。ちょっと解りにくい。下記に訳しておく。
1.3 ノード
ノードは、実際のところ、ROSパッケージの実行ファイルとほとんど同じである。ROSノードはROSクライアントライブラリを他のノードと交信するために用いる。ノードはトピックに発行と引用をすることができる。また、ノードは「サービス」を提供したり使用したりすることができる。
最初の一文はこれでいいのかどうかわからない。直訳では何だかわからないが、not much more thanで「ほとんど変わらない」という意味になるようだ。つまり、パッケージの実行ファイルがノードだと思えばよいようだ。また、新しく「サービス」という用語が出てきた。
クライアントライブラリとは、rosbuildで生成されるrospyとroscppで、それぞれpythonとc++のライブラリである。つまり、ROSではpythonとc++を開発用言語として使えるというわけだ。僕はpythonでやってみようかと考えている。インデントに意味がある言語はちょっと扱いにくい感じも有るが、まあ所詮は慣れの問題だろう。
次にロスコアを起動して、いろいろと試して見るようだが、長くなって来たので次回以降に。
« ROSのチュートリアル、ちょっと変わったかな? | トップページ | ノードを使ってみる »
「ROSさんお手やわらかに」カテゴリの記事
- 3Dプリンターで作る簡単turtlebot(おしまい)(2017.01.07)
- 3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)(2017.01.03)
- 3Dプリンターで作る簡単turtlebot(kinectの取り付け)(2017.01.02)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て2)(2016.12.29)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て1)(2016.12.25)
コメント