机器人操作系统ROS1简要介绍,翻译自以下仓库:
ROS-Tutorials
原仓库是一系列的jupyter notebook,可以直接在jupyter环境下运行程序示例。
Understanding ROS Services and Parameters 理解ROS服务和参数
本节将介绍ROS服务和参数的概念,以及相应的命令行工具 rosservice
和 rosparam
来源: ROS Wiki
ROS服务是ROS节点间另一种交互方式,使用的是 请求 和 回应 的机制
rosservice
rosservice
的使用方法可以通过-h来查看:
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'
以下使用 list
可以看到 turtlesim
节点提供了九个服务: reset
, clear
, spawn
, kill
, turtle1/set_pen
, /turtle1/teleport_absolute
, /turtle1/teleport_relative
, turtlesim/get_loggers
, 和 turtlesim/set_logger_level
. 另外两个服务是 rosout
节点提供的: /rosout/get_loggers
和 /rosout/set_logger_level
.
rosservice list
/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/spawn
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers
/turtlesim/set_logger_level
现在用 rosservice type
来查看 clear
服务的类型 :
rosservice type clear
这个服务把上一节中 turtlesim_node
窗口中小乌龟的轨迹线擦掉了。
现在让我们来看需要给服务传入参数的情况:来看 spawn
这个服务
rosservice type spawn | rossrv show
float32 x
float32 y
float32 theta
string name
---
string name
这个服务可以让我们在turtlesim窗口中指定位置指定角度放入一个指定名称的新乌龟。(—以下又重复了一遍string name,代表name这个参数不是必须的)
rosservice call spawn 2 2 0.2 ""
rosparam
rosparam
工具可以让你储存操作在 ROS Parameter Server 中的参数数据. Parameter Server 可以储存整数、浮点数、布尔数、字典、列表等数据形式 rosparam
使用YAML标记语言. 简单举例: 1
是整数, 1.0
是浮点数, one
是字符串, true
是布尔数, [1, 2, 3]
是一个整数列表, {a: b, c: d}
是一个字典. rosparam
有很多命令行参数,比如:
rosparam -h
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
查看已在parameter server中储存的参数数据:
rosparam list
/background_b
/background_g
/background_r
/rosdistro
/roslaunch/uris/host_localhost__33937
/rosversion
/run_id
下面我们用 rosparam set
命令来改变其中一个参数:
rosparam set background_r 150
现在相应的参数已经修改好了,但是仍需要请求一次clear服务来使新参数生效:
rosservice call clear
可以观察到turtlesim的窗口已经被改变了。
我们可以通过 rosparam get /
来查看 Parameter Server 中的所有内容:
rosparam get /
background_b: 255
background_g: 86
background_r: 150
rosdistro: 'kinetic
'
roslaunch:
uris:
host_localhost__33937: http://localhost:33937/
rosversion: '1.12.14
'
run_id: 71bcc232-dd18-11ea-a5ce-00d86127892a
下一节将进入一些ROS编程的简单介绍。Writing_the_Publisher_Node_in_Python
turtlesim窗口可以关闭,保留roscore打开。