1. ROSとは何ですか?
ロボットオペレーティングシステム、単にロボットオペレーティングシステム、弱い結合、分散処理の枠組み、プロセスと管理との間のメッセージパッシング。ハードウェアの抽象化とデバイス制御。
図2に示すように、ノード(ノード)
- ROSノードはコア実体です。
- ROSのプログラム期間
- ROSは、ミドルウェアを使用して通信します
- 独立して起動して、ノード間で停止することができます
3、及び関連する概念ノード
- メッセージ
- トピック
- roscore:
- そこ一つであり、一方だけがroscoreを実行することができます
- 最初roscoreを起動する必要があります
- スケジューリングの通信のための責任
- Roscoreパブリッシャノードとの通信(例えば、トピックを初期化するために)
- 出版社、加入者
4、ツール
catkin_create_pkg:パッケージを作成します
catkin_make:コンパイルROSプログラム
rosrun:プログラムROSを実行します
rostopic:コマンドに関連するトピック
rostopicリスト。rostopic Hzのtopic1。rostopic topic1の体重; rostopic情報topic1。rostopicエコーtopic1
rosnodeリスト:生産を実行しているノードのリストを参照するには
roslaunch:ファイルを編集して.launchは、自動的に複数のノードを開始します
rosbag:トピックの記録と再生データ
rosbagレコードtopic1
rosbag再生name1.bag
rqt_plot:結果の可視化のための
5、一般的なツールの詳細
catkin_create_pkg:
catkin_create_pkg [packageNmae] [依存関係]
依存性:roscpp:使用して、C ++コンパイラ、C ++互換インタフェース; std_msgs:ROSは、データタイプを事前定義
catkin_make:
package.xmlの:組織ROSパッケージ、名前を命名パッケージの依存関係
<名前> </名前>
<build_depend> </ build_depend>
<run_depend> </ run_depend>
CMakeLists.txt :次のように簡単な例です
cmake_minimum_required(VERSION 2.8.3) プロジェクト(デモ-PROJ1-ノード)#パッケージ名 (必要なコンポーネントの尾状花find_package roscppの std_msgs ) catkin_package( #INCLUDE_DIRSには、 #図書館my_minimal_nodes #CATKIN_DEPENDS roscpp STD-MSGのを #はsystem_libに依存 ) include_directoriesは( $ {catkin_INCLUDE_DIRSが含まれます} ) add_executable(my_minimal_publisher SRC / minimal_publisher.cpp) add_executable(my_minimal_publisher2 SRC / sleep_minimal_publisher.cpp) target_link_libraries(my_minimal_publisher $ {catkin_LIBRARIES} ) target_link_libraries(my_minimal_publisher2 $ {catkin_LIBRARIES} )
コンパイルコマンド:catkin_make
そこにコンパイルした後、develのビルド2つのフォルダ
rosrun:
最初の環境変数で: source ./devel/setup.bash
rosrun [パッケージ名] [実行可能ファイル名]