ROS从入门到精通(二) VSCode 搭建 ROS 工程环境

854 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第18天,点击查看活动详情


1 Ubuntu下安装VSCode

1.1 基本安装

步骤如下:

  • 通过国内源下载VSCode
  • 将压缩包解压并移动到usr/local目录
    sudo mv VSCode-linux-x64 /usr/local/
    
  • 获取运行权限:
    sudo chmod +x /usr/local/VSCode-linux-x64/code
    
  • 安装VSCode,注意此处只能用普通用户权限
     /usr/local/VSCode-linux-x64/code
    
  • 创建软链接:
    sudo ln -s /usr/local/VSCode-linux-x64/code /usr/local/bin/vscode
    
    之后在任意位置可通过终端输入vscode启动软件

1.2 将VSCode添加到侧边栏

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

cd /usr/share/applications
sudo vim vscode.desktop

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

在该桌面文件中添加

[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运行ROS环境步骤

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

mkdir -p xxx_ws/src
cd xxx_ws
catkin_make

3.2 启动VSCode与配置

cd xxx_ws
vscode .

快捷键ctrl + shift + B调用编译,选择catkin_make:build 为了防止每次都要选择,可以点击catkin_make:build右侧的齿轮配置默认启动方式,配置文件为tasks.json,内容替换为:

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

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

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

c_cpp_properties.json内容替换为:

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

4 创建功能包与测试

src文件夹右键Creat Catkin Package,并依次填写包名称和包依赖即可,本实验中添加roscpprospy

4.1 C++版本

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

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    ros::init(argc, argv, "helloWorld");
    ROS_INFO("hello world");
    return 0;
}

配置CMakeLists.txt

主要的几个位置

# 依赖
find_package(catkin REQUIRED 
    roscpp
    rospy
    )

# 头文件
include_directories(
include
${catkin_INCLUDE_DIRS}
)

# 可执行文件
add_executable(helloWorld helloworld.cpp)

# 链接库
target_link_libraries(helloWorld
  ${catkin_LIBRARIES}
)

ctrl + shift + B调用编译与测试

在这里插入图片描述

4.2 Python版本

测试代码

#! /usr/bin/env python

import rospy

if __name__ == "__main__":

    rospy.init_node("helloWorld_p") 
    rospy.loginfo("Hello World Python")

配置CMakeLists.txt

catkin_install_python(PROGRAMS
  scripts/helloworld.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

ctrl + shift + B调用编译与测试

在这里插入图片描述


更多内容欢迎关注我的AI频道"AI技术社"