这些例子展示了如何在Simulink中获取、设置、比较和操作ROS参数金宝app®. 要运行这些示例,必须首先使用松香
. 要设置网络范围的设置并与整个网络共享值,请使用启动ROS参数服务器rosparam
. 按照以下示例了解如何在Simulink中使用参数,包括使用字符串参数。金宝app
该模型使用Simulink®获取和设置ROS参数。金宝app这个例子演示了如何在Simulink中使用ROS参数,以及如何通过ROS网络共享数据。金宝app在ROS网络中设置一个整数作为参数。从参数服务器检索该整数并与常量进行比较。比较的输出布尔值也在网络上设置。在运行模型以根据用户输入条件设置网络参数时,更改左上角(蓝色)中的常量块。
您必须连接到ROS网络。呼叫松香
在MATLAB®命令行中。
要创建字符串参数,请使用Constant块并将其强制转换为uint8
通过指定uint8([“我的字符串参数”])
中的“块掩码的常量值”。字符串和额外的输入长度一起被传递到Set Parameter块,由第二个Constant块指定。Length指的是期望的最大字符串长度,所有字符串参数都需要这个长度。有关更多信息,请参见设置参数块。
在ROS网络上,字符串参数存储为uint8
数组中。当您从服务器获取字符串参数时,它们将作为烧焦
数组中。在Si金宝appmulink®中,它们被cast为uint8
,所以你必须使用uint8
字符向量时,比较ROS字符串参数。您可以使用这种比较来触发较大模型的子系统,或者验证特定算法的设置。
连接到ROS网络设置ROS参数树。
蔷薇;
在http://bat1002902glnxa64:41329/上初始化ROS master。使用NodeURI http://bat1002902glnxa64:43179/初始化全局节点/matlab_global_node_12398
设置ROS参数/照相/摄像机格式
,转换为字符串值。可以使用字符串标量或字符向量。值存储为uint8
ROS参数服务器上的数组,并作为“jpeg”
在MATLAB®。
集(ptree,“/camera\u格式”,“jpeg”)暂停(1)pvalue=get(ptree,“/camera\u格式”)
pvalue = ' jpeg '
运行附加的Simulink®模型。金宝app这个模型检查之前设置的摄像机格式参数是否名为“jpeg”。要从服务器获取参数,请使用获取参数块然后,将参数与转换为的字符向量进行比较uint8
从一个常数块,使用MATLAB函数块。输出为1表示参数匹配。
开放式系统(“rosStringParameterCompare”) sim卡(“rosStringParameterCompare”);
关闭ROS网络。
rosshutdown
使用NodeURI关闭全局节点/matlab\u全局节点\u 12398http://bat1002902glnxa64:43179/ 正在关闭上的ROS主机http://bat1002902glnxa64:41329/.
的stringCompare
函数定义为:
功能y=stringCompare(str1、str2)% # codegen最小长度= min(长度(str1), (str2));相约= str1(1:最小长度);st2 = str2(1:最小长度);y =所有(相约(:)= = st2 (:));
这个模型展示了如何访问字符串参数并使用它们来触发子系统操作。它从设置好的ROS参数服务器获取图像格式。它被检索为uint8
使用字符串比较函数
MATLAB功能块。当从Subscribe块接收到新图像且格式为uint8 (jpeg)
,它触发“Process Image”块对图像数据执行任务。
连接到ROS网络并设置ROS参数服务器。
蔷薇;
在http://bat1002902glnxa64:41537/上初始化ROS master。使用NodeURI http://bat1002902glnxa64:45541/初始化全局节点/matlab_global_node_14275
设置“/相机/ rgb image_raw /压缩/格式”
参数,并为“/相机/ rgb / image_raw /压缩”
的话题。
集(ptree,“/相机/ rgb image_raw /压缩/格式”,“jpeg”) pub = ropublisher (“/相机/ rgb / image_raw /压缩”,“传感器/压缩图像”);
打开Simulin金宝appk®模型。该模型检查图像格式参数并将值与a进行比较uint8
投射字符向量,uint8 (jpeg)
使用MATLAB®功能块。布尔输出与订阅块的IsNew输出一起馈送给AND运算符,订阅块从网络中获取图像。如果参数值正确且收到新消息,则会触发子系统“过程映像”。
运行模型并使用模型中的按钮更改图像格式参数并验证字符串比较函数
功能正常。这个情商
当参数设置为时,输出应为1“jpeg”
.当模型运行时,预计图像消息将在网络上发布。
开放式系统(“rosImageFormatParameter”)
关闭ROS网络。
rosshutdown
使用NodeURI http://bat1002902glnxa64:45541/关闭全局节点/matlab_global_node_14275
的字符串比较函数
函数定义为:
功能Eq = strcmp(s1, n1, s2)% # codegen
%转换为正确的字符串string1 = char (s1 (1: n1));string2相等= char (s2);
eq=strcmp(string1、string2);