1.属性

  • name ---> 为关节命名

  • type ---> 关节运动形式

    • continuous: 旋转关节,可以绕单轴无限旋转

    • revolute: 旋转关节,类似于 continues,但是有旋转角度限制

    • prismatic: 滑动关节,沿某一轴线移动的关节,有位置极限

    • planer: 平面关节,允许在平面正交方向上平移或旋转

    • floating: 浮动关节,允许进行平移、旋转运动

    • fixed: 固定关节,不允许运动的特殊关节

2.子标签

  • parent(必需的)

    parent link的名字是一个强制的属性:

    • link:父级连杆的名字,是这个link在机器人结构树中的名字。
  • child(必需的)

    child link的名字是一个强制的属性:

    • link:子级连杆的名字,是这个link在机器人结构树中的名字。
  • origin

    • 属性: xyz=各轴线上的偏移量 rpy=各轴线上的偏移弧度。
  • axis

    • 属性: xyz用于设置围绕哪个关节轴运动。

案例

需求:创建机器人模型,底盘为长方体,在长方体的前面添加一摄像头,摄像头可以沿着 Z 轴 360 度旋转。

新建demo03_joint.urdf 文件

<!-- 创建机器人模型,底盘为长方体,在长方体的前面添加一摄像头,摄像头可以沿着 Z 轴 360 度旋转。 -->
<robot name="mycar"><!--1. 底盘 --><link name="base_link"><visual><geometry><!-- 1.立方体 --><box size="0.5 0.2 0.1" /></geometry><!-- 2.偏移量与倾斜弧度 --><origin xyz="0 0 0" rpy="0 0 0" /><!-- 3.颜色 --><material name="blue"><color rgba="0 0 1.0 0.5" /></material></visual></link><!--2. 摄像头 --><link name="camera"><visual><geometry><box size="0.02 0.05 0.05" /></geometry><origin xyz="0 0 0.0025" rpy="0 0 0" /><material name="red"><color rgba="1 0 0 0.5" /></material></visual></link> <!-- 关节 --><joint name="camera2baselink" type="continuous"><!-- 父级 link --><parent link="base_link"/><!-- 子级 link --><child link="camera" /><!-- 设置偏移量 --><origin xyz="0.2 0 0.075" rpy="0 0 0" /><!-- 设置关节旋转参考的坐标轴 --><axis xyz="0 0 1" /></joint></robot>

新建demo03_joint.launch 文件

<launch><!-- 设置参数 --><param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/demo03_joint.urdf"/>    <!-- 设置参数 --><node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/></launch>

source ./devel/setup.bash

roslaunch urdf01_rviz demo03_joint.launch

出现异常:

表现:摄像头位置和颜色异常
        提示:缺少 camera到【base_link】的坐标变换
        原因:rviz中显示URDF时,必须发布不同部件之间的 坐标系关系
        解决:ros中提供了关于机器人模型显示的坐标发布节点(两个)

更改demo03_joint.launch 文件

<launch><!-- 设置参数 --><param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/demo03_joint.urdf"/>    <!-- 设置参数 --><node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/><!-- 只有上述两句:表现:摄像头位置和颜色异常提示:缺少 camera到【base_link】的坐标变换原因:rviz中显示URDF时,必须发布不同部件之间的 坐标系关系解决:ros中提供了关于机器人模型显示的坐标发布节点(两个)-->
<!-- 添加关节状态发布节点 --><node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" /><!-- 添加机器人状态发布节点 --><node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" /><!-- 可选:用于控制关节运动的节点 --><!-- <node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" /> --><!-- 需注释调机器人状态发布节点,与控制节点有冲突 -->
</launch>

source ./devel/setup.bash

roslaunch urdf01_rviz demo03_joint.launch

控制关节运动

控制摄像头转动,需要增加节点

但要将之前的joint节点注释掉,不然会冲突

<launch><!-- 设置参数 --><param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/demo03_joint.urdf"/>    <!-- 设置参数 --><node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/><!-- 只有上述两句:表现:摄像头位置和颜色异常提示:缺少 camera到【base_link】的坐标变换原因:rviz中显示URDF时,必须发布不同部件之间的 坐标系关系解决:ros中提供了关于机器人模型显示的坐标发布节点(两个)-->
<!-- 添加关节状态发布节点 --><!-- <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" /> --><!-- 添加机器人状态发布节点 --><node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" /><!-- 可选:用于控制关节运动的节点 --><node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" /><!-- 需注释调机器人状态发布节点,与控制节点有冲突 -->
</launch>

source ./devel/setup.bash

roslaunch urdf01_rviz demo03_joint.launch

​​​​​​​

ros笔记 URDF仿真 3.joint相关推荐

  1. ROS笔记(20) Kinect仿真

    ROS笔记(20) Kinect仿真 1. 创建模型 2. 添加模型 3. 添加Gezebo插件 4. Gezebo仿真 1. 创建模型 除了普通摄像头这种传感器外,平时还会用到深度摄像头传感器 ki ...

  2. ROS笔记(19) 摄像头仿真

    ROS笔记(19) 摄像头仿真 1. 创建模型 2. 添加模型 3. 添加Gazebo插件 4. Gazebo仿真 1. 创建模型 除了雷达这种传感器外,平时还会用到摄像头传感器 简单的构建一个长方体 ...

  3. ROS笔记(14) URDF

    ROS笔记(14) URDF 1. URDF简介 2. link 3. joint 4. robot 5. gazebo 6. 解析 7. 显示 1. URDF简介 统一机器人描述格式,Unified ...

  4. ROS笔记(18) Gazebo仿真

    ROS笔记(18) Gazebo仿真 1. 添加属性 2. 配置节点 3. 带传感器仿真 1. 添加属性 link添加<gezebo>标签 对于机器模型,需要对每个link添加<ge ...

  5. ROS入门(八)——仿真机器人四(Gazebo+Rviz+雷达、摄像头、kinet仿真显示)

    所用的学习链接: [奥特学园]ROS机器人入门课程<ROS理论与实践>零基础教程P278-288 [以上视频笔记见http://www.autolabor.com.cn/book/ROST ...

  6. ROS笔记(31) ArbotiX关节控制器

    ROS笔记(31) ArbotiX关节控制器 1. 关节控制器 2. 添加配置文件 3. 运行ArbotiX节点 4. action 5. 添加测试文件 6. 启动测试 1. 关节控制器 Movelt ...

  7. ROS笔记(28) Setup Assistant

    ROS笔记(28) Setup Assistant 1. Setup Assistant 2. 加载机器人URDF模型 3. 配置自碰撞矩阵 4. 配置虚拟关节 5. 创建规划组 6. 定义机器人位姿 ...

  8. ROS笔记(27) 机械臂的组装

    ROS笔记(27) 机械臂的组装 1. 机械臂模型 2. 声明模型的宏 3. 创建机械臂模型 4. 加入Gazebo属性 5. 显示机械臂模型 1. 机械臂模型 这里就是用模拟的一个六轴机械臂--HH ...

  9. ROS笔记(16) ArbotiX

    ROS笔记(16) ArbotiX 1. ArbotiX简介 2. 配置节点 3. 配置控制器 4. 运行仿真 1. ArbotiX简介 车模都搭好了,现在需要让小车动起来 此时需要一些工具 Arbo ...

最新文章

  1. 讲解 Zookeeper 的五个核心知识点
  2. js判断页面是首次加载还是刷新
  3. 笔记-信息化与系统集成技术-人工智能基础知识
  4. 资料分享 | R语言资料分享来袭
  5. 这九张动态图诠释什么是自然与科技的完美结合
  6. 时钟php,php+js液晶时钟
  7. Linux Shell脚本入门教程系列之(十四) Shell Select教程
  8. threading模块的使用
  9. 报名已近500人丨基于AWR/ASH故障分析案例分享
  10. Sqli-labs less 29
  11. rabbitMQ碰到了对象跨项目的时候,反序列化出了问题
  12. Matlab连接字符串的方法
  13. 拓端tecdat|R语言特征选择——逐步回归
  14. Python数据处理Tips数据重复值处理常用方法
  15. 7种常用数据分析方法 (下)
  16. 【ACL2020】结果已出,录用论文抢先看!
  17. SAP-FI-财务报表版本设定
  18. 我的CSDN博客十年
  19. MYSQLg高级------聚簇索引和非聚簇索引
  20. python问题:only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolea

热门文章

  1. 关于Julia1.0及以后版本的for循环产生错误ERROR: UndefVarError: variable not defined的解决方法
  2. JUC源码级学习(下)-函数式编程、stream流、jvm等
  3. 基于Java毕业设计研究生推免系统源码+系统+mysql+lw文档+部署软件
  4. 手机微信如何合并健康码行程码
  5. 求平行四边形的面积。
  6. 【Microsoft Azure 的1024种玩法】六十.通过Azure Virtual Machines快速搭建个人Ghost博客系统
  7. Qt绑定UI界面和Qt类的四种方法
  8. 微软账户 设置 服务器地址,设置Microsoft账户提示此电子邮件地址是保留域怎么办...
  9. mysql设置了远程连接查不到视图_mysql服务设置远程连接 解决1251 client does not support ..问题...
  10. C语言浙江省阶梯电价