如何做公司网站空间,高校网络网站建设意义及措施,discuz企业网站,免费的网站免安装ROS提供了一个同时启动节点管理器#xff08;master#xff09;和多个节点的途径#xff0c;即使用启动文件#xff08;launch file#xff09;。事实上#xff0c;在ROS功能包中#xff0c;启动文件的使用是非常普遍的。任何包含两个或两个以上节点的系统都可以利用启动…ROS提供了一个同时启动节点管理器master和多个节点的途径即使用启动文件launch file。事实上在ROS功能包中启动文件的使用是非常普遍的。任何包含两个或两个以上节点的系统都可以利用启动文件来指定和配置需要使用的节点。通常的命名方案是以.launch作为启动文件的后缀启动文件是XML文件。一般把启动文件存储在取名为launch的目录中。 每个XML文件都必须要包含一个根元素。根元素由一对launch标签定义launch … launch元素都应该包含在这两个标签之内。
节点属性之节点元素的形式
node pkg”package-name” type”executable-name” name”node-name”/在节点标签末尾的斜杠“/”是必须的但很容易忘。你也可以这样显式地给出结束标签
node pkg”…”type”…” name”…”/node 如果该节点有子节点例如 remap 或者 param 元素那么该显式结束标签是必不缺少的。还有就是name属性给节点指派了名称它将覆盖任何通过调用 ros::int来赋予节点的名称。在默认状态下从启动文件启动节点的标准输出被重定向到一个日志文件中而不是在制台显示。该日志文件的名称是 ~/.ros/log/run_id/node_name-number-stout.log 其中run_id 是节点管理器master启动时生成的一个唯一标示符。 节点属性之显示属性
某个单独的节点在控制台中输出信息只需在节点元素中配置output”screen”配置了该属性的节点会将标准输出显示在屏幕上而不是记录到日志文档。 节点属性之复位属性
对于每个节点设置复位属性为真 respawn”true”这样当节点停止的时候roslaunch会重新启动该节点。比如在某个节点因为软件崩溃或硬件故障以及其他原因导致过早退出系统的时候会起到作用。
节点属性之必要节点当一个节点被声明为必要节点即 required”true”终止的时候roslaunch 会终止所有其他活跃节点并退出。比如在依赖控制台的机器人遥控导航中关闭了该远程控制节点所在的窗口roslaunch将会终止其他节点然后退出。 节点属性之命名空间
ns”namespace”前提是节点的代码在创建 ros::Pbulisher 和 ros::Subccriber 对象时使用了像 turtle1/pose 这样的相对名称 (而不是/turtle1/pose 这样的全局名称)。同样启动文件中的节点名称是相对名称。例如node nameturtlesim_node pkgturtlesim typeturtlesim_node nssim1 /而不能是
node name/turtlesim_node 可以这么不准确的理解两只连体小龟他们做一件事是同时在做比如让他们以不同的速度前进,他们做不到若做手术分开把他俩放在不同的房间(命名空间他俩真正地独立起来这样每个小龟可以接受不同的命令去做事而且互不干扰。动文件默认命名空间是全局命名空间“/”因此节点的默认命名空间就解析为/sim1所以对应的全局名称即/sim1/turtlesim_node。 名称重映射
重映射是基于替换的思想每个重映射包含一个原始名称和一个新名称。每当节点使用重映射中的原始名称时ROS客户端库就会将它默默地替换成其对应的新名称。例如运行一个 turtlesime 的实例 如果想要把海龟的姿态数据发布到话题/tim 而不是/turtle1/pose就可以使用如下命 令rosrun turtlesim turtlesim_node turtle1/pose:tim 通过启动文件的方式只需在启动文件内使用重映射remap元素即可remap from”turtle1/pose”to ”tim”/ 包含其他文件
如果想在启动文件中包含其他启动文件的内容 包括所有的节点和参数可以使用包含include元素include file”$(find package-name)/launch-file-name”由于直接输入路径信息很繁琐且容易出错大多数包含元素都使用查找find命令搜索功能包的位置来替代直接输入路径。 启动参数
roslaunch还支持启动参数有时也简称为参数甚至args。在ROS中parameter和argument 是不同的虽然翻译一样。parameter是运行中的ROS系统使用的数值存储在参数服务器parameter server中每个活跃的节点都可以通过 ros::param::get 函数来获取parameter的值用户也可以通过rosparam来获得parameter的值而argument只在启动文件内才有意义他们的值是不能被节点直接获取的。
arg name”arg-name” default”arg-value”/与 arg name”arg-name” value”arg-value”/两者的唯一区别在于命令行参数roslaunch xx yy.launch dd:t)可以覆盖默认值default但是不能覆盖参数值 value。用$(arg arg-name)在每个该替换出现的地方roslaunch 都将它替换成参数值。