一、安裝過程
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社區