ROS-URDF-物理属性
2024-08-31 04:31:39
前言:介绍向连杆添加碰撞和惯性属性,以及向关节添加动力学。
一、修改urdf文件
<?xml version="1.0"?> <robot name="physics"> <material name="blue"> <color rgba="0 0 0.8 1"/> </material> <material name="black"> <color rgba="0 0 0 1"/> </material> <material name="white"> <color rgba="1 1 1 1"/> </material> <link name="base_link"> <visual> <geometry> <cylinder length="0.6" radius="0.2"/> </geometry> <material name="blue"/> </visual> <collision> <geometry> <cylinder length="0.6" radius="0.2"/> </geometry> </collision> <inertial> <mass value="10"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <link name="right_leg"> <visual> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> <material name="white"/> </visual> <collision> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> </collision> <inertial> <mass value="10"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="base_to_right_leg" type="fixed"> <parent link="base_link"/> <child link="right_leg"/> <origin xyz="0 -0.22 0.25"/> </joint> <link name="right_base"> <visual> <geometry> <box size="0.4 0.1 0.1"/> </geometry> <material name="white"/> </visual> <collision> <geometry> <box size="0.4 0.1 0.1"/> </geometry> </collision> <inertial> <mass value="10"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="right_base_joint" type="fixed"> <parent link="right_leg"/> <child link="right_base"/> <origin xyz="0 0 -0.6"/> </joint> <link name="right_front_wheel"> <visual> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> <material name="black"/> </visual> <collision> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> </collision> <inertial> <mass value="1"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="right_front_wheel_joint" type="continuous"> <axis rpy="0 0 0" xyz="0 1 0"/> <parent link="right_base"/> <child link="right_front_wheel"/> <origin rpy="0 0 0" xyz="0.133333333333 0 -0.085"/> </joint> <link name="right_back_wheel"> <visual> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> <material name="black"/> </visual> <collision> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> </collision> <inertial> <mass value="1"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="right_back_wheel_joint" type="continuous"> <axis rpy="0 0 0" xyz="0 1 0"/> <parent link="right_base"/> <child link="right_back_wheel"/> <origin rpy="0 0 0" xyz="-0.133333333333 0 -0.085"/> </joint> <link name="left_leg"> <visual> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> <material name="white"/> </visual> <collision> <geometry> <box size="0.6 0.1 0.2"/> </geometry> <origin rpy="0 1.57075 0" xyz="0 0 -0.3"/> </collision> <inertial> <mass value="10"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="base_to_left_leg" type="fixed"> <parent link="base_link"/> <child link="left_leg"/> <origin xyz="0 0.22 0.25"/> </joint> <link name="left_base"> <visual> <geometry> <box size="0.4 0.1 0.1"/> </geometry> <material name="white"/> </visual> <collision> <geometry> <box size="0.4 0.1 0.1"/> </geometry> </collision> <inertial> <mass value="10"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="left_base_joint" type="fixed"> <parent link="left_leg"/> <child link="left_base"/> <origin xyz="0 0 -0.6"/> </joint> <link name="left_front_wheel"> <visual> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> <material name="black"/> </visual> <collision> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> </collision> <inertial> <mass value="1"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="left_front_wheel_joint" type="continuous"> <axis rpy="0 0 0" xyz="0 1 0"/> <parent link="left_base"/> <child link="left_front_wheel"/> <origin rpy="0 0 0" xyz="0.133333333333 0 -0.085"/> </joint> <link name="left_back_wheel"> <visual> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> <material name="black"/> </visual> <collision> <origin rpy="1.57075 0 0" xyz="0 0 0"/> <geometry> <cylinder length="0.1" radius="0.035"/> </geometry> </collision> <inertial> <mass value="1"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="left_back_wheel_joint" type="continuous"> <axis rpy="0 0 0" xyz="0 1 0"/> <parent link="left_base"/> <child link="left_back_wheel"/> <origin rpy="0 0 0" xyz="-0.133333333333 0 -0.085"/> </joint> <joint name="gripper_extension" type="prismatic"> <parent link="base_link"/> <child link="gripper_pole"/> <limit effort="1000.0" lower="-0.38" upper="0" velocity="0.5"/> <origin rpy="0 0 0" xyz="0.19 0 0.2"/> </joint> <link name="gripper_pole"> <visual> <geometry> <cylinder length="0.2" radius="0.01"/> </geometry> <origin rpy="0 1.57075 0 " xyz="0.1 0 0"/> </visual> <collision> <geometry> <cylinder length="0.2" radius="0.01"/> </geometry> <origin rpy="0 1.57075 0 " xyz="0.1 0 0"/> </collision> <inertial> <mass value="0.05"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="left_gripper_joint" type="revolute"> <axis xyz="0 0 1"/> <limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/> <origin rpy="0 0 0" xyz="0.2 0.01 0"/> <parent link="gripper_pole"/> <child link="left_gripper"/> </joint> <link name="left_gripper"> <visual> <origin rpy="0.0 0 0" xyz="0 0 0"/> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger.dae"/> </geometry> <origin rpy="0.0 0 0" xyz="0 0 0"/> </collision> <inertial> <mass value="0.05"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="left_tip_joint" type="fixed"> <parent link="left_gripper"/> <child link="left_tip"/> </joint> <link name="left_tip"> <visual> <origin rpy="0.0 0 0" xyz="0.09137 0.00495 0"/> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger_tip.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger_tip.dae"/> </geometry> <origin rpy="0.0 0 0" xyz="0.09137 0.00495 0"/> </collision> <inertial> <mass value="0.05"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="right_gripper_joint" type="revolute"> <axis xyz="0 0 -1"/> <limit effort="1000.0" lower="0.0" upper="0.548" velocity="0.5"/> <origin rpy="0 0 0" xyz="0.2 -0.01 0"/> <parent link="gripper_pole"/> <child link="right_gripper"/> </joint> <link name="right_gripper"> <visual> <origin rpy="-3.1415 0 0" xyz="0 0 0"/> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger.dae"/> </geometry> <origin rpy="-3.1415 0 0" xyz="0 0 0"/> </collision> <inertial> <mass value="0.05"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="right_tip_joint" type="fixed"> <parent link="right_gripper"/> <child link="right_tip"/> </joint> <link name="right_tip"> <visual> <origin rpy="-3.1415 0 0" xyz="0.09137 0.00495 0"/> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger_tip.dae"/> </geometry> </visual> <collision> <geometry> <mesh filename="package://urdf_tutorial/meshes/l_finger_tip.dae"/> </geometry> <origin rpy="-3.1415 0 0" xyz="0.09137 0.00495 0"/> </collision> <inertial> <mass value="0.05"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <link name="head"> <visual> <geometry> <sphere radius="0.2"/> </geometry> <material name="white"/> </visual> <collision> <geometry> <sphere radius="0.2"/> </geometry> </collision> <inertial> <mass value="2"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="head_swivel" type="continuous"> <parent link="base_link"/> <child link="head"/> <axis xyz="0 0 1"/> <origin xyz="0 0 0.3"/> </joint> <link name="box"> <visual> <geometry> <box size="0.08 0.08 0.08"/> </geometry> <material name="blue"/> <origin xyz="-0.04 0 0"/> </visual> <collision> <geometry> <box size="0.08 0.08 0.08"/> </geometry> </collision> <inertial> <mass value="1"/> <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/> </inertial> </link> <joint name="tobox" type="fixed"> <parent link="head"/> <child link="box"/> <origin xyz="0.1814 0 0.1414"/> </joint> </robot>
---------------------------------------
代码解释:
此部分有点专业,未完待续。
-END-
最新文章
- Eclipse使用svn文章列表
- <;<;软技能,代码之外的生存技能>;>;读书笔记
- 让background-color 无效
- Linux下Redis安装及配置
- 错误异常 (1)Android Studio错误提示:Gradle project sync failed. Basic functionality (eg. editing, debugging) will not work properly
- MySQL命名、设计及使用规范--------来自标点符的《MySQL命名、设计及使用规范》
- 关于.net中的脚本语言使用
- WindowsServer2003SP2EnterpriseEdition在Virtual上的安装
- pugixml使用教程
- php生成代金券码
- Swift入门教程:基本语法(五)
- Zookeeper:分布式程序的基石
- 驱动开发入门——NTModel
- 微信小程序页面跳转的问题(app.json中设置tarBar后wx.redirectTo和wx.navigateTo均不能实现跳转到指定的页面)
- bzoj2806 [Ctsc2012]Cheat
- 硬盘安装Kali
- 认识socket
- HTML学习笔记04-样式
- google浏览器高清壁纸保存
- 2018.10.20 bzoj2748: [HAOI2012]音量调节(背包)
热门文章
- vue刷新本页面
- IDEA 创建一个普通的java项目
- Mapreduce代码疑点(1)
- 5.Linux系统的vim与软件包管理
- [SQL Service] 时间处理:获取今天的00:00:00/获取今天的23:59:59
- The meaning of the number displayed on the man page in Linux
- springcloud(三):Eureka服务端
- Git学习总结(3)——代码托管平台简介
- CodeForcesGym 100735D Triangle Formation
- Python之路【第一篇】:Python基础1