当前位置: 首页 > news >正文

Ubuntu24.04(Jazzy)从零开始实现环境配置和Gmapping建图

Ubuntu24.04(Jazzy)的环境配置有些变化,加上GMapping暂时没有官方的适配,所以需要自己基于源码进行适配后重编译,本文适配后的代码地址:https://github.com/zacSuo/ros2_gmapping.git,另外,Ubuntu24默认的键盘控制程序teleop_twist_keyboard发布的/cmd_vel和机器人仿真程序turtlebot3_gazebo订阅的/cmd_vel使用了不同的数据类型,因此默认无法正常通信,可以修改turtlebot3_gazebo的监听部分(geometry_msgs/msg/TwistStamped),或者修改teleop_twist_keyboard的发布部分(geometry_msgs/msg/Twist),本文本文选择后者,重写了键盘发布的程序,以便兼容turtlebot3_gazebo监听格式。

1. ROS2 安装

官网地址:https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html

#设置语言环境(安装Ubuntu时候设置过可以跳过)
locale  # check for UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale  # verify settings# 配置安装源
sudo nano /etc/apt/sources.list
# Ubuntu 24.04 (Noble Numbat) 软件源配置
deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
# 源码仓库(可选,如果需要编译软件的话)
# deb-src https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse# 安装依赖库
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository universe
# 更新 Debian 包索引
sudo apt update && sudo apt install curl -y
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo $VERSION_CODENAME)_all.deb" # If using Ubuntu derivates use $UBUNTU_CODENAME
sudo dpkg -i /tmp/ros2-apt-source.deb# 安装开发工具
sudo apt update && sudo apt install ros-dev-tools# 安装ROS(桌面完整版)
sudo apt update
sudo apt upgrade
sudo apt install ros-jazzy-desktop# 配置环境
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
source ~/.bashrc

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2. Gazebo 仿真环境安装

# 安装依赖
sudo apt update
sudo apt install -y lsb-release wget gnupg
# 添加Gazebo仓库
sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /tmp/gazebo.gpg
gpg --dearmor -o /tmp/gazebo-archive-keyring.gpg /tmp/gazebo.gpg
sudo mv /tmp/gazebo-archive-keyring.gpg /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/pkgs-osrf-stable.list > /dev/null
#安装Gazebo Sim
sudo apt update
sudo apt install ros-jazzy-ros-gz
# 关闭虚拟机,禁用3D图形加速(gazebo可能会不兼容)
打开.vmx文件
mks.enable3d = "FALSE"
# 启动虚拟机,配置GPU图形上下文
echo "export SVGA_VGPU10=0" >> ~/.bashrc
source ~/.bashrc
# 验证gazebo安装
gz sim --version
gz sim shapes.sdf
# 验证ros2融合
source /opt/ros/jazzy/setup.bash
ros2 launch ros_gz_sim empty_world.launch.py

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. TurtleBot3 仿真机器人安装

# 安装 TurtleBot3 Gazebo 包
sudo apt install ros-jazzy-turtlebot3-gazebo# 启动 TurtleBot3 仿真
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

在这里插入图片描述

在这里插入图片描述

4. GMapping安装使用

# Gmapping源码 下载
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/zacSuo/ros2_gmapping.git
# 安装依赖
sudo apt update
sudo apt install ros-jazzy-tf2-geometry-msgs ros-jazzy-laser-geometry ros-jazzy-nav2-common ros-jazzy-turtlebot3-teleop ros-jazzy-topic-tools libncurses-dev ros-jazzy-nav2-map-server 
# 编译GMapping
cd ~/ros2_ws
colcon build --packages-select openslam_gmapping slam_gmapping
source ~/ros2_ws/install/setup.bash 
# 终端1: 启动仿真环境(如果第三步安装完Turtlebot3后已经启动,则忽略)
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
# 终端2: 启动Rviz查看建图过程和结果
rviz2 -d ~/ros2_ws/src/ros2_gmapping/slam_gmapping/rviz/gmapping.rviz
# 终端3:启动Gampping算法
ros2 launch slam_gmapping slam_gmapping.launch.py
# 终端4: 启动键盘控制(保持终端激活)
ros2 run slam_gmapping teleop_keyboard
# 控制指令(保持终端3 处于激活状态):
w:前进
x:后退
a:左转
d:右转
s:停止
# 终端5: 保存地图(生成pgm、yaml两个文件)
ros2 run nav2_map_server map_saver_cli  -f ~/ros2_ws/src/ros2_gmapping/slam_gmapping/map/gmapping_house
cat ~/ros2_ws/src/ros2_gmapping/slam_gmapping/map/gmapping_house.yaml

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/359693.html

相关文章:

  • 北京博乐科技有限公司2025届程序技术类笔试题
  • 京东获取商品评论指南,实时关注用户反馈
  • 【秋招笔试】2025.08.30科大讯飞秋招笔试题
  • PetaLinux的JTAG启动
  • Linux/UNIX系统编程手册笔记:用户和组、进程凭证、时间以及系统限制和选项
  • 创维LB2004_安装软件教程
  • vscode克隆远程代码步骤
  • MSVC---编译器工具链
  • 基于GA遗传优化的双向LSTM融合多头注意力(BiLSTM-MATT)时间序列预测算法matlab仿真
  • 【秋招笔试】2025.08.29阿里云秋招笔试题
  • 拉长视频时长的两种方法
  • 2023年IEEE IOTJ SCI1区TOP,动态环境下无人机目标覆盖任务路径规划,深度解析+性能实测
  • 腾讯浑元最新技术:具有表征对齐的多模态扩散,用于高保真拟音音频生成
  • 免税商品优选购物商城系统|java技术开发
  • 计算机网络总览
  • join怎么用
  • 性能测试工具-Slow Query Log
  • C/C++ 高阶数据结构 —— 二叉搜索树(二叉排序树)
  • 安装Android Studio
  • DVWA靶场通关笔记-SQL Injection (Impossible级别)
  • 【LeetCode - 每日1题】解数独
  • Tomcat 中部署 Web 应用
  • [灵动微电子 MM32BIN560CN MM32SPIN0280]读懂电机MCU 模拟输入运放放大
  • LangChain Prompt管理核心:PromptTemplate与ChatPromptTemplate全解析
  • 旦旦的农场打卡计划
  • 合约服务架构-OOP 方式
  • Linux系统比较两个​​已排序文件​​的实用工具之comm
  • R3:适用于 .NET 的新一代响应式扩展库,事件订阅流
  • HarmonyOS 应用开发:基于API 12及以上的新特性与实践
  • 视觉大模型与多模态理解