基于腾讯云服务构建 ros1 noetic 开发环境

基于腾讯云服务构建 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

作用 :编译整个工作空间(虽然目前为空),生成 develbuild 目录。


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 包,并指定依赖为 roscpprospystd_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

作用

  1. 返回工作空间根目录。
  2. 载入当前工作空间的 ROS 环境变量。
  3. 重新编译工作空间,使新添加的节点生效。

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:编译包(确保节点被正确构建)。
    这三个命令是解决 "找不到包" 或 "找不到节点" 错误的常见步骤。
相关推荐
翼龙云_cloud3 小时前
阿里云渠道商:云服务计费 按量 包年 预留实例怎么选?
服务器·阿里云·云计算
cloud studio AI应用3 小时前
CodeBuddy 一周更新亮点丨IDE 新增 Hooks 等功能、CLI 新增Prompt 建议、SDK 自定义工具支持
腾讯云·ai编程·codebuddy
gaize12134 小时前
阿里云ECS云服务器怎么样?值得入手吗?最新测评
服务器·阿里云·云计算
博思云为4 小时前
企业级智能PPT生成:Amazon云+AI驱动,全流程自动化提效
人工智能·语言模型·云原生·数据挖掘·云计算·语音识别·aws
2401_865854885 小时前
腾讯云的IP是原生IP吗?
tcp/ip·云计算·腾讯云
翼龙云_cloud5 小时前
腾讯云渠道商:新手怎么在腾讯云 CVM 搭建 Ghost 博客?
运维·云计算·腾讯云
因_果_律5 小时前
AWS 自研 AI 芯片 Trainium3 全面解析
人工智能·云计算·aws
ChineHe5 小时前
Docker基础篇001_Docker入门指南(基于官方教程,5W字详细版)
运维·docker·微服务·容器·云计算·devops
亚林瓜子5 小时前
AWS API Gateway添加OAuth2请求头传递app id信息
云计算·gateway·aws·oauth2·请求头·principalid