ROS参数服务器的访问
这个例子探讨了如何添加和检索参数对ROS参数服务器。参数服务器通常运行在相同的设备,启动ROS的主人。ROS网络参数可在全球范围内,可用于存储配置参数等静态数据。万博1manbetx支持数据类型包括字符串、整数、双打、逻辑值,细胞阵列。
先决条件:开始使用ROS,连接到一个ROS网络
创建参数树
开始在MATLAB ROS主服务器和参数。
rosinit
启动ROS核心……在0.93826秒内完成。初始化ROS主在http://172.29.207.162:59979上。初始化全局节点/ matlab_global_node_66770 NodeURI http://dcc434238glnxa64:34371和http://localhost MasterURI: 59979。
创建一个参数树对象与参数服务器进行交互。使用参数树与参数交互服务器和调用等功能集
,得到
,▽
,有
和搜索
。创建一个新的参数服务器使用rosparam
。
ptree = rosparam
ptree = ParameterTree属性:AvailableParameters: {0 x1细胞}
添加新的参数
为机器人的IP地址,设置一个参数使用参数名ROBOT_IP
。检查参数是否具有相同名称已经存在。使用有
函数。
有(ptree“ROBOT_IP”)
ans =逻辑0
如果有
返回0
(假)作为输出,那么ROBOT_IP
名称参数服务器上找不到。
添加一些参数指示机器人参数服务器的IP地址。使用集
为此函数。
集(ptree,“ROBOT_IP”,“192.168.1.1”);集(ptree,“/ myrobot / ROBOT_IP”,“192.168.1.100”);
的ROBOT_IP
参数是目前所有节点连接到这个ROS的主人。您可以指定参数在一个名称空间。例如,/ myrobot ROBOT_IP
参数是在/ myrobot
名称空间在这个例子。
设置更多的参数与不同的数据类型。
集(ptree,“MAX_SPEED”,1.5);
使用一个细胞数组作为输入集
函数。设定一个目标坐标的参数{x, y, z}的机器人。
集(ptree,“目标”{5.0,2.0,0.0});
其他参数填充参数设置服务器。
集(ptree,“/ myrobot / ROBOT_NAME”,“乌龟”);集(ptree,“/ myrobot / MAX_SPEED”,1.5);集(ptree,“/ newrobot / ROBOT_NAME”,“NEW_TURTLE”);
得到的参数值
从ROBOT_IP参数检索机器人的IP地址/ myrobot
名称空间使用得到
功能:
robotIP =得到(ptree,“/ myrobot / ROBOT_IP”)
robotIP = ' 192.168.1.100 '
得到的所有参数列表
得到参数的完整列表存储在服务器的参数,使用点符号来访问AvailableParameters
财产。您所添加的列表包含所有参数在前面。
plist = ptree.AvailableParameters
plist =7 x1细胞{' / MAX_SPEED '} {' / ROBOT_IP '}{' /目标'}{/ myrobot / MAX_SPEED”} {/ myrobot / ROBOT_IP”} {/ myrobot / ROBOT_NAME”} {/ newrobot / ROBOT_NAME的}
修改现有的参数
您还可以使用集
函数改变参数值。注意,修改一个参数是不可逆转的,因为参数服务器会覆盖新值的参数。您可以验证如果已经存在一个参数使用有
函数。
修改MAX_SPEED
参数:
集(ptree,“MAX_SPEED”,1.0);
修改后的值可以从以前分配有不同的数据类型的值。例如,的值MAX_SPEED
参数是当前类型的翻倍。设置一个字符串值MAX_SPEED
参数:
集(ptree,“MAX_SPEED”,“没有”);
删除参数
使用▽
从服务器的参数函数来删除一个参数。
删除目标
参数。
德尔(ptree“目标”);
检查目标
参数已被删除。使用有
函数。
有(ptree“目标”)
ans =逻辑0
输出是0
(假的),这意味着从服务器参数参数被删除。
搜索参数
搜索所有包含的参数“myrobot”
使用搜索
命令:
结果=搜索(ptree“myrobot”)
结果=1 x3单元格{' / myrobot / MAX_SPEED} {/ myrobot / ROBOT_IP”} {/ myrobot / ROBOT_…”}
ROS网络关闭
关闭ROS掌握全球节点和删除。
rosshutdown
关闭全局节点/ matlab_global_node_66770 NodeURI http://dcc434238glnxa64:34371和http://localhost MasterURI: 59979。在http://172.29.207.162:59979上关闭ROS的主人。
下一个步骤
应用程序示例,请参阅从露台和模拟TurtleBot开始或开始一个真正的TurtleBot的例子。