URDF建模
URDF
URDF,全称为 Unified Robot Description Format(统一机器人描述格式),是一种用于描述机器人多少结构和运动学属性的标准文件格式。URDF 文件通常用于机器人模仿、路径规划、控制算法开辟和可视化等范畴,特别是在 ROS(Robot Operating System)环境中非常常见。
URDF 建模主要关注以下方面:
Link(链接):表示机器人中的刚体部门,如机器人的手臂、腿或任何静态部件。每个链接都有自己的惯性属性,如质量和转动惯量,以及多少外形,如碰撞体(colliders)和视觉表示(visuals)。
Joint(关节):描述链接之间的连接方式,包括关节范例(如revolute旋转关节、prismatic直线关节等)、关节轴线、限定条件(如关节限位)和动力学属性(如摩擦力)。
Inertial(惯性):描述链接的质量和转动惯量等物理属性。
Collision(碰撞):用于物理模仿和碰撞检测的多少外形,通常较为简单。
Visual(视觉):用于渲染和可视化的多少外形,可能比碰撞外形更复杂,以提供更真实的外貌。
Material(材质):界说颜色和纹理,用于视觉表示。
Actuator(实行器):描述驱动关节的装备,如电机或液压缸的属性。
Transmissions(传动装置):界说实行器如何影响关节的运动。
Gazebo Plugins(Gazebo 插件):用于在 Gazebo 模仿器中扩展机器人的行为,如传感器模型。
URDF 建模过程涉及创建和配置上述组件,以准确地反映机器人的结构和动力学。URDF 文件通常是 XML 格式的,可以通过文本编辑器手动编写,也可以使用工具辅助生成。
URDF 与 DH 参数(Denavit-Hartenberg 参数)有接洽,DH 参数用于描述关节间的相对位置和方向,而 URDF 可以基于这些参数来构建机器人的结构模型。然而,URDF 提供了更为丰富和详细的描述,包括多少外形、物理属性和传感器信息等。
机器人组成
内部关系
Links 与 Joints
Links
Joint
UDRF建模弊端
xacro模型文件
常量界说与使用
数学计算
宏界说、宏调用
文件包罗
界说排版
launch文件
#三维模型导出URDF
网上找到UR3机器臂的资源,把 “.step” 后缀结尾的文件,在solidwork中打开如图
link和joint的配置
生成模型功能包
测试修改bug
结果展示
solid works
SolidWorks 是一款广泛使用的三维 CAD 软件,主要用于机器筹划。要将 SolidWorks 的模型转换为 URDF(Unified Robot Description Format)格式,用于机器人仿真和控制,你需要一个插件大概工具来辅助这个过程。虽然 SolidWorks 自己并不直接支持 URDF 格式,但有一些第三方插件可以实现这一功能,比如 sw2urdf。
选择哪一款 SolidWorks 版本对于 URDF 转换而言,主要取决于以下几点:
插件兼容性:确保你所选择的 SolidWorks 版本与你打算使用的 URDF 插件兼容。差别的插件可能支持差别版本的 SolidWorks。
功能需求:如果你的模型非常复杂,可能需要使用更高版本的 SolidWorks,由于较新版本每每包罗更多功能和改进的性能,这可以帮助你更高效地创建和管理复杂的装配体。
硬件要求:SolidWorks 的高版本通常需要更强的硬件配置。如果您的计算机硬件不敷强大,可能会影响软件运行的流畅性和稳固性。
允许本钱:SolidWorks 差别版本的代价差别,且功能也有差别。你需要评估本钱效益,选择最适合你预算和需求的版本。
技术支持:较新的 SolidWorks 版本通常会获得更好的技术支持和更新。
用户熟悉度:如果你已经熟悉某个版本的 SolidWorks,除非有特别的功能需求,否则继续使用熟悉的版本可能会更加高效。
对于 URDF 导出而言,关键在于找到一个稳固且功能全面的插件,它能够准确地将你的 SolidWorks 模型转换为 URDF 文件。sw2urdf 插件能够处置惩罚 SolidWorks 的零件和装配体,主动识别关节范例、变动和轴,这对于 URDF 建模是非常重要的。
目录架构
相关文件
CMakeLists.txt
- cmake_minimum_required(VERSION 2.8.3)
- project(UR3)
- find_package(catkin REQUIRED)
- catkin_package()
- find_package(roslaunch)
- foreach(dir config launch meshes urdf)
- install(DIRECTORY ${dir}/
- DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/${dir})
- endforeach(dir)
复制代码 package.xml
- <package format="2">
- <name>UR3</name>
- <version>1.0.0</version>
- <description>
- <p>URDF Description package for UR3</p>
- <p>This package contains configuration data, 3D models and launch files
- for UR3 robot</p>
- </description>
- <author>TODO</author>
- <maintainer email="TODO@email.com" />
- <license>BSD</license>
- <buildtool_depend>catkin</buildtool_depend>
- <depend>roslaunch</depend>
- <depend>robot_state_publisher</depend>
- <depend>rviz</depend>
- <depend>joint_state_publisher_gui</depend>
- <depend>gazebo</depend>
- <export>
- <architecture_independent />
- </export>
- </package>
复制代码 display.launch
- <launch>
- <arg
- name="model" />
- <param
- name="robot_description"
- textfile="$(find UR3)/urdf/UR3.urdf" />
-
- <node
- name="joint_state_publisher_gui"
- pkg="joint_state_publisher_gui"
- type="joint_state_publisher_gui" />
-
- <node
- name="robot_state_publisher"
- pkg="robot_state_publisher"
- type="robot_state_publisher" />
-
- <node
- name="rviz"
- pkg="rviz"
- type="rviz"
- args="-d $(find UR3)/urdf.rviz" />
- </launch>
复制代码 gazebo.launch
- <launch>
- <include
- file="$(find gazebo_ros)/launch/empty_world.launch" />
- <node
- name="tf_footprint_base"
- pkg="tf"
- type="static_transform_publisher"
- args="0 0 0 0 0 0 base_link base_footprint 40" />
- <node
- name="spawn_model"
- pkg="gazebo_ros"
- type="spawn_model"
- args="-file $(find UR3)/urdf/UR3.urdf -urdf -model UR3"
- output="screen" />
- <node
- name="fake_joint_calibration"
- pkg="rostopic"
- type="rostopic"
- args="pub /calibrated std_msgs/Bool true" />
- </launch>
复制代码 ur3.urdf
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |