SolidWork 制作KUKAKR6R700机器人URDF模型

目录

1 安装sw_urdf_exporter

2 准备模型

3 建立各个关节的关节坐标系

3.1、对各个关节提取基准轴 

3.2、对基座及各个关节建立建立坐标系

3.3 导出 urdf

3.4 配置URDF  

4 导出urdf文件后  ,打开vrep  导入模型


1 安装sw_urdf_exporter

准备工作:下载sw_urdf_exporter:http://wiki.ros.org/sw_urdf_exporter 并安装

2 准备模型

  1. 库卡官网下载stl模型
  2. 使用solidwork将模型打散,每个关节与基座都另存成一个单独的 SLDPRT文件
  3. 新建一个装配体文件,导入各个关节与基座的SLDPRT文件,并按照-----面重合 ----轴线重合方式  重新配合

3 建立各个关节的关节坐标系

3.1、对各个关节提取基准轴 

以关节6为例 命名为Axis6

3.2、对基座及各个关节建立建立坐标系

注意:所建立的坐标系不能处在零件内部,要在装配体树形目录下

3.3 导出 urdf

点击工具--tool---export as URDF

3.4 配置URDF  

选择之前建好的坐标系

4 导出urdf文件后  ,打开vrep  导入模型

### SolidWorks 中进行 SURDF 机器人建模的插件 在机器人开发领域,SURDF(Scaled URDF)是一种扩展版本的URDF文件格式,通常用于描述机器人的物理属性和几何形状。为了在 SolidWorks 中实现 SURDF机器人建模功能,可以借助特定的插件来完成这一过程。 #### 插件推荐 目前存在一些第三方插件能够支持从 SolidWorks 导出到 ROS(Robot Operating System),从而间接生成 SURDF 文件。以下是几个常用的插件: 1. **SwRoboTools** SwRoboTools 是一款专为 SolidWorks 用户设计的工具集,允许开发者轻松导出模型至 ROS 兼容格式,包括 URDF 和 COLLADA 等[^2]。通过该插件,用户可以在 SolidWorks 内部定义关节、链接和其他必要的参数,并最终将其转换成 SURDF 所需的形式。 2. **SolidConverterROS** 这是由 PickNik 开发的一款开源插件,旨在简化 CAD 到 ROS 的工作流程。它可以直接将 SolidWorks 设计转化为标准 URDF 或者自定义比例因子下的 SURDF 文件[^3]。此插件还提供了图形化界面以便于配置各项设置。 3. **CAD-to-ROS Bridge** 另一种方法是利用通用型解决方案——CAD-to-ROS Bridge。虽然这不是专门为 SolidWorks 而设,但它可以通过中间格式 (如 STEP/IGES) 实现类似的转化效果[^4]。对于某些复杂场景来说可能更加灵活多变。 #### 使用说明 无论选择哪种插件,在实际操作前都需要确保安装好对应版本并与当前使用的 SolidWorks 版本兼容。此外还需注意以下几点事项: - 定义清晰的零件层次结构以及正确的惯性矩阵数据; - 设置合理的坐标系原点位置及其方向向量; - 验证所有连接关系是否符合预期逻辑; 下面是一个简单的 Python 脚本来展示如何读取由上述任一插件产生的 SURDF 数据并加载进入 Gazebo 模拟环境作为例子: ```python from gazebo_msgs.srv import SpawnModelRequest, SpawnModel import rospy def spawn_robot(model_name, model_xml, robot_namespace="", initial_pose=None, reference_frame="world"): """ Spawns a new robot into the simulation environment. Args: model_name(str): Name of the spawned object. model_xml(str): XML string representing SDF/SURDF description. ... Returns: bool: True on success; False otherwise. """ try: rospy.wait_for_service('/gazebo/spawn_urdf_model', timeout=5) srv_proxy = rospy.ServiceProxy('/gazebo/spawn_sdf_model', SpawnModel) req = SpawnModelRequest() req.model_name = model_name req.model_xml = model_xml if not initial_pose is None: req.initial_pose = initial_pose res = srv_proxy(req) return res.success except Exception as e: print(f"Failed to call service due to error {e}") return False ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值