兄弟们,不好意思,我喝大了
一周学不完,呜呜呜
没事,继续干吧,没有学不完的知识,重复重复再重复,咱们一定能啃完
接下来也是顺利进入了机器人系统仿真这个章节
由于此章非常吃电脑性能,大家可以先清理一下系统的缓存等
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" >> ~/.bashrcsource .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 gzserver和killall 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 缺点:
- 重复代码多:比如机器人左右两个轮子、多节相同机械臂连杆,要复制粘贴多遍
- 不能自定义参数:想改机器人尺寸、轮径,要全文件多处修改
- 没有循环、条件判断逻辑
XACRO 全部补齐这些功能。
在Gazebo中的实现:
帅啊,Gazebo搭建环境(集成)
摄像头仿真:
深度相机的使用:
点云数据: