indigo之后的LTS全支持
其实,ROS1 indigo kinetic melodic noetic全部都支持的,由于工作任务重加班多,一直没有分享详细的教程。


2022年:曾经版本
蓝桥ROS机器人之曾经新版本(indigo/kinetic/melodic/ardent/dashing)_ros indigo和kinetic区别-CSDN博客
2024年:回复

2025总结版本,2025在线尝试ROS1全家福最方便的打开模式:
indigo
ROS1的版本1.11


kinetic
ROS1的版本1.12

noetic
配置
bash
gpg --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
gpg --export C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 | sudo tee /usr/share/keyrings/ros.gpg > /dev/null
bash
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/ros.gpg] https://mirrors.aliyun.com/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
测试
ROS1的版本1.15



更多版本由于加班太多,工作任务繁重,不在举例了。
再次感谢朋友们的支持和鼓励。
bash
sudo apt install terminator -y

在Ubuntu系统中,Terminator是综合功能、易用性和扩展性后最推荐的终端工具,尤其适合需要多任务处理和高效操作的用户;若追求轻量级或特定场景需求,GNOME Terminal、Tilix或Kitty可作为备选方案。以下是具体推荐及分析:
1. Terminator(全能型首选)
-
核心优势 :
- 多分屏管理 :支持垂直/水平分屏、自由拖拽调整比例,可同步输入命令到所有分屏(快捷键
Super+G
),适合多任务并行操作。 - 深度定制 :通过配置文件(
~/.config/terminator/config
)可自定义字体、颜色、透明度等,支持插件扩展(如终端截图、日志记录)。 - 快捷键丰富 :例如
Ctrl+Shift+E
垂直分屏、Ctrl+Shift+O
水平分屏、Ctrl+Shift+W
关闭当前终端等。
- 多分屏管理 :支持垂直/水平分屏、自由拖拽调整比例,可同步输入命令到所有分屏(快捷键
-
安装命令 :
bash
|---|-------------------------------|
| |sudo apt install terminator
| -
适用场景:开发、系统管理、多任务处理。
2. GNOME Terminal(内置轻量级)
- 核心优势 :
- 系统预装:无需额外安装,兼容性极佳。
- 基础分屏 :支持轻量级分屏(
Ctrl+Shift+T
新建标签页,Ctrl+Shift+H/T
水平/垂直分屏)。 - 主题支持 :可通过
Gogh
工具或手动编辑.bashrc
文件调整配色方案。
- 限制:不支持高级布局保存,功能相对基础。
- 适用场景:快速启动、简单任务处理。
3. Tilix(可视化分屏)
-
核心优势 :
- 拖拽式布局:直接拖拽标签创建复杂网格,支持会话保存/恢复。
- 同步输入 :一次键入多终端执行(
Ctrl+Alt+A
)。
-
安装命令 :
bash
|---|--------------------------|
| |sudo apt install tilix
| -
适用场景:需要复杂分屏布局且希望可视化操作的用户。
4. tmux(终端复用器)
-
核心优势 :
- 持久化会话:SSH断开后重连仍可恢复工作环境。
- 分屏管理 :支持垂直/水平分屏(如
tmux new -s dev_session
创建会话,Ctrl+b %
垂直分屏)。
-
安装命令 :
bash
|---|-------------------------|
| |sudo apt install tmux
| -
适用场景:远程服务器管理、长时间运行任务。
5. Kitty(高性能GPU加速)
-
核心优势 :
- GPU渲染:超低延迟,支持OpenGL渲染。
- 跨平台兼容:Linux/macOS通用。
-
安装命令 :
bash
|---|--------------------------|
| |sudo apt install kitty
| -
适用场景:追求极致性能或需要跨平台使用的用户。
推荐逻辑总结
- Terminator:功能全面,分屏与同步输入能力突出,适合大多数开发场景。
- GNOME Terminal:轻量级首选,适合快速启动或简单任务。
- Tilix:可视化分屏与会话管理更直观,适合复杂布局需求。
- tmux:服务器环境持久化必备,适合远程操作。
- Kitty:GPU加速提升性能,适合高性能需求用户。
蓝桥云课中支持的ROS1版本有哪些?------2025在线尝试ROS1全家福最方便的打开模式
引言
机器人操作系统(Robot Operating System,简称ROS)作为全球机器人领域最广泛使用的开源框架,自2010年首次发布以来,已形成覆盖工业、服务、教育等场景的完整生态。在蓝桥云课等在线学习平台中,ROS1的多个长周期支持版本(LTS)因其稳定性与兼容性,成为机器人开发者入门与进阶的首选。截至2025年,蓝桥云课完整支持ROS1 Indigo、Kinetic、Melodic、Noetic四大LTS版本,覆盖Ubuntu 14.04至20.04 LTS操作系统。本文将系统梳理各版本特性、安装配置方法及典型应用场景,为开发者提供一站式技术指南。
一、ROS1版本演进与LTS版本选择逻辑
1.1 ROS1版本历史与LTS定义
ROS1的版本发布遵循"字母序+代号"规则,每6个月发布一个新版本,每2年发布一个LTS版本。LTS版本提供5年官方支持,包括安全更新、依赖库维护及兼容性保障。截至2025年,ROS1共发布12个主要版本,其中Indigo(2014)、Kinetic(2016)、Melodic(2018)、Noetic(2020)为LTS版本,构成蓝桥云课的核心教学体系。
1.2 版本选择的核心考量因素
- 系统兼容性:ROS1版本与Ubuntu LTS版本强绑定(如Noetic仅支持Ubuntu 20.04)。
- 硬件支持:新版ROS1增加对ARM架构、GPU加速及新型传感器的支持。
- 功能完整性:新版集成更多工具链(如Gazebo仿真、MoveIt!运动规划)。
- 社区活跃度:LTS版本拥有更完善的文档、教程及第三方包支持。
1.3 蓝桥云课版本选择建议
版本 | 发布年份 | Ubuntu支持 | 核心特性 | 适用场景 |
---|---|---|---|---|
Indigo | 2014 | 14.04 | 基础架构稳定,硬件抽象层完善 | 传统工业机器人开发 |
Kinetic | 2016 | 16.04 | 增加ROS2兼容接口,优化实时性 | 服务机器人导航与感知 |
Melodic | 2018 | 18.04 | 集成Gazebo 9,支持深度学习框架 | 移动机器人SLAM与路径规划 |
Noetic | 2020 | 20.04 | Python 3全面支持,性能优化 | 教育机器人、科研原型开发 |
二、蓝桥云课环境配置:从零到一的完整流程
2.1 系统准备与镜像选择
蓝桥云课提供预装Ubuntu 20.04 LTS的虚拟机镜像,支持一键部署Noetic环境。对于自定义环境,需确保系统满足以下要求:
- 操作系统:Ubuntu 14.04/16.04/18.04/20.04 LTS(对应Indigo/Kinetic/Melodic/Noetic)。
- 内存:≥4GB(仿真环境建议≥8GB)。
- 磁盘空间:≥20GB(Noetic完整安装约需10GB)。
2.2 版本安装:分步详解与问题排查
2.2.1 Noetic版本安装(Ubuntu 20.04)
步骤1:配置软件源与密钥
bash
|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | # 导入ROS公钥(2025年推荐使用阿里云镜像)
|
| | gpg --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
| | gpg --export C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 | sudo tee /usr/share/keyrings/ros.gpg > /dev/null
|
| | |
| | # 添加软件源(使用阿里云镜像加速)
|
| | sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/ros.gpg] https://mirrors.aliyun.com/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
|
步骤2:安装ROS核心包
bash
|---|--------------------------------------------|
| | # 更新软件包列表
|
| | sudo apt update
|
| | |
| | # 安装桌面完整版(含rviz、Gazebo等工具)
|
| | sudo apt install ros-noetic-desktop-full
|
| | |
| | # 初始化rosdep(依赖管理工具)
|
| | sudo rosdep init
|
| | rosdep update
|
步骤3:配置环境变量
bash
|---|---------------------------------------------------------|
| | # 将环境变量配置写入.bashrc(永久生效)
|
| | echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
|
| | source ~/.bashrc
|
常见问题解决:
- 公钥导入失败:检查网络连接,或手动下载公钥文件后导入。
- 软件源更新超时:替换为国内镜像源(如清华、中科大)。
- 依赖冲突 :使用
sudo apt --fix-broken install
修复。
2.2.2 其他版本安装(以Melodic为例)
bash
|---|--------------------------------------------------------------------------------------------------------------------------------|
| | # Ubuntu 18.04配置
|
| | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
|
| | sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
|
| | sudo apt update
|
| | sudo apt install ros-melodic-desktop-full
|
2.3 工作空间创建与功能包开发
步骤1:创建Catkin工作空间
bash
|---|----------------------------|
| | mkdir -p ~/catkin_ws/src
|
| | cd ~/catkin_ws
|
| | catkin_make
|
| | source devel/setup.bash
|
步骤2:创建功能包(以C++节点为例)
bash
|---|------------------------------------------------|
| | cd ~/catkin_ws/src
|
| | catkin_create_pkg my_package roscpp std_msgs
|
| | cd my_package/src
|
| | touch my_node.cpp
|
步骤3:编写节点代码
cpp
|---|---------------------------------------------------------------------|
| | #include "ros/ros.h"
|
| | #include "std_msgs/String.h"
|
| | |
| | int main(int argc, char **argv) {
|
| | ros::init(argc, argv, "my_node");
|
| | ros::NodeHandle nh;
|
| | ros::Publisher pub = nh.advertise<std_msgs::String>("topic", 10);
|
| | ros::Rate rate(10);
|
| | |
| | while (ros::ok()) {
|
| | std_msgs::String msg;
|
| | msg.data = "Hello, ROS!";
|
| | pub.publish(msg);
|
| | ros::spinOnce();
|
| | rate.sleep();
|
| | }
|
| | return 0;
|
| | }
|
步骤4:编译与运行
bash
|---|-----------------------------|
| | cd ~/catkin_ws
|
| | catkin_make
|
| | source devel/setup.bash
|
| | rosrun my_package my_node
|
三、蓝桥云课典型应用场景与实战案例
3.1 小乌龟仿真:ROS基础概念验证
场景描述 :通过turtlesim
包验证ROS节点通信、话题发布与订阅机制。
操作步骤:
-
启动ROS核心服务:
bash
|---|-----------|
| |roscore
| -
启动仿真节点与键盘控制节点:
bash
|---|--------------------------------------|
| |rosrun turtlesim turtlesim_node
|
| |rosrun turtlesim turtle_teleop_key
| -
查看话题列表与消息内容:
bash
|---|----------------------------------|
| |rostopic list
|
| |rostopic echo /turtle1/cmd_vel
|
技术要点:
- 节点间通过话题(
/turtle1/cmd_vel
)实现解耦通信。 - 使用
rqt_graph
可视化计算图。
3.2 多机器人协同控制:命名空间与重映射
场景描述:在单一ROS核心下控制两个独立的小乌龟机器人。
操作步骤:
-
创建两个命名空间:
bash
|---|------------------------------------------------|
| |# 终端1(机器人1)
|
| |rosrun turtlesim turtlesim_node __ns:=robot1
|
| | |
| |# 终端2(机器人2)
|
| |rosrun turtlesim turtlesim_node __ns:=robot2
| -
分别启动键盘控制节点:
bash
|---|---------------------------------------------------------------------------------------------|
| |# 终端3(控制机器人1)
|
| |rosrun turtlesim turtle_teleop_key __ns:=robot1 /turtle1/cmd_vel:=/robot1/turtle1/cmd_vel
|
| | |
| |# 终端4(控制机器人2)
|
| |rosrun turtlesim turtle_teleop_key __ns:=robot2 /turtle1/cmd_vel:=/robot2/turtle1/cmd_vel
|
技术要点:
- 使用
__ns
参数指定命名空间。 - 通过话题重映射(
/old_topic:=/new_topic
)解决命名冲突。
3.3 Launch文件自动化启动:多节点协同
场景描述:通过Launch文件一键启动仿真环境、控制节点及可视化工具。
操作步骤:
-
创建Launch文件(
~/catkin_ws/src/my_package/launch/turtles.launch
):xml
|---|----------------------------------------------------------------------------------|
| |<launch>
|
| |<group ns="robot1">
|
| |<node pkg="turtlesim" type="turtlesim_node" name="turtle"/>
|
| |<node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
|
| |</group>
|
| |<group ns="robot2">
|
| |<node pkg="turtlesim" type="turtlesim_node" name="turtle"/>
|
| |<node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
|
| |</group>
|
| |<node pkg="rqt_graph" type="rqt_graph" name="rqt_graph"/>
|
| |</launch>
| -
启动Launch文件:
bash
|---|---------------------------------------|
| |roslaunch my_package turtles.launch
|
技术要点:
<group>
标签实现命名空间分组。output="screen"
参数将节点输出重定向至终端。
3.4 外设集成:游戏手柄控制机器人
场景描述:通过游戏手柄(如Xbox控制器)实时控制小乌龟运动。
操作步骤:
-
安装手柄驱动与ROS包:
bash
|---|-------------------------------------|
| |sudo apt install joystick xboxdrv
|
| |sudo apt install ros-noetic-joy
| -
启动手柄节点:
bash
|---|-----------------------|
| |rosrun joy joy_node
| -
编写手柄到话题的转换节点(Python示例):
python
|---|-----------------------------------------------------------|
| |#!/usr/bin/env python
|
| |import rospy
|
| |from sensor_msgs.msg import Joy
|
| |from geometry_msgs.msg import Twist
|
| | |
| |def joy_callback(data):
|
| |twist = Twist()
|
| |twist.linear.x = data.axes[1] * 2.0 # 左摇杆Y轴
|
| |twist.angular.z = data.axes[0] * 2.0 # 左摇杆X轴
|
| |pub.publish(twist)
|
| | |
| |rospy.init_node('joy_to_twist')
|
| |pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
|
| |rospy.Subscriber('/joy', Joy, joy_callback)
|
| |rospy.spin()
| -
启动转换节点与仿真环境:
bash
|---|-------------------------------------|
| |rosrun my_package joy_to_twist.py
|
| |rosrun turtlesim turtlesim_node
|
技术要点:
- 使用
joy
包读取手柄输入。 - 通过话题转换实现异构设备通信。
四、版本迁移与兼容性管理
4.1 跨版本迁移指南
迁移原则:
- 代码兼容性:检查API变更(如Noetic中Python 2到Python 3的迁移)。
- 依赖管理 :使用
rosdep
自动解析依赖关系。 - 构建系统 :更新
CMakeLists.txt
与package.xml
文件。
典型问题处理:
- 消息类型变更 :如
std_msgs/String
到自定义消息的迁移。 - 服务调用差异 :检查服务定义文件(
.srv
)的兼容性。
4.2 混合版本环境配置
场景描述:在单台主机上同时运行Kinetic与Noetic节点。
解决方案:
-
使用独立的工作空间与环境变量:
bash
|---|--------------------------------------------|
| |# 启动Kinetic环境
|
| |source /opt/ros/kinetic/setup.bash
|
| |roslaunch kinetic_package kinetic.launch
|
| | |
| |# 启动Noetic环境(新终端)
|
| |source /opt/ros/noetic/setup.bash
|
| |roslaunch noetic_package noetic.launch
| -
通过
ROS_MASTER_URI
实现跨版本通信:bash
|---|------------------------------------------------|
| |# 终端1(Kinetic作为Master)
|
| |export ROS_MASTER_URI=http://localhost:11311
|
| |roscore
|
| | |
| |# 终端2(Noetic作为客户端)
|
| |export ROS_MASTER_URI=http://localhost:11311
|
| |rosrun noetic_package noetic_node
|
注意事项:
- 避免同一终端中混用不同版本的
setup.bash
。 - 使用
rosversion
命令检查节点版本。
五、蓝桥云课教学体系与资源推荐
5.1 课程模块设计
模块 | 内容概述 | 推荐版本 |
---|---|---|
基础入门 | ROS架构、节点、话题、服务 | Indigo/Kinetic |
仿真与可视化 | Gazebo、RViz、RQt工具链 | Melodic |
导航与定位 | AMCL、Cartographer、MoveIt! | Noetic |
外设集成 | 摄像头、激光雷达、机械臂控制 | Noetic |
5.2 实战项目推荐
- 自主导航机器人:基于Noetic的SLAM与路径规划。
- 多机器人协作:使用Melodic的分布式通信框架。
- 机械臂抓取:结合Kinetic的MoveIt!与Gazebo仿真。
5.3 学习资源汇总
- 官方文档 :ROS Wiki
- 社区论坛 :ROS Answers
- 蓝桥云课实验 :ROS1入门与进阶实验
- 开源项目 :TurtleBot3
六、未来展望:ROS1到ROS2的平滑过渡
6.1 ROS2核心优势
- 实时性优化:DDS通信层替代ROS1的TCPROS。
- 模块化设计:支持微服务架构。
- 跨平台支持:Windows、macOS原生兼容。
6.2 迁移策略建议
- 代码重构:将Python 2代码迁移至Python 3。
- 通信接口替换 :使用
rclcpp
/rclpy
替代roscpp
/rospy
。 - 仿真验证:在Gazebo中测试ROS2节点。
6.3 蓝桥云课ROS2课程规划
- 2025年Q3:发布ROS2 Foxy基础课程。
- 2025年Q4:上线ROS2与ROS1共存实验环境。
- 2026年:全面转向ROS2教学。
结论
蓝桥云课通过完整支持ROS1 Indigo至Noetic四大LTS版本,为机器人开发者构建了从入门到精通的全链路学习路径。2025年,开发者可基于本文提供的配置方法与实战案例,快速搭建ROS1开发环境,并通过外设集成、多机器人协同等高级场景提升工程能力。未来,随着ROS2的普及,蓝桥云课将持续迭代课程体系,助力开发者抢占机器人技术制高点。
本文介绍了蓝桥云课支持的ROS1主要版本(Indigo、Kinetic、Melodic、Noetic)及其特性,重点讲解了Noetic版本的安装配置流程,包括密钥导入、软件源设置和环境变量配置。同时提供了创建工作空间、编写功能包等基础开发示例,以及多机器人控制、游戏手柄集成等实战案例。文章还涵盖版本迁移指南和混合环境配置方法,并展望了向ROS2过渡的趋势。最后推荐了蓝桥云课的教学资源和学习路径,帮助开发者快速掌握ROS1开发技能。