ROS2从入门到精通0-3:VSCode 搭建 ROS2 工程环境

目录

  • [0 专栏介绍](#0 专栏介绍)
  • [1 Ubuntu下安装VSCode](#1 Ubuntu下安装VSCode)
    • [1.1 基本安装](#1.1 基本安装)
    • [1.2 将VSCode添加到侧边栏](#1.2 将VSCode添加到侧边栏)
  • [2 VSCode集成相关插件](#2 VSCode集成相关插件)
  • [3 VSCode运行ROS2环境步骤](#3 VSCode运行ROS2环境步骤)
    • [3.1 安装编译依赖项](#3.1 安装编译依赖项)
    • [3.2 创建工作空间和源码空间](#3.2 创建工作空间和源码空间)
    • [3.3 启动VSCode与配置](#3.3 启动VSCode与配置)
  • [4 测试工程环境](#4 测试工程环境)
    • [4.1 C++版本](#4.1 C++版本)
    • [4.2 Python版本](#4.2 Python版本)

0 专栏介绍

本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。

🚀详情:《ROS2从入门到精通》


1 Ubuntu下安装VSCode

1.1 基本安装

步骤如下:

  • 通过国内源下载VSCode

  • 将压缩包解压并移动到usr/local目录

    shell 复制代码
    sudo mv VSCode-linux-x64 /usr/local/
  • 获取运行权限:

    shell 复制代码
    sudo chmod +x /usr/local/VSCode-linux-x64/code
  • 安装VSCode,注意此处只能用普通用户权限

    shell 复制代码
     /usr/local/VSCode-linux-x64/code
  • 创建软链接:

    shell 复制代码
    sudo ln -s /usr/local/VSCode-linux-x64/code /usr/local/bin/vscode

    之后在任意位置可通过终端输入vscode启动软件

1.2 将VSCode添加到侧边栏

进入application文件夹并新建桌面文件

shell 复制代码
cd /usr/share/applications
sudo vim vscode.desktop

根据应用取名***.desktop,该方法适用于其他应用。

在该桌面文件中添加

shell 复制代码
[Desktop Entry]
Encoding=UTF-8
Name=VSCode
Comment=VSCode
Exec=/usr/local/VSCode-linux-x64/code
Icon=/usr/local/VSCode-linux-x64/resources/app/resources/linux/code.png
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

对于其他应用,主要修改四个项目

  • Name
  • Comment
  • Exec
  • Icon

前两个随便描述,Exec为应用程序可执行文件的路径;Icon为应用程序图标的路径。

2 VSCode集成相关插件

主要包含:

  • C/C++ Microsoft

  • C++ Intellisense austin

  • CMake Tools Microsoft

  • Python Microsoft

  • ROS Microsoft

3 VSCode运行ROS2环境步骤

3.1 安装编译依赖项

  • 创建虚拟环境,原理可看Anaconda安装与Python虚拟环境配置保姆级图文教程(附速查字典)

    shell 复制代码
    conda create -n ros2 python=3.10
  • 切换到虚拟环境

    shell 复制代码
    conda activate ros2
  • 安装colcon构建系统

    shell 复制代码
    pip install -U colcon-common-extensions
  • 安装其他依赖项

    shell 复制代码
    pip install catkin_pkg numpy lark setuptools==58.2.0
    conda install -c conda-forge gcc=12.1.0

3.2 创建工作空间和源码空间

shell 复制代码
mkdir -p xxx_ws/src
cd xxx_ws
colcon build

3.3 启动VSCode与配置

shell 复制代码
cd xxx_ws
vscode .

新建.vscode目录,添加配置文件tasks.json,内容替换为:

json 复制代码
{
    // 有关 tasks.json 格式的文档,请参见
        // https://go.microsoft.com/fwlink/?LinkId=733558
        "version": "2.0.0",
        "tasks": [
            {
                "label": "colcon:build", //代表提示的描述性信息
                "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
                "command": "colcon build",//这个是我们需要运行的命令
                "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES="pac1;pac2"
                "group": {"kind":"build","isDefault":true},
                "presentation": {
                    "reveal": "always"//可选always或者silence,代表是否输出信息
                },
                "problemMatcher": "$msCompile"
            }
        ]
    }

即可通过快捷键ctrl + shift + B调用编译

编译后.vscode文件夹中会产生

  1. c_cpp_properties.json: 与C/C++运行头文件、库文件配置有关
  2. settings.json: 与Python解释器有关

c_cpp_properties.json内容替换为:

json 复制代码
{
  "configurations": [
      {
          "browse": {
              "databaseFilename": "",
              "limitSymbolsToIncludedHeaders": true
          },
          "includePath": [
              "/opt/ros/humble/include/**",
              "/usr/include/**",
              "/usr/lib/**",
              "/usr/local/include",
              "${workspaceFolder}/**"
          ],
          "name": "ROS2",
          "defines": [],
          "compilerPath": "/usr/bin/g++",
          "cStandard": "gnu17",
          "cppStandard": "c++17",
          "intelliSenseMode": "linux-gcc-x64"
      }
  ],
  "version": 4
}

4 测试工程环境

4.1 C++版本

测试代码(暂时不用管什么意思)

cpp 复制代码
#include "rclcpp/rclcpp.hpp"

class HelloWorldNode : public rclcpp::Node
{
    public:
        HelloWorldNode() : Node("node_helloworld")
        {
            while(rclcpp::ok())
            {
                RCLCPP_INFO(get_logger(), "Hello World");
                sleep(1);
            }
        }
};

int main(int argc, char * argv[])                               
{
    rclcpp::init(argc, argv);                        
    rclcpp::spin(std::make_shared<HelloWorldNode>()); 
    rclcpp::shutdown();                               
    return 0;
}

配置CMakeLists.txtpackage.xmlctrl + shift + B调用编译与测试

4.2 Python版本

测试代码(暂时不用管什么意思)

python 复制代码
#!/usr/bin/env python3 
# -*- coding: utf-8 -*-

import rclpy                                 
from rclpy.node import Node                     
import time

def main(args=None):                             
    rclpy.init(args=args)                        
    node = Node("node_helloworld")             
    
    while rclpy.ok():                           
        node.get_logger().info("Hello World")    
        time.sleep(0.5)                        
    
    node.destroy_node()                       
    rclpy.shutdown()                            

配置setup.cfgsetup.pypackage.xmlctrl + shift + B调用编译与测试

至此完成VSCode搭建ROS2工程环境


🔥 更多精彩专栏

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

相关推荐
IT_陈寒7 小时前
JavaScript 性能优化:5 个被低估的 V8 引擎技巧让你的代码快 200%
前端·人工智能·后端
Juchecar7 小时前
一文讲清 PyTorch 中反向传播(Backpropagation)的实现原理
人工智能
黎燃7 小时前
游戏NPC的智能行为设计:从规则驱动到强化学习的演进
人工智能
机器之心8 小时前
高阶程序,让AI从技术可行到商业可信的最后一公里
人工智能·openai
martinzh8 小时前
解锁RAG高阶密码:自适应、多模态、个性化技术深度剖析
人工智能
机器之心8 小时前
刚刚,李飞飞空间智能新成果震撼问世!3D世界生成进入「无限探索」时代
人工智能·openai
scilwb8 小时前
Isaac Sim机械臂教程 - 阶段1:基础环境搭建与机械臂加载
人工智能·开源
舒一笑8 小时前
TorchV企业级AI知识引擎的三大功能支柱:从构建到运营的技术解析
人工智能
掘金酱8 小时前
🎉 2025年8月金石计划开奖公示
前端·人工智能·后端
鹏多多9 小时前
纯前端人脸识别利器:face-api.js手把手深入解析教学
前端·javascript·人工智能