目次
1.rosnode list - アクティブなノードをリストします。
3.rosnode info—ノードに関する情報を出力します。
4.rosnode マシン - 特定のマシン上で実行されているノードをリストする、またはマシンをリストする
5.rosnode kill - 実行中のノードを強制終了します。
6.rosnode—到達不能なノードのパージ登録情報をクリーンアップする
1.rostopic リスト - アクティブなトピックをリストします。
2.rostopic echo—メッセージを画面に出力します
1.rosservice list—アクティブなサービスをリストします。
2.rosservice call—提供された引数を使用してサービスを呼び出します
3.rosservice info—サービスに関する情報を印刷します。
1.rosmsg list—すべてのメッセージをリストします。
2.rosmsg info——rosmsg showのエイリアス
1.rossrv list—すべてのサービスをリストします。
2.rossrv info—— rossrv showのエイリアス
4. rosparamload——パラメータをファイルからロード、rosparamdump——パラメータをファイルにダンプ
学習参考書:他の本では詳しく書かれていない趙雪作の講座。
ROS システムダイナミクスの共通コマンドとして学習する必要があり、ツールとしてテストやエラー修正によく使用されるため、テストやエラー修正が正当化されます。
ロスノード
rosnode は 6 つの命令を提供します
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode
cleanup info kill list machine ping
ヘルプのために -h を追加します。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode -h
rosnode is a command-line tool for printing information about ROS Nodes.
Commands:
rosnode ping test connectivity to node
rosnode list list active nodes
rosnode info print information about node
rosnode machine list nodes running on a particular machine or list machines
rosnode kill kill a running node
rosnode cleanup purge registration information of unreachable nodes
Type rosnode <command> -h for more detailed usage, e.g. 'rosnode ping -h'
rosnode ping 测试到节点的连接状态
rosnode list 列出活动节点
rosnode info 打印节点信息
rosnode machine 列出指定设备上节点
rosnode kill 杀死某个节点
rosnode cleanup 清除不可连接的节点
1.rosnode list - アクティブなノードをリストします。
準備:
4. ROS プログラミング学習: カスタム トピック メッセージと C ++呼び出し
ROS マスターを開始します。
roscore
サブスクライバを開始します。
source ./devel/setup.bash
rosrun sub_pub sub_person
パブリッシャーを開始します。
source ./devel/setup.bash
rosrun sub_pub pub_person
ロスノードリスト:
rosnode list
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode list
/ren_pub
/ren_sub
/rosout
このうち、/ren_pub ノードと /ren_sub ノードはパブリッシャー ノードとサブスクライバー ノードであり、/rosout は ROS マスターのログ出力ノードです。
2.rosnode ping—ノードへの接続をテストします
rosnode ping /节点名
ノードの接続性を確認します。
rosnode ping /ren_pub
接続に成功し、接続遅延が表示されます。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode ping /ren_pub
rosnode: node is [/ren_pub]
pinging /ren_pub with a timeout of 3.0s
xmlrpc reply from http://rosmelodic-virtual-machine:40397/ time=14.780998ms
xmlrpc reply from http://rosmelodic-virtual-machine:40397/ time=0.508070ms
xmlrpc reply from http://rosmelodic-virtual-machine:40397/ time=0.519991ms
存在しないノードのクエリ: クエリは失敗しました。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode ping /ren_pu
rosnode: node is [/ren_pu]
cannot ping [/ren_pu]: unknown node
3.rosnode info—ノードに関する情報を出力します。
ノード情報を出力します。これは非常に便利で、包括的な情報が含まれています。
rosnode info /节点名
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode info /ren_pub
--------------------------------------------------------------------------------
Node [/ren_pub]
Publications:
* /renxinxi [sub_pub/Person]
* /rosout [rosgraph_msgs/Log]
Subscriptions: None
Services:
* /ren_pub/get_loggers
* /ren_pub/set_logger_level
contacting node http://rosmelodic-virtual-machine:40397/ ...
Pid: 50789
Connections:
* topic: /rosout
* to: /rosout
* direction: outbound (34961 - 127.0.0.1:37480) [11]
* transport: TCPROS
* topic: /renxinxi
* to: /ren_sub
* direction: outbound (34961 - 127.0.0.1:37490) [12]
* transport: TCPROS
4.rosnode マシン - 特定のマシン上で実行されているノードをリストする、またはマシンをリストする
ROS 分散通信では複数のデバイスが存在する場合があるため、この方法で特定のマシン内のどのマシンとノードを問い合わせる必要があります。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode machine
rosmelodic-virtual-machine
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode machine rosmelodic-virtual-machine
/ren_pub
/ren_sub
/rosout
5.rosnode kill - 実行中のノードを強制終了します。
ノードを強制終了する
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode kill
1. /ren_pub
2. /ren_sub
3. /rosout
Please enter the number of the node you wish to kill.
> 1
killing /ren_pub
killed
強制終了されたノードのコンソールでは、次の警告が表示されます。
[ WARN] [1666318180.274086439]: Shutdown request received.
[ WARN] [1666318180.274148151]: Reason given for shutdown: [user request]
6.rosnode—到達不能なノードのパージ登録情報をクリーンアップする
ゾンビノードを削除することも一般的な操作です。
Ctrl+C でクリアされないノードをクリアするか、誤ってコンソールを閉じてください。
rosnode cleanup
まず、すべてのパブリッシャーとサブスクライバーを起動し、同時にコンソール ウィンドウを閉じます。
クエリ: これら 2 つのノードはまだ存在しますが、もう存在させたくありません。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode list
/ren_pub
/ren_sub
/rosout
この時点で、rosnode クリーンアップによって尋ねられるので、y を選択します
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode cleanup
ERROR: connection refused to [http://rosmelodic-virtual-machine:33389/]
ERROR: connection refused to [http://rosmelodic-virtual-machine:33313/]
Unable to contact the following nodes:
* /ren_sub
* /ren_pub
Warning: these might include alive and functioning nodes, e.g. in unstable networks.
Cleanup will purge all information about these nodes from the master.
Please type y or n to continue:
y
Unregistering /ren_sub
Unregistering /ren_pub
done
再度確認すると消えていました。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosnode list
/rosout
バラ色の
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic
bw echo find hz info list pub type
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic -h
rostopic is a command-line tool for printing information about ROS Topics.
Commands:
rostopic bw display bandwidth used by topic
rostopic delay display delay of topic from timestamp in header
rostopic echo print messages to screen
rostopic find find topics by type
rostopic hz display publishing rate of topic
rostopic info print information about active topic
rostopic list list active topics
rostopic pub publish data to topic
rostopic type print topic or field type
Type rostopic <command> -h for more detailed usage, e.g. 'rostopic echo -h'
rostopic bw 显示主题使用的带宽
rostopic delay 显示带有 header 的主题延迟
rostopic echo 打印消息到屏幕
rostopic find 根据类型查找主题
rostopic hz 显示主题的发布频率
rostopic info 显示主题相关信息
rostopic list 显示所有活动状态下的主题
rostopic pub 将数据发布到主题
rostopic type 打印主题类型
1.rostopic リスト - アクティブなトピックをリストします。
アクティブなトピックをリストする
rosnode の準備と同様に、カスタム メッセージ タイプのパブリッシャーとサブスクライバーを有効にします。
それから
rostopic list
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic list
/renxinxi
/rosout
/rosout_agg
/rosout と /rosout_agg はログ出力に関連し、/renxinxi は準備作業のトピック通信のトピックです。パブリッシャーとサブスクライバーのトピック名は同じである必要があるため、2 つのトピック通信ノードは 1 つのトピックのみを参照します。
2.rostopic echo—メッセージを画面に出力します
メッセージを画面に出力します。
rostopic echo /话题名
rostopic echo /renxinxi
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic echo /renxinxi
name: !!python/str "\u5F20\u4E09"
age: 293
height: 1.73000001907
---
注意しなければならない詳細が 1 つあります。ワークスペースで実行する必要があります。テスト時にソースする必要はありませんが、ワークスペースに入るたびにソースするのは良い習慣です。
3.rostopic pub—トピックにデータを公開する
トピックにメッセージを投稿します。
rostopic pub /话题名
サブスクライバーをオンにして、残りのタブをすべて完了してください。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic pub /renxinxi sub_pub/Person "name: ''
age: 0
height: 0.0"
デフォルトのパラメータを変更します。これらのパラメーターは、以前に作成されたカスタム メッセージ タイプです。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic pub /renxinxi sub_pub/Person "name: '测试'
age: 100
height: 100.0"
publishing and latching message. Press ctrl-C to terminate
購読者がメッセージを受信する
[ INFO] [1666320824.118656090]: 订阅人信息:测试, 100,100.00
詳しい操作を知りたい+-h
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic pub -h
Usage: rostopic pub /topic type [args...]
Options:
-h, --help show this help message and exit
-v print verbose output
-r RATE, --rate=RATE publishing rate (hz). For -f and stdin input, this
defaults to 10. Otherwise it is not set.
-1, --once publish one message and exit
-f FILE, --file=FILE read args from YAML file (Bagy)
-l, --latch enable latching for -f, -r and piped input. This
latches the first message.
-s, --substitute-keywords
When publishing with a rate, performs keyword ('now'
or 'auto') substitution for each message
--use-rostime use rostime for time stamps, else walltime is used
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rostopic pub -r 10 /renxinxi sub_pub/Person "name: '测试'
age: 100
height: 100.0"
プラス10HZサイクル
[ INFO] [1666321347.407684082]: 订阅人信息:测试, 100,100.00
[ INFO] [1666321347.506901662]: 订阅人信息:测试, 100,100.00
[ INFO] [1666321347.607206839]: 订阅人信息:测试, 100,100.00
[ INFO] [1666321347.707196168]: 订阅人信息:测试, 100,100.00
[ INFO] [1666321347.806850353]: 订阅人信息:测试, 100,100.00
ロスサービス
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice
args call find info list type uri
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice -h
Commands:
rosservice args print service arguments
rosservice call call the service with the provided args
rosservice find find services by service type
rosservice info print information about service
rosservice list list active services
rosservice type print service type
rosservice uri print service ROSRPC uri
Type rosservice <command> -h for more detailed usage, e.g. 'rosservice call -h'
rosservice args 打印服务参数
rosservice call 使用提供的参数调用服务
rosservice find 按照服务类型查找服务
rosservice info 打印有关服务的信息
rosservice list 列出所有活动的服务
rosservice type 打印服务类型
rosservice uri 打印服务的 ROSRPC uri
1.rosservice list—アクティブなサービスをリストします。
リストサービス
(1 メッセージ) 8. ROS プログラミングの学習: カスタム サービス データの Python呼び出し。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice list
/add_ints
/jiafa_server_p/get_loggers
/jiafa_server_p/set_logger_level
/rosout/get_loggers
/rosout/set_logger_level
このうち、/add_ints はサービスの名前であり、ロガーに関するものはすべてログ出力に関するものです。jiafa_server_p と rosout は両方とも ros ノード名です。
2.rosservice call—提供された引数を使用してサービスを呼び出します
サービスにパラメータを提供する
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice call /add_ints "num1: 20
num2: 10"
sum: 30
トピックコミュニケーションの呼び出しと同じように使用されます。
3.rosservice info—サービスに関する情報を印刷します。
サービス情報を印刷する
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice info /add_ints
Node: /jiafa_server_p
URI: rosrpc://rosmelodic-virtual-machine:42357
Type: server_client/AddInts
Args: num1 num2
4.rosservice タイプ—印刷サービス タイプ
印刷サービスのデータ型
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosservice type /add_ints
server_client/AddInts
ロスメッセージ
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosmsg
rosmsg is a command-line tool for displaying information about ROS Message types.
Commands:
rosmsg show Show message description
rosmsg info Alias for rosmsg show
rosmsg list List all messages
rosmsg md5 Display message md5sum
rosmsg package List messages in a package
rosmsg packages List packages that contain messages
Type rosmsg <command> -h for more detailed usage
rosmsg show 显示消息描述
rosmsg info 显示消息信息
rosmsg list 列出所有消息
rosmsg md5 显示 md5 加密后的消息
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包
1.rosmsg list—すべてのメッセージをリストします。
すべてのメッセージをリストします。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosmsg list | grep -i person
sub_pub/Person
2.rosmsg info——rosmsg showのエイリアス
以前にカスタマイズしたメッセージ タイプをクエリするために使用されます。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosmsg info
actionlib/ geometry_msgs/ rosgraph_msgs/ tf2_msgs/
actionlib_msgs/ graph_msgs/ rospy_tutorials/ theora_image_transport/
actionlib_tutorials/ map_msgs/ sensor_msgs/ trajectory_msgs/
bond/ moveit_msgs/ shape_msgs/ turtle_actionlib/
controller_manager_msgs/ nav_msgs/ smach_msgs/ turtlesim/
control_msgs/ object_recognition_msgs/ std_msgs/ visualization_msgs/
diagnostic_msgs/ octomap_msgs/ stereo_msgs/
dynamic_reconfigure/ pcl_msgs/ sub_pub/
gazebo_msgs/ roscpp/ tf/
カスタム メッセージ タイプのコンテンツをクエリするために使用されます。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosmsg info sub_pub/Person
string name
int32 age
float32 height
ロスルブ
カスタム サービス タイプをクエリするには、ワークスペースに入り、それをソースする必要があります。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rossrv
list md5 package packages show
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rossrv -h
rossrv is a command-line tool for displaying information about ROS Service types.
Commands:
rossrv show Show service description
rossrv info Alias for rossrv show
rossrv list List all services
rossrv md5 Display service md5sum
rossrv package List services in a package
rossrv packages List packages that contain services
Type rossrv <command> -h for more detailed usage
rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息
rossrv list 列出所有服务信息
rossrv md5 显示 md5 加密后的服务消息
rossrv package 显示某个包下所有服务消息
rossrv packages 显示包含服务消息的所有包
1.rossrv list—すべてのサービスをリストします。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rossrv list | grep -i AddInts
server_client/AddInts
2.rossrv info—— rossrv showのエイリアス
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rossrv info server_client/AddInts
int32 num1
int32 num2
---
int32 sum
ロスパラム
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam
rosparam is a command-line tool for getting, setting, and deleting parameters from the ROS Parameter Server.
Commands:
rosparam set set parameter
rosparam get get parameter
rosparam load load parameters from file
rosparam dump dump parameters to file
rosparam delete delete parameter
rosparam list list parameter names
1.rosparam list—パラメータ名のリスト
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam list
/rosdistro
/roslaunch/uris/host_rosmelodic_virtual_machine__41207
/rosversion
/run_id
2.rosparam set—パラメータを設定します
パラメータサーバーはパラメータを追加します。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam set name xiaohuang
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam list
/name
/rosdistro
/roslaunch/uris/host_rosmelodic_virtual_machine__41207
/rosversion
/run_id
3.rosparam delete—パラメータの削除
パラメータサーバーはパラメータを削除します。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam delete name
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam list
/rosdistro
/roslaunch/uris/host_rosmelodic_virtual_machine__41207
/rosversion
/run_id
4. rosparamload——パラメータをファイルからロード、rosparamdump——パラメータをファイルにダンプ
パラメータサーバーのパラメータは、ファイル形式で保存および読み取りされます。
パラメータを追加します。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam set name xiaohuang
パラメータサーバーのパラメータは yaml ファイルとして保存されます
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam dump params.yaml
Params.yaml が現在のディレクトリに表示されます
ロススコアを閉じる前に
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam list
/name
/rosdistro
/roslaunch/uris/host_rosmelodic_virtual_machine__41207
/rosversion
/run_id
roscoreを終了してroscoreを再起動する場合
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam list
/rosdistro
/roslaunch/uris/host_rosmelodic_virtual_machine__38179
/rosversion
/run_id
作成したばかりのパラメータサーバーパラメータが消えています。
パラメータサーバーパラメータをファイルから読み取ります。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam load params.yaml
次に、以下を列挙します。
rosmelodic@rosmelodic-virtual-machine:~/catkin_ws$ rosparam list
/name
/rosdistro
/roslaunch/uris/host_rosmelodic_virtual_machine__38179
/roslaunch/uris/host_rosmelodic_virtual_machine__41207
/rosversion
/run_id