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

树莓派4B, ubuntu20.04, 安装Ros Noetic[踩坑记录]

一、安装过程

1. 硬件要求

  • 树莓派4B (建议4GB或8GB内存版本)

  • 至少16GB的microSD卡

2. 下载并安装Ubuntu 20.04

Ubuntu 20.04 LTS (Focal Fossa) for Raspberry Pi

使用Raspberry Pi Imager或BalenaEtcher将镜像写入microSD卡

3. 安装ROS Noetic

​# 设置sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros-latest.list'​# 设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654​# 安装ROS Noetic完整版
sudo apt update
sudo apt install ros-noetic-desktop-full -y​# 初始化rosdep
sudo rosdep init
rosdep update​

4. 环境配置

# 添加ROS环境变量到bashrc
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc# 安装构建工具和依赖
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y

5. 创建工作空间

# 创建并初始化catkin工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make# 添加工作空间到环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. 测试ROS安装

​# 启动roscore
roscore# 新开终端测试ROS工具
rosnode list  # 应该显示/rosout
rostopic list  # 应该显示几个默认话题

7. 树莓派特定优化

# 启用GPU加速(如果需要RViz等图形工具)
sudo apt install libgles2-mesa-dev -y
# 调整交换空间(提高编译性能)
sudo nano /etc/dphys-swapfile
# 修改 CONF_SWAPSIZE=2048
sudo systemctl restart dphys-swapfile

8. 配置ROS开发环境

安装常用ROS包

sudo apt install ros-noetic-rviz ros-noetic-turtlebot3 ros-noetic-gmapping -y

配置远程开发

# 安装VS Code
sudo snap install code --classic# 安装ROS插件
code --install-extension ms-iot.vscode-ros

安装ROS扩展

code --install-extension ms-iot.vscode-ros
code --install-extension ms-python.python

创建工作区配置

在VS Code中按Ctrl+Shift+P,输入

ROS: Create a ROS Workspace

二、测试是否安装成功

安装完ROS Noetic后,可以通过以下步骤全面验证安装是否成功:

1. 基础环境测试

# 检查环境变量
printenv | grep ROS# 正常应显示:
ROS_ROOT=/opt/ros/noetic/share/ros
ROS_PACKAGE_PATH=/opt/ros/noetic/share
ROS_MASTER_URI=http://localhost:11311
ROS_VERSION=1
ROS_PYTHON_VERSION=3
ROS_DISTRO=noetic#验证ROS核心工具
which roscore
which rosrun
which rosnode# 每个命令都应返回有效路径(如/opt/ros/noetic/bin/roscore)

2. 核心功能测试

# 启动ROS核心
roscore# 正常输出应包含
... logging to /home/ubuntu/.ros/log/xxx
started core service [/rosout]

# 保持此终端运行,另开新终端进行以下测试。# 测试ROS节点通信
rosnode list# 应显示:
/rosout
# 测试话题系统
rostopic list# 应显示至少
/rosout
/rosout_agg

3. 可视化工具测试

  • 启动RViz
rosrun rviz rviz# 如果安装了桌面版,应弹出RViz可视化界面。
  • 测试小乌龟模拟器
# 第一个终端
roscore# 第二个终端
rosrun turtlesim turtlesim_node# 第三个终端
rosrun turtlesim turtle_teleop_key# 此时应能通过键盘方向键控制乌龟移动

4. 构建系统测试

# 创建测试包
mkdir -p ~/test_ws/src
cd ~/test_ws/src
catkin_create_pkg test_pkg roscpp rospy std_msgs# 编译测试
cd ~/test_ws
catkin_make# 应看到成功编译输出,最后显示:
[100%] Built target test_pkg

5. Python/C++接口测试

# Python测试
python3 -c "import rospy; print('ROS Python接口正常')"# C++测试(需安装g++)
sudo apt install g++ -y
echo -e '#include <ros/ros.h>\nint main() { ros::init(0,0,"test_node"); return 0; }' > test.cpp
g++ -I/opt/ros/noetic/include test.cpp -L/opt/ros/noetic/lib -lroscpp
./a.out

6. 综合诊断命令

roscheck# 如果显示"ROS is ready to use",则安装完整。

或者创建roscheck.sh并执行

#!/bin/bash
echo "=== ROS 环境检查 ==="
echo -n "ROS 版本: " && rosversion -d
echo -n "roscore 路径: " && which roscore || echo "未找到"
echo -n "Python ROS 测试: " && python3 -c "import rospy; print('OK')" 2>/dev/null || echo "失败"
echo -n "C++ ROS 头文件: " && ls /opt/ros/noetic/include/ros/ros.h >/dev/null 2>&1 && echo "OK" || echo "失败"
echo "=== 检查完成 ==="

三、常见问题排查

问题1: roscore无法启动

# 检查端口占用
netstat -tuln | grep 11311
# 清理残留进程
killall -9 roscore rosmaster

问题2: RViz无法打开

# 检查OpenGL支持
glxinfo | grep "OpenGL version"
# 安装缺失组件
sudo apt install libgl1-mesa-dri libgl1-mesa-glx -y

问题3: Python导入错误

# 检查Python路径
python3 -c "import sys; print(sys.path)" | grep ros
# 重新配置环境
source /opt/ros/noetic/setup.bash

通过以上测试步骤,您可以全面验证ROS Noetic是否已正确安装并配置完成。所有测试通过后,您的ROS开发环境就可以投入使用了。

问题4: rosdep初始化失败

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
sudo rosdep init
rosdep update

问题5: 内存不足导致编译失败

临时增加交换空间:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

问题6: 图形性能问题

安装轻量级桌面环境:

sudo apt install lubuntu-desktop -y

问题7: VS Code安装错误

报错信息:error: snap "code" is not available on stable for this architecture (arm64) but exists on other architectures (amd64).

树莓派4B为ARM64架构。安装VS Code时遇到的错误是因为官方Snap商店没有为ARM64架构提供稳定版的VS Code。推荐使用.deb包直接安装

# 下载ARM64架构的.deb包
wget https://update.code.visualstudio.com/latest/linux-deb-arm64/stable -O vscode-arm64.deb# 安装
sudo apt install ./vscode-arm64.deb# 启动
code

问题8:启动时报GLIBC错误

sudo apt update && sudo apt upgrade -y

问题9:无法打开GUI界面

确保已安装桌面环境:

sudo apt install ubuntu-desktop -y

问题10:扩展安装失败

尝试使用--force参数:

code --install-extension ms-iot.vscode-ros --force

问题11:unable to open display

这个错误通常发生在尝试在无图形界面的服务器版Ubuntu上运行图形应用程序,或者SSH连接时没有正确转发X11显示时。选择哪种方法取决于您的具体使用场景:如果您直接连接显示器推荐方法1;如果您主要使用SSH远程连接,推荐方法3。解决方案如下,

方法1:安装完整桌面环境(推荐)

sudo apt update
sudo apt install ubuntu-desktop -y
sudo reboot

方法2:配置SSH X11转发

# 确保服务器端已安装X11转发组件
sudo apt install xauth xorg -y# 修改SSH服务器配置
sudo nano /etc/ssh/sshd_config# 确保包含:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no# 然后重启SSH服务:
sudo systemctl restart ssh# 从客户端连接时启用X11转发
ssh -X ubuntu@your-pi-ip

如果仍然显示"unable to open display",检查显示权限

xhost +
# 确认DISPLAY变量
echo $DISPLAY

问题12:出现GLX错误

sudo apt install mesa-utils libgl1-mesa-glx -y
glxinfo | grep OpenGL

四、学习资源:

  • ROS官方教程

  • 树莓派ROS社区

http://www.xdnf.cn/news/960589.html

相关文章:

  • 当拼音文字遇上回文:英语中的诗意镜像与文化密码
  • Profinet转CAN网关如何实现profinet与can协议互转
  • 如何通过API接口获取淘宝商品列表?操作详解
  • Quick BI 自定义组件开发 -- 第二篇 添加 echart 组件,开发图表
  • Spring AMQP
  • 打造高效能技术组织的逆向法则
  • 解读新交规中关于“电动自行车能否在快车道骑行”的核心问题
  • Shellshock漏洞与永恒之蓝(WannaCry)勒索病毒深度分析
  • [大A量化专栏] 看盘界面设置(未完待续)
  • Linux进程信号(一)
  • AI Bot到底是真助手,还是又一个流量收割伎俩?
  • 软件功能测试有哪些类型?软件测评机构
  • CppCon 2015 学习:The Importance of Being const
  • 鸠摩搜书官网入口,免费电子书小说在线搜索下载网站
  • 火山 RTC 引擎10 ----远端视频 转网易视频格式
  • 镜头景深的影响因素有哪些
  • 【西门子杯工业嵌入式-7-OLED】
  • 高防CDN是什么?和传统CDN有什么区别?
  • 深入浅出 红黑树:如何手写红黑树(基于TreeMap,算法导论的实现)
  • 振动力学:复模态法和状态空间描述(一般阻尼系统的自由振动)
  • 网站维护页面Plus + HTML源码(源码下载)
  • 门静脉高压——检查
  • 【python深度学习】Day 49 CBAM注意力
  • 【题解-洛谷】P10480 可达性统计
  • [USACO23FEB] Bakery S
  • libfmt: 现代C++的格式化工具库介绍与酷炫功能
  • 本地化部署 Dify 打造专属 AI 助手并嵌入网站
  • 4米铸铁划线平台在工业机械制造有哪些用途
  • 关键领域软件测试的挑战与 Gitee Test 实践探索
  • 树莓派超全系列教程文档--(59)树莓派摄像头rpicam-apps