ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

3.ROS2 Humble + TurtleBot3 + Gazebo + RViz2 虚拟机仿真完整踩坑记录(保姆级)

3.ROS2 Humble + TurtleBot3 + Gazebo + RViz2 虚拟机仿真完整踩坑记录(保姆级) 标签ROS2HumbleTurtleBot3GazeboRViz2虚拟机踩坑Ubuntu22.04简介VMware 虚拟机 Ubuntu22.04 搭建 TurtleBot3 仿真。解决安装阶段系统库依赖冲突降级、Gazebo 界面卡死、TURTLEBOT3_MODEL 环境变量、RViz 雷达可视化、键盘遥控全套问题。环境VMware 虚拟机 Ubuntu 22.04 ROS2 Humble本文分为两大块安装排坑篇解决 Ubuntu22.04 虚拟机系统库版本冲突完成 ROS2、Gazebo、TurtleBot3 安装仿真使用篇环境变量配置、GazeboRViz2 键盘遥控完整操作常见报错排查。一、安装阶段踩坑系统库版本冲突1.1 安装 TurtleBot3 Gazebo ROS 桥接包sudo aptitude install ros-humble-turtlebot3 ros-humble-turtlebot3-msgs ros-humble-turtlebot3-bringup ros-humble-turtlebot3-gazebo ros-humble-gazebo-ros-pkgs ros-humble-gazebo-ros2-control1.2 执行 自定义消息包 安装命令sudo aptitude install ros-humble-turtlebot3-msgs出现依赖不满足例如libcom‑err2版本不匹配。根源虚拟机之前执行过apt upgrade系统底层安全补丁版本高于 ROS2 软件包所期望的版本APT 无法自动调和依赖直接安装失败。1.2 查询 libcom‑err2 可用版本apt-cache madison libcom-err2输出示例libcom-err2 | 1.46.5-2ubuntu1.1 | http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages libcom-err2 | 1.46.5-2ubuntu1 | http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 Packages1.4 降级指定版本sudo apt install libcom-err21.46.5-2ubuntu1.1继续执行。1.5 锁定版本降级完成必须锁定后续执行apt upgrade不会把该包升回高版本sudo apt-mark hold libcom-err2 e2fsprogs验证锁定状态apt-mark showhold输出包含libcom‑err2即锁定成功。二、安装 Gazebo 与 TurtleBot3 仿真包2.1 安装 Gazebo 本体、ROS 桥接、TurtleBot3 全套包sudo apt update sudo apt install gazebo libgazebo-dev sudo apt install ros-humble-turtlebot3 ros-humble-turtlebot3-msgs ros-humble-turtlebot3-bringup ros-humble-turtlebot3-gazebo ros-humble-gazebo-ros-pkgs ros-humble-turtlebot3-teleop2.2 启动无响应加载 ROS 环境source /opt/ros/humble/setup.bash export TURTLEBOT3_MODELwaffle启动 TB3 空世界仿真ros2 launch turtlebot3_gazebo empty_world.launch.py三、VMware 虚拟机软件、硬件设置解决卡顿、FPS 低、闪退3.1 VMware 图形兼容环境变量解决 Gazebo 渲染崩溃VMware SVGA 显卡驱动会和 Gazebo 冲突开启 CPU 软渲染。写入 bashrc 永久生效echo export LIBGL_ALWAYS_SOFTWARE1 ~/.bashrc echo export SVGA_VGPU100 ~/.bashrc source ~/.bashrc3.2 硬件设置操作前关闭虚拟机.我的物理机只有16G内存。有条件的可以适当增加配置。处理器处理器数量1每个处理器内核数量4总逻辑核心 4 核虚拟化引擎勾选Intel VT‑x/EPT不要勾选 CPU 性能计数器、IOMMU 不勾选、内存虚拟机内存分配8192MB8GB。显示器勾选「加速 3D 图形」图形内存设置2048MB(2GB)不要设置 8G会内存冲突。四、ROS2 与 TurtleBot3 环境变量配置报错TURTLEBOT3_MODEL就是缺少模型环境变量。临时生效新开终端每次需要输入source /opt/ros/humble/setup.bash export TURTLEBOT3_MODELwaffle永久配置推荐重启终端自动加载echo source /opt/ros/humble/setup.bash ~/.bashrc echo export TURTLEBOT3_MODELwaffle ~/.bashrc echo export GAZEBO_MODEL_PATH$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models ~/.bashrc source ~/.bashrc五、启动仿真全套流程三个独立终端重要三个终端分开打开第一个 Gazebo 终端不能关闭。5.1 终端 1启动 Gazebo 仿真世界自动生成小车ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py等待 Gazebo 窗口弹出。现象说明VMware 下经常出现终端提示 spawn 成功但是 GazeboGUI 加载慢看不到小车。ROS 底层驱动、话题已经正常工作只是图形界面渲染没刷新。5.2 终端 2新开终端启动 RViz2 可视化rviz2RViz 配置步骤Global Options→Fixed Frame修改为base_link左下角 Add 按钮添加组件RobotModel加载小车本体模型LaserScan激光雷达Topic 填写/scan把点大小 Size 调大方便观察可选添加TF查看机器人各坐标系关系。5.3 终端 3新开终端启动键盘遥控小车source /opt/ros/humble/setup.bash ros2 run turtlebot3_teleop teleop_keyboard按键说明w 前进 a s d a左转s停止d右转 x 后退 w/x增大/减小前进线速度 a/d增大/减小旋转角速度 空格 / s强制停车 CtrlC退出遥控程序鼠标必须点击激活键盘遥控这个终端窗口按键才会生效看到终端内linear velocity数值发生变化说明速度指令已经成功发出。理想状态下 Gazebo 小车运动RViz 雷达红点同步跟随小车旋转移动。六、成功判定标准Gazebo 窗口小车可以通过键盘前后移动、转向RViz2 窗口出现红色激光点云轮廓小车移动雷达同步更新ROS 话题正常/cmd_vel、/scan、/robot_description话题正常发布。七、高频踩坑汇总7.1 报错TURTLEBOT3_MODEL原因未配置小车模型环境变量。解决设置export TURTLEBOT3_MODELwaffle写入.bashrc永久生效。7.2 RViz 看不到小车模型 / 看不到雷达点云Fixed Frame 没有设置为base_linkLaserScan 订阅话题不是/scan。7.3 VMware 虚拟机 Gazebo 帧率低、窗口无响应虚拟机显卡虚拟化性能弱分配更多 CPU、内存设置LIBGL_ALWAYS_SOFTWARE1、SVGA_VGPU100;主机内存不足关闭主机其他软件释放内存
返回列表