ROS launch中的node name、package、type实际意义、定义与查找方法、具体位置

ros launch文件中的pkg, type具体位置_查看launch文件在的地址_蓝羽飞鸟的博客-CSDN博客

上网查了很多关于lauch文件中的pkg,type,都是说是包和可执行文件,具体这个文件在哪个文件夹也不甚清楚,实操了一番,记录一下。
这里不是写launch文件怎样写,也不是多个node启动,只写一个node,为了说明pkg和type在哪。

下面是一个示例的完整流程:

    cd ~/git (其他文件夹也可)
    git clone https://github.com/ethz-asl/ros_best_practices.git
    ln -s ~/git/ros_best_practices/ ~/catkin_ws/src/ (建立symbolic link, 多个项目时比较方便)
    cd ~/catkin_ws
    catkin build ros_package_template (ros_package_template在ros_best_practices文件夹下)
    source devel/setup.bash (更新work space)
    可以看到~/catkin_ws/src/ros_best_practices/ros_package_template/launch文件夹下已经有了ros_package_template.launch
    这时可以直接用roslaunch ros_package_template ros_package_template.launch命令启动

如果想写一个launch文件,通过launch文件启动的话,可用如下模板

<launch>
  <node pkg="" type="" name=""  output="screen">
  </node>
</launch>

现在的问题是pkg和type应该写哪个

可以在~/catkin_ws/devel/lib 文件夹下看到刚才build好的ros_package_template文件夹,进入ros_package_template文件夹内发现有个可执行文件ros_package_template
所以这时pkg就是文件夹的名字ros_package_template,type就是可执行文件的名字ros_package_template(虽然它俩一样),name可以自己取,仍然取ros_package_template

这个launch文件的内容如下,命名为test.launch,假设把它放在~/git下面

<launch>
  <node pkg="ros_package_template" type="ros_package_template" name="ros_package_template" output="screen">
  </node>
</launch>

启动它时用roslaunch ~/git/test.launch即可


在launch文件中设置yaml文件

1.直接设置,用xml文件格式,yaml文件格式会报错

 https://blog.csdn.net/ljx0365/article/details/115058744

2.直接设置yaml文件的路径

<launch>

<node name="vins_node" pkg="vins" type="vins_node" output="screen" args="/xx/xx/x/.yaml"/>

</launch>

详见:roslaunch command line args - ROS Answers: Open Source Q&A Forum

<launch>
   <node pkg="my_package" type="my_node" name="node_instance" args="-arg1 -arg2" />
</launch>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROSlaunch文件,可以使用arg标签定义参数,并将其传递给节点或其他launch文件。arg标签的语法如下: ```xml <arg name="参数名称" default="默认值"/> ``` 其,name属性表示参数的名称,default属性表示参数的默认值。使用该标签可以定义多个参数,并将其传递给节点或其他launch文件。 例如,以下是一个使用arg标签定义参数的示例: ```xml <launch> <!-- 定义参数 --> <arg name="foo" default="bar"/> <!-- 启动节点 --> <node name="my_node" pkg="my_package" type="my_node.py"> <!-- 传递参数 --> <param name="foo_param" value="$(arg foo)"/> </node> </launch> ``` 在上述示例,arg标签定义了一个名为"foo"的参数,并将其默认值设置为"bar"。在启动节点时,使用param标签将参数传递给节点,并使用"$(arg foo)"的方式获取参数的值。 如果需要在命令行传递参数,可以使用以下方式运行launch文件: ```bash $ roslaunch my_package my_launch_file.launch foo:=value ``` 在上述命令,"foo:=value"表示将名为"foo"的参数的值设置为"value"。在launch文件,可以使用$(arg foo)的方式获取该参数的值。 除了使用arg标签定义参数外,还可以使用rosparam命令在终端设置参数的值,并在launch文件使用param标签获取该参数的值。例如,可以使用以下命令设置名为"foo"的参数的值: ```bash $ rosparam set foo value ``` 在launch文件,可以使用以下方式获取该参数的值: ```xml <param name="foo_param" value="$(arg foo)"/> ``` 以上是ROS launch文件定义参数的几种方式,开发者可以根据实际需要选择适合的方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值