【ROS进阶】一文讲清如何在VScode中配置ROS编程环境

文章目录

  • 一、安装插件
    • 1、ROS
    • 2、catkin_tool
  • 二、环境配置
    • 1、创建工作空间
    • 2、vscode打开工作空间
    • 3、创建功能包
      • (1)终端方法
      • (2)vscode方法
    • 4、创建配置json文件
      • (1)自动生成的json文件
      • (2)tasks.json
    • 5、编写ROS节点文件进行测试
    • 6、修改编译规则
    • 7、节点编译
      • (1)终端方法
      • (2)vscode方法
    • 8、运行ROS MASTER
      • (1)终端方法
      • (2)vscode方法
    • 9、运行节点
      • (1)终端方法
      • (2)Vscode方法
  • 三、VScode快捷键说明

ROS编程有很多编辑器,与Vim、Gedit等相比,使用VS code进行ROS编程具有两大优势:一是为ROS编程提供较好的编辑环境,二是可以轻松地实现函数查看和文件跳转。本文提供两种ROS编译方法:终端编译和VScode编译。在实际测试过程中,作者使用的系统是ubuntu20.04版本,所有指令亲测可用。

由于vscode官网不稳定,提供ubuntu版本的vscode下载链接:
链接:https://pan.baidu.com/s/1qN5E-51QKnxgQLCsV7BelA?pwd=2q4l 提取码:2q4l

一、安装插件

1、ROS

【ROS进阶】一文讲清如何在VScode中配置ROS编程环境_第1张图片

2、catkin_tool

【ROS进阶】一文讲清如何在VScode中配置ROS编程环境_第2张图片

二、环境配置

1、创建工作空间

#创建并初始化工作空间
mkdir -p ~/test_ws/src 
cd ~/test_ws/src 
catkin_init_workspace
#编译工作空间
cd ~/test_ws/
catkin_make
#设置工作变量
source devel/setup.bash

【ROS进阶】一文讲清如何在VScode中配置ROS编程环境_第3张图片

2、vscode打开工作空间

在文件夹下,输入code . 可以直接打开工作空间。

code .

因为安装了ROS插件,VScode会直接识别catkin环境,并且自动生成.vscode文件夹,里面保含c_cpp_properties.json、settings.json 两个文件。

c_cpp_properties.json主要是includePath参数,当有自定义头文件时,需要在其内添加。
setting.json主要是ROS使用python编程,python相关配置,以及其它配置。我这里没有做出改动。

【ROS进阶】一文讲清如何在VScode中配置ROS编程环境_第4张图片

3、创建功能包

(1)终端方法

语法:catkin_create_pkg [depend1][depend2][depend3]

#创建功能包
$ cd ~/catkin_ws/src
$ catkin_create_pkg test_pkg std_msgs rospy roscpp
#编译功能包
$ cd ~/catkin_ws
$ catkin_make

$ source ~/catkin_ws/devel/setup.bash

(2)vscode方法

在左侧资源管理器找到我们创建的工作区中的src文件夹,右键src选择create catkin package:

弹出的第一个框(package name)填写你的功能包名称,这个是自定义,我命名为test_pkg;
弹出的第二个框(dependencies)填写你用到的功能包名称,这里填roscpp rospy std_msgs;
【ROS进阶】一文讲清如何在VScode中配置ROS编程环境_第5张图片

4、创建配置json文件

(1)自动生成的json文件

c_cpp_properties.json和settings.json自动生成不需要修改。

(2)tasks.json

按下ctrl + shfit + p输入指令tasks: configure task,然后会下拉出许多,选择catkin_make: build 会自动生成tasks.json文件。

5、编写ROS节点文件进行测试

在test_pkg文件夹下src文件夹内创建helloworld.cpp 文件

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    //执行 ros 节点初始化
    ros::init(argc,argv,"hello");
    //创建 ros 节点句柄(非必须)
    ros::NodeHandle n;
    //控制台输出 hello world
    ROS_INFO("hello world!");

    return 0;
}

6、修改编译规则

编译语法:

add_executable(节点名 src/文件名)
target_link_libraries(节点名  ${catkin_LIBRARIES})
## Declare a C++ executable
## With catkin_make all packages are built within a single CMake context
## The recommended prefix ensures that target names across packages don't collide
# add_executable(${PROJECT_NAME}_node src/test_pkg_node.cpp)

## Specify libraries to link a library or executable target against
# target_link_libraries(${PROJECT_NAME}_node
#   ${catkin_LIBRARIES}
# )

在test_pkg文件夹下CmakeLsit.txt文件内添加:

add_executable(hello src/helloworld.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})

7、节点编译

(1)终端方法

catkin_make

(2)vscode方法

执行快捷键:ctrl+shift+b

8、运行ROS MASTER

(1)终端方法

roscore

(2)vscode方法

执行快捷键ctrl + shfit + p,再输入ROS:START
【ROS进阶】一文讲清如何在VScode中配置ROS编程环境_第6张图片

9、运行节点

(1)终端方法

source devel/setup.bash 
rosrun test_pkg hello

(2)Vscode方法

执行快捷键ctrl + shfit + p输入ROS:Run a Ros executable, 依次输入你创建的功能包的名称以及节点名称(即编译成功后二进制文件的名称)

三、VScode快捷键说明

ctrl+shift+p:调出用于执行命令的输入框
ctrl+shift+b:编译

参考: ROS支持的IDE:http://wiki.ros.org/IDEs VS
code编译ROS教程:https://marketplace.visualstudio.com/items?itemName=ms-iot.vscode-ros
博客:https://blog.csdn.net/g944468183/article/details/123759886

你可能感兴趣的