系列文章目录
一:ROS 机器人系统仿真概述
本章会介绍:
- 如何创建并显示机器人模型;
- 如何搭建仿真环境;
- 如何实现机器人模型与仿真环境的交互。
本章预期的学习目标如下:
-
能够独立使用URDF创建机器人模型,并在Rviz和Gazebo中分别显示;
-
能够使用Gazebo搭建仿真环境;
-
能够使用机器人模型中的传感器(雷达、摄像头、编码器…)获取仿真环境数据。
前言
(无人机方向)ros小白学习之路(八)ROS 机器人系统仿真概述
参考视频:视频
参考手册:手册
概述
1.概念
机器人系统仿真:是通过计算机对实体机器人系统进行模拟的技术,在 ROS
中,仿真实现涉及的内容主要有三:对机器人建模(URDF)、创建仿真环境(Gazebo)以及感知环境(Rviz)等系统性实现。
2.作用
2.1仿真优势:
仿真在机器人系统研发过程中占有举足轻重的地位,在研发与测试中较之于实体机器人实现,仿真有如下几点的显著优势:
- 1.低成本:当前机器人成本居高不下,动辄几十万,仿真可以大大降低成本,减小风险
- 2.高效:搭建的环境更为多样且灵活,可以提高测试效率以及测试覆盖率
- 3.高安全性:仿真环境下,无需考虑耗损问题
2.2仿真缺陷:
机器人在仿真环境与实际环境下的表现差异较大,换言之,仿真并不能完全做到模拟真实的物理世界,存在一些"失真"的情况,原因:
- 1.仿真器所使用的物理引擎目前还不能够完全精确模拟真实世界的物理情况
- 2.仿真器构建的是关节驱动器(电机&齿轮箱)、传感器与信号通信的绝对理想情况,目前不支持模拟实际硬件缺陷或者一些临界状态等情形
3.相关组件
3.1URDF
URDF是 Unified Robot Description Format 的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种XML 的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度…,该文件可以被 C++内置的解释器转换成可视化的机器人模型,是 ROS 中实现机器人仿真的重要组件
3.2rviz
RViz 是 ROS Visualization Tool
的首字母缩写,直译为ROS的三维可视化工具。它的主要目的是以三维方式显示ROS消息,可以将
数据进行可视化表达。例如:可以显示机器人模型,可以无需编程就能表达激光测距仪(LRF)传感器中的传感 器到障碍物的距离,RealSense、Kinect或Xtion等三维距离传感器的点云数据(PCD, Point CloudData),从相机获取的图像值等
以“ros- [ROS_DISTRO] -desktop-full”命令安装ROS时,RViz会默认被安装。
运行使用命令rviz或rosrun rviz rviz
如果rviz没有安装,请调用如下命令自行安装:
sudo apt install ros-[ROS_DISTRO]-rviz
3.3gazebo
Gazebo是一款3D动态模拟器,用于显示机器人模型并创建仿真环境,能够在复杂的室内和室外环境中准确有效地模拟机器人。与游戏引擎提供高保真度的视觉模拟类似,Gazebo提供高保真度的物理模拟,其提供一整套传感器模型,以及对用户和程序非常友好的交互方式。
以“ros- [ROS_DISTRO] -desktop-full”命令安装ROS时,gzebo会默认被安装。
> 运行使用命令gazebo或rosrun gazebo_ros gazebo