Ubuntu 18.04/20.04下安装ROS Kinetic全攻略:从镜像配置到疑难解决
当机器人操作系统(ROS)Kinetic版本遇上较新的Ubuntu 18.04或20.04系统时,安装过程往往会遇到各种"水土不服"。本文将带你一步步解决这些兼容性问题,特别针对国内网络环境优化配置,让你在非官方支持的Ubuntu版本上也能顺畅运行ROS Kinetic。
1. 环境准备与系统适配
在开始安装前,我们需要先确认系统环境并做好必要准备。虽然ROS Kinetic官方仅支持Ubuntu 16.04,但通过一些技巧可以在18.04和20.04上成功运行。
1.1 系统版本检查与兼容层配置
首先确认你的Ubuntu版本:
lsb_release -a对于Ubuntu 18.04/20.04用户,需要设置兼容层以避免依赖冲突:
sudo apt-get install -y debian-archive-keyring sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654注意:这些操作将为系统添加必要的密钥和兼容层,确保后续安装不会因版本不匹配而失败。
1.2 国内镜像源配置
为加速下载,推荐使用国内镜像源。以下是主流镜像源的对比:
| 镜像源 | 地址 | 稳定性 | 更新频率 |
|---|---|---|---|
| 中科大 | mirrors.ustc.edu.cn/ros/ubuntu | 高 | 每日同步 |
| 清华 | mirrors.tuna.tsinghua.edu.cn/ros/ubuntu | 高 | 每日同步 |
| 阿里云 | mirrors.aliyun.com/ros/ubuntu | 中 | 每日同步 |
配置中科大镜像源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ xenial main" > /etc/apt/sources.list.d/ros-latest.list'2. ROS Kinetic核心安装
2.1 密钥添加与软件源更新
添加ROS官方密钥并更新软件源:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt update2.2 完整桌面版安装
推荐安装桌面完整版,包含ROS、rqt、rviz等常用工具:
sudo apt-get install ros-kinetic-desktop-full安装完成后,可以查看可用的ROS包:
apt list | grep ros-kinetic3. rosdep初始化终极解决方案
rosdep初始化失败是安装ROS时最常见的问题,下面提供几种经过验证的解决方案。
3.1 修改hosts文件法
首先尝试修改hosts文件:
sudo gedit /etc/hosts在文件末尾添加:
151.101.84.133 raw.githubusercontent.com然后执行:
sudo rosdep init rosdep update3.2 手动配置rosdep源
如果上述方法无效,可以手动配置:
- 创建必要目录:
sudo mkdir -p /etc/ros/rosdep/sources.list.d cd /etc/ros/rosdep/sources.list.d- 创建并编辑20-default.list文件:
sudo gedit 20-default.list文件内容如下:
# os-specific listings first yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx # generic yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte3.3 使用国内镜像加速
对于Python 2.7环境,可以修改rosdep的源文件:
- 编辑sources_list.py:
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py找到DEFAULT_SOURCES_LIST_URL,修改为:
DEFAULT_SOURCES_LIST_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'- 类似地修改__init__.py中的DEFAULT_INDEX_URL
4. 环境配置与功能测试
4.1 环境变量设置
将ROS环境变量添加到bashrc:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc4.2 安装必要工具
安装构建工具和ROS常用工具:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential4.3 经典小海龟测试
启动ROS核心:
roscore新终端中启动海龟仿真器:
rosrun turtlesim turtlesim_node再开一个终端控制海龟:
rosrun turtlesim turtle_teleop_key5. 常见问题与深度优化
5.1 依赖冲突解决
Ubuntu 18.04/20.04可能会遇到Python 2.7与Python 3的冲突。解决方法:
- 明确指定Python版本:
sudo update-alternatives --config python- 安装必要的兼容库:
sudo apt-get install python-is-python25.2 图形界面问题处理
如果遇到rviz或gazebo无法启动,尝试:
sudo apt-get install libqt5gui5 export LIBGL_ALWAYS_SOFTWARE=15.3 性能优化建议
对于较新硬件,可以启用硬件加速:
sudo apt-get install mesa-utils glxinfo | grep "OpenGL version"6. 进阶配置与开发环境搭建
6.1 创建工作空间
创建并初始化catkin工作空间:
mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make source devel/setup.bash6.2 IDE集成推荐
对于ROS开发,推荐以下IDE:
- VS Code:轻量级,有完善的ROS插件
- Qt Creator:对C++支持良好
- PyCharm:适合Python为主的ROS开发
安装VS Code ROS插件:
code --install-extension ms-iot.vscode-ros6.3 多机通信配置
如需多台机器协同工作,需设置ROS_MASTER_URI:
export ROS_MASTER_URI=http://主控IP:11311 export ROS_IP=本机IP7. 实际项目中的经验分享
在机器人项目中,我们经常需要处理各种传感器数据。ROS Kinetic虽然版本较旧,但在工业领域仍有广泛应用。一个实用的建议是定期备份你的工作空间:
tar -czvf ros_workspace_backup.tar.gz ~/catkin_ws对于长期运行的机器人系统,建议使用tmux或screen来管理ROS节点:
sudo apt-get install tmux tmux new -s ros_session