采用fishros 一键安装命令
wget http://fishros.com/install -O fishros && . fishros
界面当中选择参数,请按照他的提示进行选择。出现404 notfound 的错误,比如
用 fishros 一键安装 ros 出现问题 错误:235 https://mirrors.ustc.edu.cn/ros2/ubuntu focal/main amd64 ros-rolling-rosbag2-transport amd64 0.13.0-1focal.20220204.192304 404 Not Found [IP: 218.104.71.170 443] 错误:236 https://mirrors.ustc.edu.cn/ros2/ubuntu focal/main amd64 ros-rolling-rosbag2-py amd64 0.13.0-1focal.20220204.193524 404 Not Found [IP: 218.104.71.170 443] 错误:237 https://mirrors.ustc.edu.cn/ros2/ubuntu focal/main amd64 ros-rolling-ros2bag amd64 0.13.0-1focal.20220204.193831 404 Not Found [IP: 218.104.71.170 443]
原因:
这个错误是因为中科大(USTC)的ROS2镜像中没有找到对应版本的软件包(404 Not Found)。这通常是由于镜像同步延迟或软件版本不匹配导致的。
解决方法:
首先可以通过尝试其他的镜像源
备份原有源列表
sudo cp /etc/apt/sources.list.d/ros2.list /etc/apt/sources.list.d/ros2.list.bak
编辑源文件,更换为清华源或其他源
sudo sed -i 's/mirrors.ustc.edu.cn/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/ros2.list
或者直接替换整个源文件
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/ros2.list
更新软件包列表
sudo apt update
其次 进行更新并重新安装
rosdepc update
wget http://fishros.com/install -O fishros && . fishros
最后手动安装缺少的文件
先跳过有问题的包继续安装
sudo apt install --fix-missing ros-rolling-desktop
或者单独处理缺失的包
sudo apt update
sudo apt install -f
如果安装的环境有些乱可以通过完整清理重装
1. 清理现有安装
sudo apt remove 'ros-rolling-*'
sudo rm -rf /etc/apt/sources.list.d/ros2.list
2. 使用官方安装方法重新安装
sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
3. 添加官方源
echo "deb [arch=(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg\] http://packages.ros.org/ros2/ubuntu (source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
4. 安装
sudo apt update
sudo apt install ros-rolling-desktop
经过这几个步骤基本能够安装成功。
设置环境变量
检查ROS2环境变量是否已设置
printenv | grep ROS
如果未设置,需要先source环境
source /opt/ros/rolling/setup.bash # 对于Rolling版本
或者
source /opt/ros/humble/setup.bash # 对于Humble版本
为了永久生效,可以将上述命令添加到~/.bashrc
echo "source /opt/ros/rolling/setup.bash" >> ~/.bashrc
source ~/.bashrc
测试是否安装成功
运行简单示例
示例1:Talker-Listener测试(最常用)
bash
# 打开第一个终端,运行talker节点
ros2 run demo_nodes_cpp talker
# 打开第二个终端,运行listener节点
ros2 run demo_nodes_py listener