news 2026/1/8 4:00:08

ROS1机器人SLAM系列(二):ROS1环境搭建指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ROS1机器人SLAM系列(二):ROS1环境搭建指南

ROS1机器人SLAM系列(二):ROS1环境搭建指南

本文将详细介绍如何在Ubuntu系统上安装和配置ROS1开发环境,为后续的SLAM实践做好准备。

1. 系统要求

1.1 ROS1版本与Ubuntu对应关系

ROS版本Ubuntu版本支持状态
NoeticUbuntu 20.04推荐(最后的ROS1版本)
MelodicUbuntu 18.04维护中
KineticUbuntu 16.04已停止支持

推荐配置:Ubuntu 20.04 + ROS Noetic

1.2 硬件要求

  • CPU:Intel i5及以上(推荐i7)
  • 内存:8GB及以上(推荐16GB)
  • 硬盘:50GB以上可用空间
  • 显卡:支持OpenGL的显卡(用于RViz可视化)

2. Ubuntu 20.04安装

2.1 下载镜像

从Ubuntu官网或国内镜像站下载ISO文件:

  • 官网:https://ubuntu.com/download/desktop
  • 清华镜像:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/

2.2 制作启动盘

使用Rufus(Windows)或dd命令(Linux)制作USB启动盘:

# Linux下制作启动盘sudoddif=ubuntu-20.04.6-desktop-amd64.isoof=/dev/sdXbs=4Mstatus=progress

2.3 安装系统

  1. 从USB启动
  2. 选择"Install Ubuntu"
  3. 选择语言、键盘布局
  4. 选择"正常安装",勾选"安装第三方软件"
  5. 分区建议:
    • /boot:512MB
    • swap:等于内存大小
    • /:剩余空间

3. ROS Noetic安装

3.1 配置软件源

# 添加ROS软件源sudosh-c'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'# 使用国内镜像源(推荐)sudosh-c'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3.2 添加密钥

# 方法1:使用curlcurl-shttps://raw.githubusercontent.com/ros/rosdistro/master/ros.asc|sudoapt-keyadd-# 方法2:如果上面失败,尝试sudoapt-key adv--keyserver'hkp://keyserver.ubuntu.com:80'--recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3.3 安装ROS

# 更新软件包列表sudoaptupdate# 安装完整桌面版(推荐)sudoaptinstallros-noetic-desktop-full# 或者只安装基础版# sudo apt install ros-noetic-ros-base

3.4 初始化rosdep

# 安装依赖工具sudoaptinstallpython3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential# 初始化rosdepsudorosdep init rosdep update

如果rosdep init失败,可以手动创建:

# 手动创建20-default.list文件sudomkdir-p/etc/ros/rosdep/sources.list.dsudocurl-o/etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list# 修改rosdep源exportROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml rosdep update

3.5 环境配置

# 将ROS环境添加到bashrcecho"source /opt/ros/noetic/setup.bash">>~/.bashrcsource~/.bashrc# 验证安装rosversion-d# 输出:noetic

4. 创建ROS工作空间

4.1 创建catkin工作空间

# 创建工作空间目录mkdir-p~/catkin_ws/srccd~/catkin_ws/# 初始化工作空间catkin_make# 或使用catkin build(需要先安装catkin_tools)# sudo apt install python3-catkin-tools# catkin build

4.2 配置工作空间环境

# 添加工作空间环境到bashrcecho"source ~/catkin_ws/devel/setup.bash">>~/.bashrcsource~/.bashrc# 验证工作空间echo$ROS_PACKAGE_PATH# 输出应包含:/home/用户名/catkin_ws/src:/opt/ros/noetic/share

5. 安装SLAM相关功能包

5.1 核心功能包

# 导航功能包sudoaptinstallros-noetic-navigation# TF变换sudoaptinstallros-noetic-tf2-ros ros-noetic-tf2-tools# 可视化工具sudoaptinstallros-noetic-rviz# 仿真工具sudoaptinstallros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control

5.2 SLAM算法包

# Gmappingsudoaptinstallros-noetic-gmapping# Cartographersudoaptinstallros-noetic-cartographer ros-noetic-cartographer-ros# Hector SLAMsudoaptinstallros-noetic-hector-slam# AMCL定位sudoaptinstallros-noetic-amcl# 地图服务sudoaptinstallros-noetic-map-server

5.3 常用工具包

# 机器人模型描述sudoaptinstallros-noetic-urdf ros-noetic-xacro# 键盘控制sudoaptinstallros-noetic-teleop-twist-keyboard# RQT工具集sudoaptinstallros-noetic-rqt ros-noetic-rqt-common-plugins# rosbag数据记录sudoaptinstallros-noetic-rosbag

6. 验证安装

6.1 测试ROS核心

# 终端1:启动ROS Masterroscore# 终端2:查看节点列表rosnode list# 输出:/rosout# 终端3:发布测试消息rostopic pub /test std_msgs/String"data: 'Hello ROS'"# 终端2:订阅测试消息rostopicecho/test

6.2 测试RViz

# 启动RVizrviz

如果RViz正常启动并显示界面,说明安装成功。

6.3 测试TurtleSim

# 终端1:启动小乌龟仿真rosrun turtlesim turtlesim_node# 终端2:键盘控制rosrun turtlesim turtle_teleop_key

7. 常见问题与解决方案

7.1 rosdep init失败

问题ERROR: cannot download default sources list

解决方案

# 使用代理或手动下载# 参考3.4节的手动创建方法

7.2 找不到ROS命令

问题roscore: command not found

解决方案

# 确保source了ROS环境source/opt/ros/noetic/setup.bash# 检查是否添加到bashrcgrep"ros"~/.bashrc

7.3 catkin_make失败

问题:编译时出现依赖错误

解决方案

# 安装依赖cd~/catkin_ws rosdepinstall--from-paths src --ignore-src-r-y# 清理后重新编译catkin_make clean catkin_make

7.4 RViz显示问题

问题:RViz显示黑屏或崩溃

解决方案

# 安装显卡驱动sudoubuntu-drivers autoinstall# 或者使用软件渲染exportLIBGL_ALWAYS_SOFTWARE=1rviz

7.5 网络通信问题

问题:多机通信时节点无法发现

解决方案

# 设置ROS_MASTER_URI和ROS_IPexportROS_MASTER_URI=http://主机IP:11311exportROS_IP=本机IP# 添加到bashrc持久化echo"export ROS_MASTER_URI=http://主机IP:11311">>~/.bashrcecho"export ROS_IP=本机IP">>~/.bashrc

8. 推荐的开发工具

8.1 VS Code配置

# 安装VS Codesudosnapinstallcode--classic# 安装ROS扩展code --install-extension ms-iot.vscode-ros code --install-extension ms-vscode.cpptools code --install-extension ms-python.python

8.2 VS Code配置文件

创建.vscode/c_cpp_properties.json

{"configurations":[{"name":"Linux","includePath":["${workspaceFolder}/**","/opt/ros/noetic/include/**","/usr/include/**"],"defines":[],"compilerPath":"/usr/bin/gcc","cStandard":"c17","cppStandard":"c++17","intelliSenseMode":"linux-gcc-x64"}],"version":4}

8.3 其他工具

# 安装terminator多终端sudoaptinstallterminator# 安装gitsudoaptinstallgit# 安装htop系统监控sudoaptinstallhtop

9. 快速检查清单

安装完成后,确认以下项目:

  • rosversion -d输出noetic
  • echo $ROS_PACKAGE_PATH包含工作空间路径
  • roscore能正常启动
  • rviz能正常显示
  • rosrun turtlesim turtlesim_node能正常运行
  • SLAM相关包已安装(rospack find gmapping

10. 总结

本文详细介绍了ROS Noetic在Ubuntu 20.04上的安装配置过程,包括:

  • 系统要求和版本选择
  • ROS安装步骤
  • 工作空间创建
  • SLAM相关包安装
  • 常见问题解决

环境搭建完成后,我们就可以开始进行SLAM实践了。下一篇文章将介绍激光雷达等传感器的配置方法。


系列导航:

  • 上一篇:SLAM概述与基础知识
  • 下一篇:激光雷达与传感器配置

版权声明:本文为原创文章,转载请注明出处

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/5 16:51:02

YOLOv8 Detect检测模型输出边界框的坐标格式说明

YOLOv8检测模型输出边界框坐标格式详解 在目标检测的实际开发中,一个看似简单的技术细节——边界框坐标的表示方式,往往成为影响系统准确性的关键瓶颈。不少开发者在使用YOLOv8进行推理时,发现绘制出的检测框位置偏移、尺寸异常,…

作者头像 李华
网站建设 2026/1/6 15:29:25

百度搜索不到有效资源?试试这个DDColor专属GitHub镜像站

百度搜索不到有效资源?试试这个DDColor专属GitHub镜像站 在翻找老相册时,你是否曾对着一张泛黄的黑白照片出神——那是爷爷年轻时站在老屋前的身影,或是父母婚礼上略显拘谨的笑容。可惜,时光带走了色彩,也带走了温度。…

作者头像 李华
网站建设 2026/1/6 11:23:54

从寄存器结构看x64和arm64本质区别:图解说明

从寄存器结构看 x64 和 arm64 的本质差异:不只是位数的问题你有没有想过,为什么同样是“64位”处理器,Intel 的 CPU 能跑 Windows 桌面软件如飞,而苹果 M 系列芯片却能在低功耗下实现媲美甚至超越的性能?答案不在频率、…

作者头像 李华
网站建设 2026/1/5 15:06:06

ComfyUI工作流导入导出技巧提升DDColor使用效率

ComfyUI工作流导入导出技巧提升DDColor使用效率 在老照片修复的实践中,一个常见的痛点是:每次处理图像都要重新加载模型、手动调整参数、反复测试尺寸与采样步数——不仅耗时,还容易因配置不一致导致输出质量波动。尤其当面对成百上千张家庭影…

作者头像 李华
网站建设 2026/1/7 15:25:05

前端可视化新体验:Three.js结合DDColor展示修复前后对比

前端可视化新体验:Three.js结合DDColor展示修复前后对比 在数字档案馆、家庭相册数字化和影视资料修复的日常场景中,一张泛黄模糊的黑白老照片如何“活”过来?过去,这往往依赖专业修图师耗时数小时的手工上色;如今&…

作者头像 李华
网站建设 2026/1/7 3:52:16

无需编程!用DDColor一键修复黑白老照片(附GitHub镜像下载)

无需编程!用DDColor一键修复黑白老照片(附GitHub镜像下载) 在泛黄的相纸和模糊的影像背后,藏着几代人的记忆。一张黑白老照片,可能是一位祖父年轻时的戎装照,也可能是祖母出嫁那天穿旗袍的身影。然而岁月不…

作者头像 李华