兄弟们,不好意思,我喝大了

一周学不完,呜呜呜

没事,继续干吧,没有学不完的知识,重复重复再重复,咱们一定能啃完

接下来也是顺利进入了机器人系统仿真这个章节

由于此章非常吃电脑性能,大家可以先清理一下系统的缓存等

sudo apt autoremove -y && sudo apt autoclean && sudo apt clean && sudo journalctl --vacuum-size=100M && rm -rf ~/.cache/* && sudo rm -rf /tmp/* && rm -rf ~/.local/share/Trash/* && sudo snap list --all | awk '/disabled/{print $1, $3}' | while read name rev; do sudo snap remove "$name" --revision="$rev"; done

如何创建并显示机器人模型(urdf)

如何搭建仿真环境(Gazebo)

如何实现机器人模型与仿真环境的交互(rviz)

仿真的优势:

        1.低成本

        2高效:搭建环境灵活且多样

        3.高安全性

缺陷:

        1.仿真器所使用的物理引擎目前还不够完全模拟真实世界的物理情况

        2.仿真器构建是关节驱动器(电机&齿轮箱),传感器与信号通讯的绝对理想情况

Gazebo出现问题以及解决措施:

  • 问题1:VMware: vmw_ioctl_command error Invalid argument(无效的参数)

    解决:

    echo "export SVGA_VGPU10=0" >> ~/.bashrc

    source .bashrc

  • 问题2:[Err] [REST.cc:205] Error in REST request

    解决:sudo gedit ~/.ignition/fuel/config.yaml

    然后将url : https://api.ignitionfuel.org使用 # 注释

    再添加url: https://api.ignitionrobotics.org

  • 问题3:启动时抛出异常:[gazebo-2] process has died [pid xxx, exit code 255, cmd.....

    解决:killall gzserverkillall gzclient

基本实现流程:

link设置形状:

<!--设置不同形状的机器人部件-->
<robot name="my_car">
    <link name="base_link">
        <!--可视化标签-->
        <visual>
            <!--1.形状-->
            <geometry>
                <!--1.1 立方体-->
                <!-- <box size="0.3 0.2 0.1" /> -->
                <!--1.2 圆柱-->
                <!-- <cylinder radius="0.1" length="2" /> -->
                <!--1.3 球体-->
                <!-- <sphere radius="1" /> -->
                <!--1.4 皮肤-->
                <mesh filename="package://urdf01_rviz/meshes/autolabor_mini.stl"/>
            </geometry>
            <!--2.偏移量与倾斜弧度-->
            <!--3.颜色-->
        </visual>


    </link>

</robot>

实操:

joint的演示:

promax版本(注意细节)

check_urdf语法检查

层级关系的显示

自定义实现雷达小车:

这也太酷啦

URDF 到底是什么

URDF(Unified Robot Description Format,统一机器人描述格式)是 XML 格式文件,用来完整定义一台机器人所有物理、几何、运动属性:

  • 连杆 link:机身、机械臂、轮子、传感器(相机、激光雷达)的三维外形、质量、惯性、碰撞模型、颜色纹理
  • 关节 joint:转动 / 平移 / 固定关节、关节限位、减速比、坐标系变换关系
  • 传动、传感器安装位、基座、末端执行器坐标

XACRO 完整通俗讲解

1. 定义

XACRO = XML Macro(XML 宏文件),后缀 .xacro,是URDF 的增强预处理器语言。 原生 URDF 是纯 XML,重复代码多、无法复用,ROS 推出 xacro 简化机器人模型编写,最终必须编译转换成标准 URDF 才能被 ROS 工具读取

2. 解决原生 URDF 的痛点

原生 URDF 缺点:

  1. 重复代码多:比如机器人左右两个轮子、多节相同机械臂连杆,要复制粘贴多遍
  2. 不能自定义参数:想改机器人尺寸、轮径,要全文件多处修改
  3. 没有循环、条件判断逻辑

XACRO 全部补齐这些功能。

在Gazebo中的实现:

帅啊,Gazebo搭建环境(集成)

摄像头仿真:

深度相机的使用:

点云数据:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐