news 2026/4/13 0:16:28

从SolidWorks中导出机器人URDF模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从SolidWorks中导出机器人URDF模型

要把通过SolidWorks创建的机器人模型导出为URDF集成到ROS中,需要通过一个插件实现。
SolidWorks URDF导出插件的基础使用方法参考这篇文章

这里补充一些实用的操作。

通过添加草图实现基准轴和基准坐标系的定位

这需要你对SolidWorks的操作有一定的了解。
有时候机器人的结构件的模型是来自供应商的,或者这个结构并没有天然的点和线给我们设置基准轴和基准坐标系。这时候就需要我们自己去编辑这个零件,为它添加草图,并在这个草图上添加点和线,用来定位基准轴和基准坐标系。
比如图中的轮子,我们可以在轮子的一个面上添加一个草图用来设置基准坐标系。

多层级frame_id实现

机器人的frame_id往往是分成多个层级的,所以导出的时候需要特意为各个frame_id设置好正确的层级关系。

比如,机器人的主动轮(蓝色)装在悬挂摆臂(黄色)上,悬挂摆臂装在车体上(橙色)。那么frame_id的关系就是这样的:

base_link|_ wheel_arm|_wheel

如果摆臂上还装有万向轮(粉色),而且万向轮往往有2个关节,第一个关节是竖直摆动旋转轴,第二个是轮子旋转轴,那么frame_id的关系就是这样的:

base_link|_ wheel_arm|_ wheel|_ caster_vertical|_ caster_horizontal

其中万向轮竖直摆动旋转轴和轮子是属于同一层级的,但是万向轮的轮子旋转轴是从属于万向轮竖直摆动旋转轴的,因为万向轮的轮子会随着万向轮的摆动而改变位置。

在导出插件中,实际的配置如图所示:

为每个frame_id选择正确的部件

在导出插件中,需要为每个frame_id选择属于这个frame_id的结构部件。
要做好这一步,需要把握一个原则:只选择随着这个frame_id运动且不随着其他frame_id运动的部件。
比如悬挂摆臂上连接着主动轮和万向轮,那么属于悬挂摆臂wheel_arm的部件只有下图中黄色部分。
虽然主动轮和万向轮都是固定在悬挂摆臂上的,但是因为它们有自己的frame_id,所以不属于wheel_arm。
同理可得,只有蓝色部分属于wheel;粉色部分的上部属于caster_vertical,粉色的轮子部分属于caster_horizontal。

解决导出后发现关节旋转方向错误的问题

如果哪个轮子的旋转方向不对,可以调整对应joint的z轴(一般把z轴作为旋转轴,如果不是z轴则调整对应的其他轴的符号)的符号,如:

<jointname="LeftWheelJoint"type="continuous"><originxyz="0.0870424169783998 -0.102556655814713 0.0669000000015223"rpy="0 0 0.499407169293928"/><parentlink="left_wheel_arm"/><childlink="left_wheel_link"/><axisxyz="0 0 1"/><!-- 改这里,把-1改成1,或者把1改成-1 --></joint>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 17:27:58

课程论文还在熬夜赶稿?虎贲等考 AI:一键解锁 “高分学术捷径”

学期末的课程论文&#xff0c;堪称大学生的 “期末魔咒”。选题跑偏、文献难寻、数据图表不会做、查重超标反复改…… 这些难题让无数同学陷入 “熬夜赶稿 - 导师打回 - 重新熬夜” 的死循环。 难道课程论文只能靠 “凑字数、堆文献” 应付交差&#xff1f;答案当然是不&#…

作者头像 李华
网站建设 2026/4/9 22:50:10

openfeign vs nginx 负载均衡对比

openfeign vs nginx 负载均衡对比先搞懂&#xff1a;两者压根不是一类东西nginx 负载均衡&#xff1a;简单直接&#xff0c;适合对外入口nginx 负载配置示例openfeign 负载均衡&#xff1a;微服务内部的“专属调用器”openfeign 使用示例核心对比&#xff1a;什么时候用哪个&am…

作者头像 李华
网站建设 2026/4/9 14:41:43

【Python高级编程】辅助教师教学工具:PTA 成绩统计小程序

目录 一、引言 二、开发起点&#xff1a;需求挖掘与场景分析 三、方案设计&#xff1a;技术选型与架构规划 四、核心开发阶段&#xff1a;从 “能用” 到 “好用” 1. 基础能力搭建&#xff1a;先确保 “能读文件、能操作” 2. 核心逻辑开发&#xff1a;解决 “统计” 的…

作者头像 李华
网站建设 2026/4/9 17:03:52

XZ后门事件深度剖析:供应链攻击与防御策略

XZ后门事件&#xff08;CVE-2024–3094&#xff09;&#xff1a;事件始末、工具后门分析与防御措施 目录&#xff1a; 引言漏洞详情风险评估与缓解CVE-2024–3094 调查结论 1- 引言&#xff1a; 一位微软开发者在周五披露了一项重大发现&#xff0c;震动了科技界&#xff1a;在…

作者头像 李华
网站建设 2026/4/9 18:14:43

企业级AI开发的“灵活密码”:插件化扩展为何成刚需?

在企业级AI应用的迭代过程中&#xff0c;Java技术团队常会陷入“扩展困局”&#xff1a;新接入一个大模型要重构核心代码、新增OCR识别功能要修改全链路逻辑、适配不同行业的定制化需求要推翻原有架构……这些问题的核心&#xff0c;在于传统开发模式的“刚性约束”&#xff0c…

作者头像 李华