0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器人的ROS模型建立

麦辣鸡腿堡 来源:古月居 作者:Shawn0102 2023-11-28 14:19 次阅读

这个系列主要介绍机器人ROS模型的建立方法,ROS系统带来的好处之一就是:

我们无需自己建立复杂的数学模型来描述自己的机器人几何尺寸、运动学和动力学等,只需要用它提供的模型描述方法即可实现快速建模。

ROS系统的模型描述方法主要有两种格式: URDF 和 XACRO。

URDF:用于描述一些简单的机器人模型,参考官网:URDF官方介绍(初学者一定要精读这些文档)。

XACRO:应用更普遍的机器人模型描述文件,参考官网:xacro,它有如下几个特点:

1.语法简练。采用编程话的脚本语言格式,可以定义变量、常量、引入数学表达式等,极易上手。

2.方便复用。它可以进行一系列的宏定义,并且可以包含其他.xacro文件。

下面,开始用xacro文件建立Rob的机器人模型。

1.第一部分是文件的头和一些宏定义

robot name我们可以自己随便定义,然后分别给出了几组颜色和常数的定义,最后给出了关节传动部分的宏定义。

< ?xml version="1.0"? >
< robot name="rob_robot" xmlns:xacro="http://ros.org/wiki/xacro" >


< !-- Include materials -- >
    < material name="Black" >
        < color rgba="0.0 0.0 0.0 1.0"/ >
    < /material >


    < material name="White" >
        < color rgba="1.0 1.0 1.0 1.0"/ >
    < /material >

常量的定义方法如下,在引用这里定义的常量的时候,用**{XX},例如在如果在下面的代码中想引用M_PI,只需要用:**{M_PI} 即可。

< !-- Constants -- >
 < property name="deg_to_rad" value="0.01745329251994329577"/ >
    < property name="M_PI" value="3.14159"/ >

关节的传动参数宏定义方法如下,xacro:macro name 定义了本宏的名称。

这个名称由用户定义,后续引用该宏的时候就是根据名字来的。

具体如何操作参考下文介绍或git上的源代码。

注意,这里宏定义内部的一些具体数值仅为说明而存在,具体的机器人关节应该是不一样的。

< !-- transmission block macro definition -- >
    < xacro:macro name="transmission_block" params="joint_name" >
      < transmission name="tran1" >
        < type >transmission_interface/SimpleTransmission< /type >
        < joint name="${joint_name}" >
          < hardwareInterface >PositionJointInterface< /hardwareInterface >
        < /joint >
        < actuator name="motor1" >
          < hardwareInterface >PositionJointInterface< /hardwareInterface >
          < mechanicalReduction >1< /mechanicalReduction >
        < /actuator >
      < /transmission >
    < /xacro:macro >
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27052

    浏览量

    201431
  • 模型
    +关注

    关注

    1

    文章

    2707

    浏览量

    47702
  • ROS
    ROS
    +关注

    关注

    1

    文章

    272

    浏览量

    16686
收藏 人收藏

    评论

    相关推荐

    辰汉-如何实现服务机器人的运算与控制

    的运算和控制,相当于机器人的灵魂,目前主流的三大机器人操作系统有Ubuntu,Android和ROS,Android软件平台使用较广泛,ROS为专用的
    发表于 06-09 17:18

    机器人基础书籍

    列举部分学习过程中接触的部分书籍,部分有中文版,部分有更新版本。1.机器人基础书籍适合入门的书籍:机器人机器人建模规划与控制机器人学、机器
    发表于 05-22 06:53

    ROS环境下控制Baxter机器人的学习记录

    1、前记:这篇博文为自己学习是的记录,做这一切的目的就是熟悉ROS环境下如何控制Baxter机器人做运动。以便将来对其控制的扩展,如基于视觉(单目,双目,或Kinect)交互的控制,基于leap
    发表于 05-28 07:50

    ROS 2 Crystal Clemmys版机器人的操作系统补充说明

    ROS 2 Crystal Clemmys版机器人操作系统补充说明
    发表于 06-10 11:29

    ROS RIKIBOT基础--使用系列 第一章节】ROS机器人硬件系统 精选资料分享

    ROS RIKIBOT基础–使用系列】ROS机器人硬件介绍1.RIKIBOT机器人硬件介绍1.1硬件框架ROS
    发表于 07-30 06:59

    STM32和ROS机器人的串口通信方案

    全网最实用的STM32和ROS机器人的串口通信方案
    发表于 08-11 07:27

    最实用的STM32和ROS机器人的串口通信方案

    全网最实用的STM32和ROS机器人的串口通信方案小白学移动机器人同名公众号:小白学移动机器人创作声明:内容包含虚构创作内容中的情节存在虚构加工,仅供参考全网最实用的STM32和
    发表于 08-20 06:33

    智能机器人

    关于ros智能机器人,就是一个写智能机器人代码的一个虚拟机,
    发表于 10-13 19:20

    【抢鲜体验】--- Tran***ot ROS教育机器人

    本帖最后由 mu0543 于 2021-11-25 20:23 编辑 如果你热衷于编程探索和DIY创作,恰好又在寻找一款可以让你自由发挥,二次开发的ROS平台,那么我们今天体验的这款Tranbot ROS教育机器人将会非常
    发表于 11-25 20:13

    【抢鲜体验】- Tran***ot ROS教育机器人

    Tran***ot ROS教育机器人如果你热衷于编程探索和DIY创作,恰好又在寻找一款可以让你自由发挥,二次开发的ROS平台,那么我们今天体验的这款Tranbot ROS教育
    发表于 11-25 20:33

    将Simulink模型与Lego机器人结合使用

    将Simulink模型与Lego机器人结合使用可提供令人愉悦的基于模型的设计体验支持LEGO MINDSTORMS NXT作为产品标准功能。即使没有ECRobot NXT,您也可以玩乐高游戏
    发表于 12-20 07:15

    如何对ROS机器人的定位导航进行仿真

    怎样去实现ROS机器人的定位导航呢?如何对ROS机器人的定位导航进行仿真?
    发表于 12-23 09:22

    如何搭建实体机器人ros底盘

    目录介绍一、底盘主控板二、嵌入式开发板1. 与上位机pc的关系2. 与STM32主控板的关系介绍自下而上的分析实体机器人(差分轮速机器人)搭建中的关键过程。一、底盘主控板本部分搭建实体机器人r
    发表于 01-20 07:36

    怎样将微型ROS移植到机器人的RA MCU中呢

    瑞萨电子公司与专门从事中间件解决方案的公司 eProsima 合作,将微型 ROS 移植到 RA 微控制器 (MCU) 中,以便更轻松地开发用于物联网 (IoT) 和工业系统的专业机器人应用程序
    发表于 02-11 06:19

    ROS机器人开发更便捷,基于RK3568J+Debian系统发布!

    ROS系统是什么 ROS(Robot Operating System)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递
    发表于 11-30 16:01