> 文章列表 > ROS学习第二十六节——机器人仿真相关组件

ROS学习第二十六节——机器人仿真相关组件

ROS学习第二十六节——机器人仿真相关组件

1.URDF

URDF是 Unified Robot Description Format 的首字母缩写,直译为统一(标准化)机器人描述格式,可以以一种 XML 的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度.....,该文件可以被 C++ 内置的解释器转换成可视化的机器人模型,是 ROS 中实现机器人仿真的重要组件

2.rviz

RViz 是 ROS Visualization Tool 的首字母缩写,直译为ROS的三维可视化工具。它的主要目的是以三维方式显示ROS消息,可以将 数据进行可视化表达。例如:可以显示机器人模型,可以无需编程就能表达激光测距仪(LRF)传感器中的传感 器到障碍物的距离,RealSense、Kinect或Xtion等三维距离传感器的点云数据(PCD, Point Cloud Data),从相机获取的图像值等

以“ros- [ROS_DISTRO] -desktop-full”命令安装ROS时,RViz会默认被安装。

运行使用命令rvizrosrun rviz rviz

如果rviz没有安装,请调用如下命令自行安装:

sudo apt install ros-[ROS_DISTRO]-rviz

3.gazebo

Gazebo是一款3D动态模拟器,用于显示机器人模型并创建仿真环境,能够在复杂的室内和室外环境中准确有效地模拟机器人。与游戏引擎提供高保真度的视觉模拟类似,Gazebo提供高保真度的物理模拟,其提供一整套传感器模型,以及对用户和程序非常友好的交互方式。

以“ros- [ROS_DISTRO] -desktop-full”命令安装ROS时,gzebo会默认被安装。

运行使用命令gazeborosrun gazebo_ros gazebo

注意1:在 Ubuntu20.04 与 ROS Noetic 环境下,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

注意2:如果 gazebo没有安装,请自行安装:

1.添加源:

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" 
>/etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

2.安装:

sudo apt update
sudo apt install gazebo11 
sudo apt install libgazebo11-dev

另请参考:

  • urdf - ROS Wiki

  • rviz - ROS Wiki

  • Gazebo : Tutorial : ROS overview

课程说明:

机器人的系统仿真是一种集成实现,主要包含三部分:

  • URDF 用于创建机器人模型

  • Gzebo 用于搭建仿真环境

  • Rviz 图形化的显示机器人各种传感器感知到的环境信息

三者应用中,只是创建 URDF 意义不大,一般需要结合 Gazebo 或 Rviz 使用,在 Gazebo 或 Rviz 中可以将 URDF 文件解析为图形化的机器人模型,一般的使用组合为:

  • 如果非仿真环境,那么使用 URDF 结合 Rviz 直接显示感知的真实环境信息

  • 如果是仿真环境,那么需要使用 URDF 结合 Gazebo 搭建仿真环境,并结合 Rviz 显示感知的虚拟环境信息

后续课程安排:

  • 先介绍 URDF 与 Rviz 集成使用,在 Rviz 中只是显示机器人模型,主要用于学习 URDF 语法

  • 再介绍 URDF 与 Gazebo 集成,主要学习 URDF 仿真相关语法以及仿真环境搭建

  • 最后集成 URDF 与 Gazebo 与 Rviz,实现综合应用

素材链接:

  • GitHub - zx595306686/sim_demo

4.实操一下

资料下载一下

打开主目录,打开终端,输入以下命令

先安装一个git

sudo apt install git

下载所需

git clone https://github.com/zx595306686/sim_demo.git