IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【ROS进阶】一文讲清如何在VScode中配置ROS编程环境 -> 正文阅读

[开发工具]【ROS进阶】一文讲清如何在VScode中配置ROS编程环境


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

在这里插入图片描述

2、catkin_tool

在这里插入图片描述

二、环境配置

1、创建工作空间

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

在这里插入图片描述

2、vscode打开工作空间

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

code .

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

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

在这里插入图片描述

3、创建功能包

(1)终端方法

语法:catkin_create_pkg <package_name>[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;
在这里插入图片描述

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
在这里插入图片描述

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

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:06:52  更:2022-05-10 12:08:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:24:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码