赞
踩
在前面的博客中,我们已经学习过了如何对目标机器人进行数学意义上的模型建立,以便实现基础控制,而在实际生活中,由于机器人造价高昂,我们往往难以获得实际的目标机器人进行部署研究,这就需要我们对目标进行仿真,采用编程或可视化方法建立机器人3D模型,从而在ROS中使用RVIZ和GAZEBO组件进行相应的仿真分析。本篇文章首先分析了建立机器人3D模型的基本方法,包括使用URDF文件和Gazebo可视化建立等,在之后简单介绍了使用机器人3D模型进行ROS仿真的基本流程,主要涉及RVIZ和Gazebo两个强大的功能组件。
如下代码就是一个简单的机器人模型代码文件:
<robot name="mycar">
<link name="base_link">
<visual>
<geometry>
<box size="0.5 0.2 0.1" />
</geometry>
</visual>
</link>
</robot>
在工具栏中选择下拉选项中的Tool,选择Export as URDF可得:
通过选择坐标系和机器人关节等,最终可以导出完整对应的URDF文件;
概念:通过计算机对实体机器人系统进行模拟,在 ROS 中,仿真实现涉及的内容主要包含:对机器人建模(URDF)、创建仿真环境(Gazebo)以及感知环境(Rviz)等系统性实现。
作用:
仿真的优点:
- 成本低:实际机器人的成本常常高达几十W,风险大,难以进行实际研究;
- 效率高:强大的仿真软件可以为我们提供大量真实的仿真环境,可以在短时间内提高测试效率和覆盖率
- 安全性:由于在虚拟世界中进行的实验研究,可以避免耗损等安全问题。
仿真的缺点:
- 环境失真:仿真软件的物理引擎无法真实代替现实世界;
- 硬件失真:仿真器构建的是关节驱动器(电机&齿轮箱)、传感器与信号通信的绝对理想情况,目前不支持模拟实际硬件缺陷或者一些临界状态等情形
URDF,统一机器人描述格式:通过XML格式的文件描述机器人结构。可转换成可视化机器人模型,具体在上述已有介绍
RVIZ,ROS的三维可视化工具:通过三维方式显示ROS消息数据,可以继承雷达、激光等传感器获取环境数据,并进行可视化表达
安装方法:
sudo apt install ros-[ROS_DISTRO]-rviz
- 1
使用方法:命令
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
- 1
- 2
- 3
- 4
- 5
使用方法:命令
gazebo
或者rosrun gazebo_ros gazebo
注意:在实际的仿真中,使用 URDF 结合 Gazebo 搭建仿真环境,并结合 Rviz 显示感知的虚拟环境信息,结合使用完成综合应用
① 创建功能包,导入依赖项:
- 自定义名称,创建性功能包(依赖项:urdf、xacro)
- 功能包下新建目录:
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配置:默认情况没有机器人显示组件,手动添加方式如下:
⑤ 优化RVIZ实现自动保存:保证重复启动launch文件可以保存先前组件配置信息:
- 将组件皮遏制保存到
config
目录下:
- 启动配置添加参数:
<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>
- 1
- 2
- 3
- 4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。