当前位置: 首页 > news >正文

SRDF 文件详解与使用方法

SRDF 文件详解与使用方法

1. 什么是 SRDF 文件

SRDF 全称 Semantic Robot Description Format,是 ROS(Robot Operating System)生态中用于描述机器人语义信息的文件格式。
与 URDF(Unified Robot Description Format)不同,URDF 主要描述机器人的物理结构与几何模型(如关节、连杆、材质、视觉模型等),SRDF 则补充了机器人在物理结构之外的高层语义信息,例如:

  • 哪些关节/连杆属于一个“规划组”
  • 哪些连杆在运动规划中需要避免碰撞
  • 默认的关节配置(姿态)
  • 虚拟关节与参考坐标系
  • 特定动作组(end effector)
  • Disabled collisions 列表

SRDF 文件通常与 URDF 文件配套使用,尤其在 MoveIt! 等运动规划框架中,SRDF 是必需的。


2. SRDF 文件的结构

SRDF 文件是 XML 格式,常见的标签包括:

2.1 <group>

定义机器人上的一个规划组(Planning Group),比如机械臂的 6 个关节组成一个组。

主要属性与子标签:

<group name="arm"><joint name="joint1"/><joint name="joint2"/>...
</group>

2.2 <group_state>

为某个规划组定义一个默认状态(预设姿态),方便调用预设位置。

<group_state name="home" group="arm"><joint name="joint1" value="0"/><joint name="joint2" value="1.57"/>
</group_state>

2.3 <virtual_joint>

绑定机器人坐标系到外部参考系(如世界坐标系),常用于移动机器人或机械臂的底座定位。

<virtual_joint name="world_joint" type="fixed" parent_frame="world" child_link="base_link"/>

2.4 <end_effector>

定义末端执行器及其关联的规划组。

<end_effector name="gripper" parent_link="wrist_link" group="gripper_group"/>

2.5 <disable_collisions>

定义在运动规划中可以忽略的碰撞检查对,提升效率。

<disable_collisions link1="linkA" link2="linkB" reason="Adjacent"/>

3. SRDF 文件的生成方法

3.1 手工编写

你可以直接用文本编辑器编写 SRDF 文件,但需要仔细与 URDF 的关节、连杆命名一致,否则会出错。

3.2 使用 MoveIt Setup Assistant

这是官方推荐的方式:

  1. 安装 MoveIt! 和相关依赖。
  2. 运行 roslaunch moveit_setup_assistant setup_assistant.launch
  3. 导入 URDF 文件。
  4. 在 GUI 中配置规划组、末端执行器、默认姿态等。
  5. 保存生成的 SRDF 文件。

4. SRDF 文件的使用方式

  1. 与 URDF 一起加载
    在启动 MoveIt! 或其他上层控制系统时,URDF 提供物理模型,SRDF 提供语义模型,二者一起构成立体的机器人描述。

  2. 运动规划
    MoveIt! 在解析 SRDF 文件后会:

    • 确定规划组的关节范围
    • 使用 disable_collisions 列表加速碰撞检测
    • 根据 group_state 提供快速姿态切换
  3. 虚拟关节处理
    如果机器人并非固定在世界坐标系,比如 AGV 搭载机械臂,可以使用 SRDF 的 virtual_joint 定义运动基准。


5. SRDF 文件常见问题与注意事项

  • 命名一致性
    所有关节与连杆名称必须与 URDF 中完全一致(大小写敏感)。

  • 碰撞优化
    不要过度使用 disable_collisions,会降低规划的安全性。

  • 版本兼容
    ROS 不同版本中 SRDF 格式基本保持一致,但一些标签可能会扩展。


6. 总结

SRDF 是机器人语义描述的重要文件,配合 URDF,可让上层运动规划、控制和仿真更高效。掌握 SRDF 的结构和生成方法,能更好地定制机器人在复杂任务中的行为。

http://www.dtcms.com/a/499857.html

相关文章:

  • 【WRF-CMAQ第一期】模型概述
  • 生产企业网站如何做seo网站一年了百度不收录
  • React 思维模式终极指南
  • 网站开发环境构建手机上可以做网站
  • 江苏住房与城乡建设部网站番禺人才网招聘网官网
  • 高并发内存池项目开发记录 - 02
  • FACT-AUDIT
  • 怎么做网站镜像三种常见的网络营销方式
  • 登陆工伤保险网站 提示未授权 怎么做wordpress如何导出
  • 做外贸网站怎么做人才网网站开发手册
  • 软件测试之压力测试详解
  • vue3二次封装element-plus表格,slot透传,动态slot。
  • RDP 远程桌面连接常见问题详解:仅使用网络级别身份验证、微软账户密码、远程登录后的用户状态
  • C程序中的循环语句
  • 湖南省城乡建设厅网站邮箱网站怎么做
  • Linux基础指令(完结)、shell命令与Linux权限(1) |tar|bc|uname|热键|shutdown|shell|权限
  • 能看网站的浏览器wordpress 自定义注册表单
  • 佛山网页网站设计做网站要多少人
  • DeepSeek辅助利用搬移底层xml实现快速编辑xlsx文件的python程序
  • 营销型外贸网站建设医疗网站怎么做seo
  • 【Swift】LeetCode 3. 无重复的最长子串
  • 深圳品牌网站建设公司招聘百度账号中心官网
  • jdk.nio.zipfs 包详解
  • 小说网站建设目的车牌照损坏在网站做的能用吗
  • 专业提供网站建设服务包括wordpress 联系人表单
  • Spring 核心原理:Bean 作用域、生命周期与 SpringBoot 自动配置
  • [MLflow] 环境管理 | MLflow模型 | Flavors与pyfunc
  • iis网站防盗链浙江鼎兴建设有限公司网站
  • python+django/flask的在线心理咨询系统
  • 继电保护:距离保护:过渡电阻影响