傻澈杂记(⼀)在launch⽂件中,node及其标签内容理解
node标签
在标签指定⼀个ROS节点,这是最常见的roslaunch标签,因为它⽀持最重要的功能:启动和关闭节点。
roslaunch不保证节点开始的顺序。因为没有办法从外部知道节点何时被完全初始化,所以所有被启动的节点必须是稳健的,以便以任何顺
序启动。
node节点中,今天⽤到的⽐较多的有pkgtypenameargsoutputvalue
pkg=“mypackage”节点包。
type=“nodetype”节点类型。必须有⼀个具有相同名称的相应可执⾏⽂件。
name=“nodename”节点基名称。注意:name不能包含命名空间。请改⽤ns属性。
args=“arg1arg2arg3”(可选)传递参数到节点。
output⼀般为screen或者log,默认为log(⽇志⽂件)
value给定值
讲⼀下为什么要在launch⽂件中添加以下部分:
name="lar_scan_matcher_node"output="screen">
为什么需要lar——lar_link、ba_link——lar这两个tf
⾸先是lar到ba_link的tf,这是因为lar_scan_matcher需要这样⼀个tf(roswiki中lar_scan_matcher部分4.2.1)
另外在本launch⽂件中,前⾯有两个node将数据发布在lar_link中,需要将这些数据转换到lar,才能和其他的node联系起来。(每个
坐标系不是⼀座孤岛,相互之间是有联系的,数据才能够通⽤起来)
(当然在launch⽂件中也可以省掉lar——lar_link这⼀步的tf,这需要在⽂件中修改前⾯两个node中的frame_id以及child_frame_id
的设定值为lar。)
在lar_scan_matcher_node中,将fixed_frame的值设定为odom,是因为gmapping需要⼀个odom(⾥程计信息),原本的默认值是
world
两个tf
tf的写法是有格式的,这个在roswiki中就找得到:
static_transform_publisher⼯具⽤于发布两个参考系之间的静态坐标变换,两个参考系⼀般不发⽣相对位置变化
name是⾃⼰取的,给这个node取⼀个名字
args有两种格式,⼀种是位移+旋转⾓,⼀种是四元数表达:
static_transform_publisherxyzyawpitchrollframe_idchild_frame_idperiod_in_ms
static_transform_publisherxyzqxqyqzqwframe_idchild_frame_idperiod_in_ms
frame_id和child_frame_id就对应参与变换的两个坐标系
period_in_ms是发布频率,⼀般默认值为100ms
本文发布于:2022-12-30 23:11:40,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/62229.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |