ROS 加载yaml教程
ros加载yaml文件
ROS官方提供了自动加载yaml文件的功能,并且集成到了launch文件里面,只需要使用rosparam标签就能把yaml配置文件加载到ros的参数服务器里面,然后使用nodehandle.getParam()函数就可以方便的使用了。
下面给出关键的使用步骤:
- 编写yaml文件。注: 避免使用-分割数组,否则容易产生bug,数组使用[],逗号分隔元素。
- 编写launch文件,加载yaml。核心命令
<rosparam command="load" file="filepath" />
- cpp文件中访问yaml。直接使用nodehandle.getParam方法,注意参数的命名空间即可。
launch文件
<launch>
<arg name="global_file" default="global_param.yaml" />
<!-- 在node节点外部添加yaml文件,加载到参数服务器 -->
<rosparam command="load" file="$(find learning_load_yaml)/param/$(arg global_file)" />
</launch>
直接使用
代码中访问
int main(int argc, char** argv) {
ros::init(argc, argv, "load_yaml");
ros::NodeHandle nh;
std::string global_car_name;
// 获取全局yaml参数
nh.getParam("/car_name", global_car_name);
std::cout << "global_car_name: " << global_car_name << std::endl;
}
备注:yaml中的数组对应cpp标准库中的std::vector,字符串对应为std::string
功能包使用方法
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone ...
cd ~/catkin_ws
catkin_make
source ./devel/setup.bash
roslaunch learning_load_yaml start.launch
完整项目
完整项目请查看github仓库。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了