ros使用小记(roslaunch 、param、getPath)

功能包的launch 写法

launch文件位于功能包内部:

①写法一(注意斜杠

<launch>

<node pkg=”package-name” type=”executable-name” name=”node-name”/>

</launch>

②写法二

<launch>

<node pkg=”package-name” type=”executable-name” name=”node-name”>

</node>

</launch>

launch文件位于功能包外部:

<launch>

<include file="$(dirname)/other.launch"/>

</launch>

或者写成

<launch>

        <include file="$(dirname)/other.launch">

        </include>

</launch>

多个launch写入一个launch启动文件:

创建功能包xxlaunch,在功能包内进入launch文件夹,创建.launch文件,,将其他launch文件写入该文件写法为

<launch>

<include file="$(dirname)/other.launch"/>

<include file="$(dirname)/other.launch"/>

...

</launch>

roslaunch参数写入及读取:

写入单个参数到参数服务器 <param>
<!--直接定义参数并赋值-->
<param name="velodyne_frame_id" type="string" value="velodyne"/>
 <!--定义参数并通过arg给参数赋值-->
<arg name="velodyne_frame_id" default="velodyne"/>
<param name="velodyne_frame_id" type="string" value="$(arg velodyne_frame_id)"/>
从.yaml文件批量写入参数到参数服务器 <rosparam>
<!--从../config/params.yaml文件中加载参数 -->
<rosparam command="load" file="$(find *package_name)/config/params.yaml" />

将上述param写入launch如下:

<launch>

<include file="$(dirname)/other.launch"/>

<param name="velodyne_frame_id" type="string" value="velodyne"/>

</launch>

同一功能包内代码中读取:

nh.getParam("param_2", node_param);  

不同功能包读取 :

nh.getParam("/功能包名/param_2", node_param);  

获取功能包绝对路径:

std::string ros::package::getPath (const std::string &package_name)

头文件增加:#include <ros/package.h>

cmakelist增加roslib:

                find_package(catkin REQUIRED COMPONENTS roscpp rospy roslib )

packagexml:

               <build_depend>roslib</build_depend>

               <exec_depend>roslib</exec_depend>

代码行:

#include <ros/package.h>

std::string path = ros::package::getPath("my_package");
 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值