基于ROS的机器人模型建立及3D仿真【物理/机械意义】

这篇具有很好参考价值的文章主要介绍了基于ROS的机器人模型建立及3D仿真【物理/机械意义】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言


基于ROS的机器人模型建立及3D仿真【物理/机械意义】

在前面的博客中,我们已经学习过了如何对目标机器人进行数学意义上的模型建立,以便实现基础控制,而在实际生活中,由于机器人造价高昂,我们往往难以获得实际的目标机器人进行部署研究,这就需要我们对目标进行仿真,采用编程或可视化方法建立机器人3D模型,从而在ROS中使用RVIZ和GAZEBO组件进行相应的仿真分析。本篇文章首先分析了建立机器人3D模型的基本方法,包括使用URDF文件和Gazebo可视化建立等,在之后简单介绍了使用机器人3D模型进行ROS仿真的基本流程,主要涉及RVIZ和Gazebo两个强大的功能组件。


一、建立3D模型

1. URDF文件

  • 概念:Unified Robot Description Format ,统一(标准化)机器人描述格式,主要使用XML格式描述机器人模型结构。

基于ROS的机器人模型建立及3D仿真【物理/机械意义】

  • 使用方法:通过XML格式描述机器人结构,包含底盘、摄像头、雷达等传感器,以及机械臂和不同关节的自由度,该文件通过C++内置的解释器可以转换成可视化机器人模型。

如下代码就是一个简单的机器人模型代码文件:

<robot name="mycar">
    <link name="base_link">
        <visual>
            <geometry>
                <box size="0.5 0.2 0.1" />
            </geometry>
        </visual>
    </link>
</robot>
  • 仿真:使用URDF创建机器人模型,之后通过Gazebo搭建仿真环境,通过RVIZ进行3D可视化分析机器人模型,最后通过传感器获取环境数据最终实现控制仿真

2. 可视化建立3D模型并转换

  • 建模流程:通过Gazebo或者一些其他的三维建模软件,例如Solidworks等,利用可视化的方法建立3D模型,最后通过转换导出成为URDF文件。Solidworks的界面如下图所示:

基于ROS的机器人模型建立及3D仿真【物理/机械意义】

  • Gazebo可视化建模:对于Gazebo而言,存在一种新的机器人模型文件,为SDF格式,改进了一些URDF的缺点,在后续的Gazebo教程中,会深入进行分析Gazebo的相关操作和知识。并且对于Gazebo来说,在仿真中更多的也是作为一种仿真环境的建立,如下图所示:

基于ROS的机器人模型建立及3D仿真【物理/机械意义】

  • Solidwork模型转换:

在工具栏中选择下拉选项中的Tool,选择Export as URDF可得:

基于ROS的机器人模型建立及3D仿真【物理/机械意义】

通过选择坐标系和机器人关节等,最终可以导出完整对应的URDF文件;


二、ROS仿真流程

1. 机器人系统仿真

  • 概念:通过计算机对实体机器人系统进行模拟,在 ROS 中,仿真实现涉及的内容主要包含:对机器人建模(URDF)、创建仿真环境(Gazebo)以及感知环境(Rviz)等系统性实现。

  • 作用:

仿真的优点:

  1. 成本低:实际机器人的成本常常高达几十W,风险大,难以进行实际研究;
  2. 效率高:强大的仿真软件可以为我们提供大量真实的仿真环境,可以在短时间内提高测试效率和覆盖率
  3. 安全性:由于在虚拟世界中进行的实验研究,可以避免耗损等安全问题。

仿真的缺点:

  1. 环境失真:仿真软件的物理引擎无法真实代替现实世界;
  2. 硬件失真:仿真器构建的是关节驱动器(电机&齿轮箱)、传感器与信号通信的绝对理想情况,目前不支持模拟实际硬件缺陷或者一些临界状态等情形
  • 涉及组件:

URDF,统一机器人描述格式:通过XML格式的文件描述机器人结构。可转换成可视化机器人模型,具体在上述已有介绍

RVIZ,ROS的三维可视化工具:通过三维方式显示ROS消息数据,可以继承雷达、激光等传感器获取环境数据,并进行可视化表达

安装方法:

sudo apt install ros-[ROS_DISTRO]-rviz

使用方法:命令rviz或者rosrun rviz rviz

Gazebo,ROS的3D动态模拟器:用于显示机器人模型并创建仿真环境,提供高保真度的物理模拟及传感器模型,拥有非常良好的交互方式

安装方法:

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" 
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt update
sudo apt install gazebo11 
sudo apt install libgazebo11-dev

使用方法:命令gazebo或者rosrun gazebo_ros gazebo

注意:在实际的仿真中,使用 URDF 结合 Gazebo 搭建仿真环境,并结合 Rviz 显示感知的虚拟环境信息,结合使用完成综合应用


2. URDF集成RVIZ流程

① 创建功能包,导入依赖项

  1. 自定义名称,创建性功能包(依赖项:urdf、xacro)
  2. 功能包下新建目录:
    urdf:存储urdf文件;meshes:存储机器人模型渲染文件;config:存储配置文件;launch:存储启动文件

② 编写urdf文件:在urdf文件夹下新建子级文件夹urdf,添加.urdf文件,内容暂略;

③ 编写launch文件:启动RVIZ、导入urdf文件、显示机器人模型,代码如下:

<launch>

    <!-- 设置参数 -->
    <param name="robot_description" textfile="$(find 包名)/urdf/urdf/urdf01_HelloWorld.urdf" />

    <!-- 启动 rviz -->
    <node pkg="rviz" type="rviz" name="rviz" />

</launch>

④ 修改RVIZ配置:默认情况没有机器人显示组件,手动添加方式如下:

基于ROS的机器人模型建立及3D仿真【物理/机械意义】
基于ROS的机器人模型建立及3D仿真【物理/机械意义】


⑤ 优化RVIZ实现自动保存:保证重复启动launch文件可以保存先前组件配置信息:

  1. 将组件皮遏制保存到config目录下:

基于ROS的机器人模型建立及3D仿真【物理/机械意义】

  1. 启动配置添加参数:
<launch>
   <param name="robot_description" textfile="$(find 包名)/urdf/urdf/urdf01_HelloWorld.urdf" />
   <node pkg="rviz" type="rviz" name="rviz" args="-d $(find 报名)/config/rviz/show_mycar.rviz" />
</launch>

总结

  • 声明:本节博客部分参考了CSDN用户赵虚左的ROS教程,本篇博客主要针对于如何进行机器人3D建模及仿真完成了简单介绍,在之后的博客中会进一步介绍urdf文件的编写方法、rviz的可视化使用以及Gazebo的入门教程,敬请期待。

基于ROS的机器人模型建立及3D仿真【物理/机械意义】文章来源地址https://www.toymoban.com/news/detail-492016.html

到了这里,关于基于ROS的机器人模型建立及3D仿真【物理/机械意义】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab机器人仿真(五):利用DH法建立六轴机器人(复现,整合,记录)

    DH法包括两种:一种为标准DH法,另一种为改进型DH法,如图所示(图片转载来自https://blog.csdn.net/qq_26565435/article/details/91460988): 例子:建立一个常见的简单3轴机器人: 在建立一个常见的六轴机器人: 例子如图所示: case1: case 2: case 3: 在matlab中建立机械臂模型 MATLAB代码:

    2024年02月11日
    浏览(32)
  • (无人机方向)ros学习之路ROS 机器人系统仿真_导航仿真概述

    一:导航仿真概述 导航是机器人系统中最重要的模块之一,比如现在较为流行的服务型室内机器人,就是依赖于机器人导航来实现室内自主移动的,本章主要就是介绍仿真环境下的导航实现,主要内容有: 导航相关概念 导航实现:机器人建图(SLAM)、地图服务、定位、路径规划…

    2024年02月02日
    浏览(39)
  • ROS仿真机器人实现Rviz轨迹显示

    一、实现效果 红色为行驶过的轨迹 二、实现方法 1、导航包中创建.cpp文件,并将以下代码复制进去 2、CMakeLists当中添加可执行文件及链接库 3、启动导航的launch文件中添加启动该cpp文件 三、代码

    2024年02月15日
    浏览(35)
  • 使用ROS进行机器人的模拟与仿真

    机器人的模拟与仿真是研究和开发机器人系统的关键步骤。在这个过程中,ROS(Robot Operating System)是一个非常重要的工具。本文将深入探讨如何使用ROS进行机器人的模拟与仿真,并提供一些最佳实践、技巧和技术洞察。 机器人的模拟与仿真是研究和开发机器人系统的关键步骤。

    2024年02月20日
    浏览(25)
  • ROS学习笔记16:机器人系统建模与仿真

    一、概述: 1.机器人系统仿真:         是通过计算机对实体机器人系统进行模拟的技术,在 ROS 中,仿真实现涉及的内容主要有三:对机器人建模(URDF)、创建仿真环境(Gazebo)以及感知环境(Rviz)等系统性实现。 (1)仿真优势:低成本、高效、高安全性。 (2)仿真缺陷:仿

    2024年02月09日
    浏览(30)
  • 【ROS】—— 机器人导航(仿真)—导航实现(十八)[重要][重要][重要]

    📢本系列将依托赵虚左老师的ROS课程,写下自己的一些心得与笔记。 📢课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 📢讲义链接:http://www.autolabor.com.cn/book/ROSTutorials/index.html 📢 文章可能存在疏漏的地方,恳请大家指出。 安装相应功能包: 安装 gmapping 包(用于构建地图): sudo a

    2024年02月01日
    浏览(32)
  • ROS Turtlebot3多机器人编队导航仿真

    前面已经实现了在gazebo仿真环境中机器人一字型编队、三角形编队、N字型编队等仿真,接下来考虑多机器人编队在编队行进过程中的避障问题,通过在RVIZ中加载多个机器人使他们能分别进行全局和局部路径规划,来进行避障。 在前面的文章中也提到过在gazebo仿真环境中加载

    2024年02月02日
    浏览(33)
  • 基于预测控制模型的自适应巡航控制仿真与机器人实现(Matlab代码实现)

         目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 自适应巡航控制技术为目前由于汽车保有量不断增长而带来的行车安全、驾驶舒适性及交通拥堵等问题提供了一条有效的解决途径,因此本文通过理论分析、仿真验证及实车实验对自适应巡航控制中的若干

    2024年02月16日
    浏览(28)
  • 【ROS 2 基础-常用工具】-7 Rviz仿真机器人

     所有内容请查看:博客学习目录_Howe_xixi的博客-CSDN博客

    2024年02月08日
    浏览(33)
  • 仿真机器人-深度学习CV和激光雷达感知(项目2)day03【机器人简介与ROS基础】

    💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容 🌟 预置知识:基本Python语法,基本linux命令行使用 以下的几个专栏是本人比较满意的专栏 (大部分专栏仍在持续更新

    2024年01月19日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包