ROS学習ノート4:ROSノードの理解
ROS学習ノート4:ROSノードの理解
このセクションでは、ROSグラフィックの概念について説明し、ROSコマンドラインツールroscore、rosnode、rosrunについて説明します.
要求
Linuxシステムに学習用のrosパッケージの例をインストールする必要があります.
ROSグラフィック概念の概要 nodes:1つのノードはROSを介して他のノードと通信することができる. messages:topicをサブスクリプションまたはパブリッシュするときに使用されるデータ型. topics:ノードはtopicsまたはtopicsから情報を購読することができる. master:ROSのnameサービスは、例えば、異なるノードが互いに見つけることができるようにする. rosout:ROSのstdout/stderrに等価; roscore:master+rosout+parameter service.
ノード
1つのノードはROSパッケージの1つの実行可能ファイルにすぎず、ROSノードはクライアントライブラリ関数を使用して他のノードと通信し、ノードはtopicから情報を購読したり、topicにメッセージを送信したりすることができ、同時にノードも使用したり、サービスを提供したりすることができる.
クライアントライブラリ関数
ROSクライアントライブラリ関数では、異なるプログラミング言語を使用してプログラミング通信を行うことができます. rospy:Python client library roscpp:C++ client library
roscore
roscoreは、ROSを使用するときに最初にすべきことです.
出力される次の情報が表示されます.
rosnodeの使用
新しいターミナルウィンドウを開き、roscoreを実行した後に何が起こるかを確認します.rosnodeには、現在実行中のROSノードの情報が表示されます.
これは、システム内で1つのノードrosoutのみが実行され、ノードのデバッグ出力が常に実行され、収集され、記録されることを示しています.コマンド
これは、ノードrosoutのいくつかの情報を返します.
rosrunの使用
rosrunコマンドを使用すると、パッケージ名でパッケージ内のノードを直接実行できます(パッケージの場所を知る必要はありませんが、ROSの検索ディレクトリの範囲内でなければなりません).使用方法:
パッケージturtlesimのturtlesimを実行できますNodeノード:
新しいウィンドウで
ROSの特徴の1つは、コマンドラインに名前を再割り当てできることです.
上記のように、ノード名をmy_に変更しました.turtlesim、次は別のrosnodeコマンドラインコマンド
まとめ roscore=ros+core,master(ROSに名前サービスを提供)+rosout(stdout/stderr)+parameter server.ROSを使用するときの最初のことはroscoreを実行してこれらのサービスを起動することです. rosnode=ros+node、ROSノード情報と操作ノードを取得するためのツール; rosrun=ros+runは、所与のパッケージ内のノードを実行するために使用されます.
2016年8月24日ハルビン
このセクションでは、ROSグラフィックの概念について説明し、ROSコマンドラインツールroscore、rosnode、rosrunについて説明します.
要求
Linuxシステムに学習用のrosパッケージの例をインストールする必要があります.
sudo apt-get install ros-indigo-ros-tutorials
ROSグラフィック概念の概要
ノード
1つのノードはROSパッケージの1つの実行可能ファイルにすぎず、ROSノードはクライアントライブラリ関数を使用して他のノードと通信し、ノードはtopicから情報を購読したり、topicにメッセージを送信したりすることができ、同時にノードも使用したり、サービスを提供したりすることができる.
クライアントライブラリ関数
ROSクライアントライブラリ関数では、異なるプログラミング言語を使用してプログラミング通信を行うことができます.
roscore
roscoreは、ROSを使用するときに最初にすべきことです.
roscore &
出力される次の情報が表示されます.
[1] 4080
mountzf@ubuntu:~/ros_tutorial$ ... logging to /home/mountzf/.ros/log/0491d61a-69eb-11e6-93e8-000c29521e21/roslaunch-ubuntu-4080.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ubuntu:32777/
ros_comm version 1.11.20
SUMMARY
========
PARAMETERS
* /rosdistro: indigo
* /rosversion: 1.11.20
NODES
auto-starting new master
process[master]: started with pid [4092]
ROS_MASTER_URI=http://ubuntu:11311/
setting /run_id to 0491d61a-69eb-11e6-93e8-000c29521e21
process[rosout-1]: started with pid [4105]
started core service [/rosout]
rosnodeの使用
新しいターミナルウィンドウを開き、roscoreを実行した後に何が起こるかを確認します.rosnodeには、現在実行中のROSノードの情報が表示されます.
rosnode list
コマンドには、実行中のノード名がリストされます.rosnode list
/rosout
これは、システム内で1つのノードrosoutのみが実行され、ノードのデバッグ出力が常に実行され、収集され、記録されることを示しています.コマンド
rosnode info
は、特定のノードのノード情報を返す.rosnode info /rosout
これは、ノードrosoutのいくつかの情報を返します.
Node [/rosout]
Publications:
* /rosout_agg [rosgraph_msgs/Log]
Subscriptions:
* /rosout [unknown type]
Services:
* /rosout/set_logger_level
* /rosout/get_loggers
contacting node http://ubuntu:35108/ ...
Pid: 4105
rosrunの使用
rosrunコマンドを使用すると、パッケージ名でパッケージ内のノードを直接実行できます(パッケージの場所を知る必要はありませんが、ROSの検索ディレクトリの範囲内でなければなりません).使用方法:
rosrun [package_name] [node_name]
パッケージturtlesimのturtlesimを実行できますNodeノード:
rosrun turtlesim turtlesim_node
新しいウィンドウで
rosnode list
/rosout
/turtlesim
ROSの特徴の1つは、コマンドラインに名前を再割り当てできることです.
rosrun turtlesim turtlesim_node __name:=my_turtlesim
rosnode list
/my_turtlesim
/rosout
上記のように、ノード名をmy_に変更しました.turtlesim、次は別のrosnodeコマンドラインコマンド
rosnode ping
を使用します.rosnode ping /my_turtlesim
rosnode: node is [/my_turtlesim]
pinging /my_turtlesim with a timeout of 3.0s
xmlrpc reply from http://ubuntu:33201/ time=0.409842ms
xmlrpc reply from http://ubuntu:33201/ time=1.335144ms
xmlrpc reply from http://ubuntu:33201/ time=1.242876ms
xmlrpc reply from http://ubuntu:33201/ time=1.311064ms
xmlrpc reply from http://ubuntu:33201/ time=1.254082ms
まとめ
2016年8月24日ハルビン