主要内容

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的主人。

下一个步骤