基于腾讯云服务构建 ROS1 Noetic 开发环境
云服务器配置信息
- 区域:首尔二区
- 实例类型:内存型 MA5
- 规格:4 核 32GiB 5Mbps
- 操作系统:公共镜像 | Ubuntu | img-22trbn9x | Ubuntu Server 20.04 LTS 64位 | 20GiB
- 系统盘:通用型 SSD 云硬盘(按量计费) 50GiB
1. 安装 ROS1 Noetic
步骤说明
bash
clear
作用:清除终端屏幕,保持界面整洁。
bash
sudo apt-get update
作用:更新本地软件包索引,确保获取到最新的软件源信息。
bash
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
作用 :将 ROS 官方软件源添加到 APT 源列表中。
$(lsb_release -sc)会自动获取当前系统的发行版代号(如focal),确保与系统匹配。
bash
sudo sh -c 'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
作用:将清华大学镜像站作为 ROS 软件源(覆盖上一条官方源),提高国内下载速度。
bash
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
作用:导入 ROS 软件源的 GPG 密钥,用于验证软件包的真实性和完整性。
bash
sudo apt-get update
作用:再次更新软件包索引,使新添加的 ROS 源生效。
bash
sudo apt-get install ros-noetic-desktop-full
作用:安装 ROS Noetic 桌面完整版,包含 ROS 核心库、常用工具、可视化界面及仿真工具。
bash
sudo apt install python3-rosdep
作用 :安装 ROS 依赖管理工具
rosdep(Python 3 版本)。
bash
sudo rosdep init
作用 :初始化
rosdep,下载并生成 ROS 依赖关系的默认配置文件。
bash
rosdep update
作用 :更新
rosdep的本地依赖数据库,确保能正确解析 ROS 包的依赖。
bash
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
作用 :将 ROS 环境变量设置命令添加到
~/.bashrc文件中,使每次打开终端时自动载入 ROS 环境。
bash
source ~/.bashrc
作用:立即生效当前终端的 ROS 环境变量设置。
bash
printenv | grep ROS
作用 :检查环境变量中所有包含
ROS的项,验证 ROS 环境是否配置成功。
bash
roscore # ctrl + c
作用 :启动 ROS 核心服务(主节点),测试 ROS 是否正常运行。按
Ctrl + C可停止。
bash
rosversion -d # noetic
作用 :输出当前安装的 ROS 发行版名称(应显示
noetic)。
2. 安装 catkin tools 并创建 ROS 工作空间
bash
# 安装 catkin tools
sudo apt install python3-catkin-tools python3-osrf-pycommon
作用 :安装
catkin_tools(ROS 构建工具)和其 Python 3 依赖,用于编译和管理 ROS 工作空间。
bash
# 创建 ros 工作空间
mkdir -p ~/catkin_ws/src
作用 :创建 ROS 工作空间目录结构,
-p确保父目录不存在时自动创建。
bash
cd ~/catkin_ws/
作用:进入工作空间根目录。
bash
catkin init
作用:初始化当前目录为 Catkin 工作空间,生成配置文件。
bash
catkin build
作用 :编译整个工作空间(虽然目前为空),生成
devel和build目录。
3. Ubuntu 下安装 C++ 编译器
bash
1. 首先安装C++编译器
sudo apt update
sudo apt install g++
作用 :更新软件包索引并安装
g++编译器,用于编译 C++ 代码。
bash
2. 安装完整的ROS构建工具
sudo apt install build-essential cmake
sudo apt install ros-noetic-catkin
sudo apt install python3-catkin-tools python3-osrf-pycommon
作用:
build-essential cmake:安装基本的编译工具链和 CMake 构建系统。ros-noetic-catkin:安装 ROS Noetic 版本的 Catkin 构建系统。- 重新安装
catkin_tools及其依赖,确保完整性。
bash
3. 检查编译器是否已正确安装
which g++ # /usr/bin/g++
g++ --version
which cmake # /usr/bin/cmake
cmake --version
作用 :验证
g++和cmake的安装路径及版本,确保可正常调用。
4. Ubuntu 下使用命令行安装 VSCode
步骤说明
bash
## 1. 导入微软 GPG 密钥
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
作用:下载微软的 GPG 公钥并转换为 apt 可识别的格式,然后将其安装到系统信任密钥目录,用于验证 VSCode 软件包签名。
bash
## 2. 添加 VS Code 仓库
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
作用:将 VSCode 的官方 APT 源添加到系统中,指定架构和密钥路径。
bash
## 3. 更新包列表并安装
sudo apt update
sudo apt install code
作用:更新软件包列表(使 VSCode 源生效),然后安装 VSCode 编辑器。
5. 通过 bash 安装 VSCode 插件
bash
## 单个插件安装
code --install-extension <插件ID或VSIX文件路径>
作用:通过命令行安装单个 VSCode 插件,插件 ID 可在 VSCode 插件市场页面找到。
bash
## 多个插件安装
code --install-extension <插件ID1> --install-extension <插件ID2>
作用:一次性安装多个 VSCode 插件。
bash
## 从 VSIX 文件安装
code --install-extension /path/to/extension.vsix
作用 :从本地的
.vsix文件安装 VSCode 插件(适用于离线安装)。
bash
这里使用 `code --install-extension ms-iot.vscode-ros` 安装对应的扩展插件。安装完成之后,使用:`cd ~/catkin_ws && code .` 看看会不会出现 .vscode 这个目录。
作用 :安装 ROS 官方 VSCode 插件,然后通过 VSCode 打开工作空间,检查是否自动生成
.vscode配置目录。
6. 创建 ROS 包的自动化脚本
6.1 创建脚本
bash
cd ~/catkin_ws && touch create_ros_package.sh && nano create_ros_package.sh
作用 :进入工作空间目录,创建名为
create_ros_package.sh的脚本文件,并用nano编辑器打开。
脚本内容:
bash
#!/bin/bash
# create_ros_package.sh
# 配置参数
WORKSPACE="$HOME/catkin_ws"
PACKAGE_NAME="$1"
DEPENDENCIES="${2:-roscpp rospy std_msgs}"
# 检查参数
if [ -z "$PACKAGE_NAME" ]; then
echo "Usage: $0 <package_name> [dependencies]"
echo "Example: $0 my_package roscpp rospy std_msgs"
exit 1
fi
# 进入工作区
cd "$WORKSPACE/src"
# 创建包
echo "Creating ROS package: $PACKAGE_NAME"
echo "Dependencies: $DEPENDENCIES"
catkin_create_pkg "$PACKAGE_NAME" $DEPENDENCIES
# 返回工作区根目录并编译
cd "$WORKSPACE"
catkin build
echo "Package created successfully!"
echo "Location: $WORKSPACE/src/$PACKAGE_NAME"
# 在 VS Code 中打开新创建的包
code "$WORKSPACE/src/$PACKAGE_NAME"
6.2 使脚本可执行
bash
chmod +x create_ros_package.sh
作用 :为脚本添加可执行权限,允许直接通过
./create_ros_package.sh运行。
6.3 创建包
bash
./create_ros_package.sh example_1 "roscpp rospy std_msgs"
作用 :运行脚本,创建名为
example_1的 ROS 包,并指定依赖为roscpp、rospy、std_msgs。
6.4 使用 C++ 创建 hello 节点
bash
cd ~/catkin_ws/src/example_1/src && touch hello.cpp && nano hello.cpp
作用 :进入包的
src目录,创建hello.cpp源文件并用nano打开编辑。
C++ 代码内容:
cpp
#include <ros/ros.h>
int main(int args, char **argv){
ros::init(args,argv,"hello");
ros::NodeHandle nh;
ROS_INFO("Hello World!");
}
作用 :创建一个简单的 ROS 节点,初始化名为
hello的节点,并通过ROS_INFO输出 "Hello World!"。
6.5 修改 CMakeLists.txt
bash
nano ~/catkin_ws/src/example_1/CMakeLists.txt
作用 :打开包的
CMakeLists.txt文件,添加编译配置。
添加内容:
txt
add_executable(hello src/hello.cpp)
target_link_libraries(hello
${catkin_LIBRARIES}
)
作用:
add_executable:定义可执行文件hello,源文件为src/hello.cpp。target_link_libraries:将可执行文件链接到 ROS 库。
6.6 更新包
bash
cd ~/catkin_ws
source devel/setup.bash
catkin build
作用:
- 返回工作空间根目录。
- 载入当前工作空间的 ROS 环境变量。
- 重新编译工作空间,使新添加的节点生效。
6.7 运行节点
bash
roscore
作用:在一个终端中启动 ROS 核心服务。
bash
rosrun example_1 hello
作用 :在另一个终端中运行
example_1包中的hello节点。
注意事项
bash
如果报错信息显示找不到包,那么就是在当前终端下没有执行下面的三个命令:
cd ~/catkin_ws
source devel/setup.bash
catkin build
说明:
cd ~/catkin_ws:确保位于工作空间根目录。source devel/setup.bash:载入当前工作空间的 ROS 环境(使系统能识别新编译的包)。catkin build:编译包(确保节点被正确构建)。
这三个命令是解决 "找不到包" 或 "找不到节点" 错误的常见步骤。