本文最后更新于:2025年7月3日 下午
本文介绍在 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
3sudo 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 包
1
sudo apt update
-
安装
桌面完整版(推荐): 包含 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
1
sudo rosdep init
如果显示
sudo: rosdep: command not found
,则运行命令安装依赖1
sudo apt install python-rosdep2
-
更新 rosdeg
1
rosdep update
如果报错:
1
2ERROR: 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
2echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc -
构建工厂依赖
1
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
其他依赖:
1
2
3
4
5
6sudo 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
roscore
有如下输出表示成功:
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-57cb-11f0-bdb8-000c290fbf15/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 <1GB.
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-57cb-11f0-bdb8-000c290fbf15
process[rosout-1]: started with pid [13526]
started core service [/rosout] -
小乌龟仿真
弹出乌龟可视化窗口:
1
roscore & rosrun turtlesim turtlesim_node
键盘控制:
1
rosrun turtlesim turtle_teleop_key
参考资料
- https://blog.csdn.net/hxj0323/article/details/121215992
- https://blog.csdn.net/qq_45780647/article/details/143581334
- https://www.kdel.org/wp/?p=3082
文章链接:
https://www.zywvvd.com/notes/tools/ros1/ros-melodic-install/ros-melodic-install/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信支付

支付宝支付