学习笔记34-- 在urdf里面引用yaml文件参数来定义link的位置样式

环境:ubuntu16.04 ros-kinetic gazebo7.16

来源:
urdf里面有些link的位置参数是可调的,希望可以从一个yaml文件里面统一读取.

下面介绍如何把yaml文件参数加载到urdf里面.要注意,这里假设urdf采用的是xacro格式是编写的

<?xml version="1.0"?>

  <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="robot">
..........
<xacro:property name="a_params"
			value="${load_yaml('/xxx/a_params.yaml')}" />//把指定路径上面的a_params.yaml文件加载进来
<xacro:property name="urdf_params"
			value="${a_params['urdf_params']}" />//读取a_params.yaml文件内的urdf_params这一节的内容
......................
<xacro:property name="link_a_xyz_x"
			value="${urdf_params['link_a_xyz_x']}" />//读取yaml文件中urdf_params这一节下面的link_a_xyz_x成员对应的参数0.5,
			//相应的link位置定义时,需要用该这个link_a_xyz_x的参数值时,直接使用${link_a_xyz_x}引用即可(基本的xacro操作)
.......................
<!--robot_link_description-->
..........
</robot>

或者这么说可能有点迷糊,对比一下yaml文件,可能会很清晰了.下面给出的是a_params.yawl内部文件分布的样式:

bb_params: //bb_params节
  type: "velocity_controllers/JointPositionController"//bb_params节内的参数type以及对应的量值"velocity_controllers/JointPositionController"
  joint: bbbb_link//bb_params节内的参数joint以及对应的量值bbbb_link,下面以此类推
  pid: {p: 100.0, i: 0.01, d: 1.0}

urdf_params://urdf_params节
  link_a_xyz_x: 0.5//urdf_params节的link_a_xyz_x参数以及对应的量值0.5
  link_a_xyz_y:: 0.06

cc_params:
  cc_x: 1
  cc_y: 2

yanl文件的内容布局,一定要注意,否则,运行时,无法将目标参数读进urdf里面的.

如果对yaml文件的编写方式不理解的话,可以查一下yaml-cpp相关资料查看;这里展示的是,将一个编写规范的yanl文件参数读取到urdf的.

###################
好记性不如烂笔头
'–20200729

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值