本文介绍在 Ubuntu 18.04 上安装 ROS Melodic 的方法流程。
简介
ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面ROS相当于一种“机器人框架(robot frameworks)”类似的“机器人框架”有:Player,YARP,Orocos,CARMEN,Orca,MOOS和 Microsoft Robotics Studio。
ROS 运行时的“蓝图”是一种基于ROS通信基础结构的松耦合点对点进程网络。ROS实现了几种不同的通信方式,包括基于同步RPC样式通信的服务(services)机制,基于异步流媒体数据的话题(topics)机制以及用于数据存储的参数服务器(Parameter Server)。想更加深入的解释这些概念,请参见概念综述。
ROS 版本对应关系
ROS 1 是机器人操作系统的首个版本,从 2007 年发布以来不断演进,直到 2020 年发布的最后一个 LTS 版本 Noetic 才停止迭代。ROS 1 主要针对 Ubuntu 系统设计,因此 Ubuntu 与 ROS 版本之间具有严格的对应关系。
这里记录当前(2025.07)ROS 版本与 Ubuntu、Python 版本的对应关系
ROS 1
注:ROS 1 的最后一个版本是 Noetic,支持到 2025 年并推荐使用 Ubuntu 20.04 和 Python 3.8。
从 Melodic 开始,ROS 1 逐步支持 Python 3,最终在 Noetic 中完全切换到 Python 3。
由于 ROS 1 的生命周期即将结束,后续的开发重点将逐渐转向 ROS 2,因此新项目建议尽量选择 ROS 2,并选择符合需求的 Python 版本。
ROS2
注:ROS 2 支持在 Ubuntu 16.04 到 24.04 之间的多个版本运行,但从 Foxy 开始,建议使用较新的 Ubuntu LTS 版本以获得更好的支持。
ROS 2 逐渐引入了对 Python 3.8、3.10 以及 3.12 等版本的支持,建议在配置环境时选择适合的 Python 版本。
ROS 2 也支持 Windows 和 macOS 平台(Tier 1 和 Tier 2 支持),但主要推荐在 Ubuntu 上使用。
安装步骤
ROS Melodic 对应的操作系统为 Ubuntu 18.04, 若没有对应的操作系统可以 安装虚拟机 解决这个问题。
添加镜像源,我这里设置的是清华的镜像源
1 2 3 sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list 'sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list '
设置密钥
1 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
更新 Debian 包
安装
桌面完整版(推荐): 包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。
1 sudo apt install ros-melodic-desktop-full
如果有问题可以尝试修复安装
1 sudo apt install --reinstall ros-melodic-desktop-full
初始化 rosdep
如果显示 sudo: rosdep: command not found,则运行命令安装依赖
1 sudo apt install python-rosdep2
更新 rosdeg
如果报错:
1 2 ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml]: <urlopen error [Errno 0] Error> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml)
进入 IP 查询网 https://ip.tool.chinaz.com/ 查询 raw.githubusercontent.com 的 IP
将 IP 解析加入到 /etc/hosts 文件中
其实使用一下魔法也可以解决问题
设置环境变量
1 2 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrcsource ~/.bashrc
构建工厂依赖
1 sudo apt-get install python -rosinstall python -rosinstall-generator python -wstool build-essential
其他依赖:
1 2 3 4 5 6 sudo apt-get install ros-melodic-nav-core sudo apt install ros-melodic-tuw-multi-robot-msgs sudo apt install ros-melodic-map-server sudo apt install ros-melodic-jsk-visualization sudo apt install ros-melodic-ament-cmake sudo apt-get install python3-catkin-tools # 用于编译和构建ROS catkin工作空间。
测试
有如下输出表示成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 $ roscore ... logging to /home/vvd/.ros/log /b9648920-57 cb-11 f0-bdb8-000 c290fbf15/roslaunch-ubuntu-13500. log Checking log directory for disk usage. This may take a while . Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1 GB.started roslaunch server http://ubuntu:43905/ ros_comm version 1.14 .13
SUMMARY ========
PARAMETERS * /rosdistro: melodic * /rosversion: 1.14.13
NODES
auto-starting new master process[master]: started with pid [13515] ROS_MASTER_URI=http://ubuntu:11311/
setting /run_id to b9648920-57 cb-11 f0-bdb8-000 c290fbf15 process[rosout-1 ]: started with pid [13526 ] started core service [/rosout]
小乌龟仿真
弹出乌龟可视化窗口:
1 roscore & rosrun turtlesim turtlesim_node
键盘控制:
1 rosrun turtlesim turtle_teleop_key
参考资料
文章链接:
https://www.zywvvd.com/notes/tools/ros1/ros-melodic-install/ros-melodic-install/