参考

コマンド

コマンド操作
rospackパッケージの情報を取得(パッケージ情報を保存しているpackage.xmlをパースするコマンド)
rospack find <package>packageのパスを取得
rospack depends1 <package>packageの直接依存パッケージを取得
rospack depends <package>packageの全依存パッケージを取得
rosnode list起動中のnodeを列挙
rosnode ping <nodename>nodenameが起動中かチェック
roscdpackageに移動
roslspackageのディレクトリでls
rosrun [package_name] [node_name]package_nameに含まれる、node_nameのプログラムを実行する。(__name:=my_turtleなどで、node_nameを操作可能)
rosed <package> <file>packageのfileを編集する
rosmsg show [<message> or <package>/<message>]ROSメッセージ定義の情報提供
rossrv show [<service> or <package>/<service>]ROSサービス定義の情報提供
rosrun rqt_graph rqt_graphメッセージの配信購読関係の可視化。青を購読していて、緑に配信している。
rosrun rqt_console rqt_consoleLOGの監視
rosrun rqt_logger_level rqt_logger_levelLOGレベル監視
rostopic echo /<packagename>/<nodename>topic(/<packagename>/<nodename>)に流れているメッセージをそのまま出力する
rostopic type /<packagename>/<nodename>流れているメッセージの型を出力
rostopic pub -n /<packagename>/<nodename> <topictype=message> -- x, yn回topicに指定したメッセージ型と指定したメッセージで送る。 -nは-r 1で1Hzになる。
rostopic list -v起動中のトピックの型を調べるときに使える
rosservice type <service>serviceの型を調査
rossrv show <service>serviceの型の構成を表示
rosservice call <service> <arg>serviceを利用
rosrun rqt_plot rqt_plottopicの変数を表示できる
rosparam listparameterの一覧
rosparam set <param> <arg>paramにargをセットする
rosparam get <param>paramの値取得
rosparam get /paramの値を全部取得(rosparam listの代用にもなる)
rosbag info <bag>bagの情報提供
rosbag record <topics>topicsのbagファイルを生成(-aですべてのトピック)
rosbag play <bag>topicsのbagファイルを再生
roslaunch [package] [filename.launch]一つのパッケージであればノードを複数同時に起動できる。パッケージのlaunchディレクトリの中にlaunchファイルを入れることで実現
catkin_create_pkg <package_name> [depend1] [depend2] [depend3](catkinワークスペース内で)depend_iに依存するpackage_nameを作成
catkin_make [--source src_dir]catkin_wsディレクトリで実行。sourceが指定されなければsrcがデフォルトとなる。

package.xml

タグ意味形式
dependencies(build_depend, buildtool_depend, run_depend, test_depend)様々な状況で依存するパッケージ例略
description概要<description>The beginner_tutorials package</description>
maintainer開発者<maintainer email="you@yourdomain.tld">Your Name</maintainer>
licenseライセンス<license>BSD</license>

中枢処理

  • roscore
    • 「マスター」と呼ばれる名前管理システム
    • 「rosout」と呼ばれるstdin, stdoutシステム
    • 「パラメータサーバ」
  • マルチプロセスなので、ノード間で言語が一致する必要無し。
  • roscoreは一つしか実行できない。

情報伝達

  • Publisher->(メッセージ)->トピック->(コールバックで引数にメッセージ)->Subscribers
    • 情報を書いておく掲示板のようなものがトピック
    • 配信者がトピックに思い思いのタイミングで配信し、購読者はトピックが更新されたらコールバックを呼ぶ形式
  • ノードはメッセージをトピックへ向けてPublish(配信)し,同様にSubscribe(購読)することでトピックからメッセージを受け取ることができます.
  • n.subscribe("chatter", 1000, chatterCallback);
    • "chatter"という名前の1000行まで貯めておけるトピックが更新されたら、chatterCallbackせよ。

機能提供

  • 「クライアント」を媒介とするシステム(Service Node - Client Nodeの関係)
    • クライアントは、起動中のサービスノードのプロセスをインスタンス化したもの。

rosの実行

  1. catkin_makeを実行した後でかつアプリケーションを使い始める前にワークスペースのsetup.shを読み込んだことを確認してください。
  2. roscore実行
  3. ノードを起動していく

ROS C++

関数機能
ROS_INFOprintfと同値

topic

  • topicの送り方
    • 送るためのトピックが、どのプロジェクトのどのノードかを調べる(/turtle1/command_velocity)
    • トピックに、どのトピックタイプのメッセージを送ればよいかを調査(rostopic type /turtle1/command_velocity)
    • トピックタイプのデータ形式を調査(rosmsg show turtlesim/Velocity → linier, angular)
    • そのトピックタイプのデータ形式にあったメッセージを痩身
  • topicコマンド
    • rostopic pub <トピック> <トピックタイプ> -- <メッセージ>
    • rostopic pub -r 1 /turtle1/command_velocity `rostopic type /turtle1/command_velocity` -- 1 0
    • rostopic pub /turtle1/command_velocity `rostopic type /turtle1/command_velocity` -- 1 0

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS