在Jetson Xavier NX 开发板上使用VScode执行ROS程序详细过程

1.创建 ROS 工作空间ws

在home下打开终端输入下面指令

mkdir -p xxx_ws/src(必须得有 src)
cd 自己命名_ws
catkin_make

2.启动 vscode

cd 自己命名_ws
code .

3.vscode 中编译 ros

快捷键 ctrl + shift + B 调用编译,在上方弹窗位置选择:catkin_make:build
可以点击配置设置为默认,修改.vscode/tasks.json 文件
这里直接复制就行不用改,然后ctrl+c保存。按击ctrl+shift+b若出现下图输出证明配置成功,以后编译直接按快捷键。

{
// 有关 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"}]
}

在这里插入图片描述

4.创建 ROS 功能包

选定 src 右击 —> create catkin package
上方出现搜索框一样的栏框,在里面设置包名,如:hello_vscode,点击回车
在这里插入图片描述
添加依赖:roscpp rospy std_msgs
在这里插入图片描述

5 C++ 实现

在文件栏的 src下创建.cpp 文件,输入

#include "ros/ros.h"int main(int argc, char *argv[])
{setlocale(LC_ALL,""); #保证终端输出有中文时不乱码,或者setlocale(LC_CTYPE, "zh_CN.utf8");//执行节点初始化ros::init(argc,argv,"Hello_vscode");//输出日志ROS_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");return 0;
}

6.配置 CMakeLists.txt

取消下面两处的注释

add_executable(节点名称src/C++源文件名.cpp
)target_link_libraries(节点名称${catkin_LIBRARIES}
)

在这里插入图片描述
这里注意 CMakeLists.txt文件别找错了,其次一般节点名称和源文件名是一致的当然你改别的也行,但是要保证上下两处的节点名称一致。

7.编译执行

编译: ctrl + shift + B
在这里插入图片描述
点击小加号新建终端输入roscore
再新建终端首先输入source ./devel/setup.bash,再输出rosrun hello_vscode(创建 ROS 功能包时的包名) hello_vscode_c.cpp(在功能包的 src 下新建 cpp 文件名称)

完结!撒花~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins配置

jenkins前端常用插件: Git Parameter 、Maven Integration 、Proxmox(snapshot)、Pipeline: Multibranch(多分支流水线)、Pipeline: Stage Step、pipeline Git plugin、NodeJS Plugin、Publish Over SSH、SSH server…

python界面开发 - Menu (popupmenu) 右键菜单

文章目录 1. python图形界面开发1.1. Python图形界面开发——Tkinter1.2. Python图形界面开发——PyQt1.3. Python图形界面开发——wxPython1.4. Python图形界面开发—— PyGTK:基于GTK1.5. Python图形界面开发—— Kivy1.6. Python图形界面开发——可视化工具1.7. …

【个人学习笔记】概率论与数理统计知识梳理【六】

文章目录 第六章 样本及抽样分布一、随机抽样二、直方图与箱线图2.1 直方图2.2 箱线图 三、抽样分布总结 第六章 样本及抽样分布 好久没更新了,重新捡起来把它更完吧,可能会再开一个机器学习的笔记系列,参考用书是周志华的西瓜书。前五章主要…

Android 14.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)

1.概述 在14.0的系统rom产品定制化开发中,在6.0以后对于权限的申请,都需要动态申请,所以会在系统首次启动后,在app的首次运行时, 会弹出授权窗口,会让用户手动授予app运行时权限,在由于系统产品…

6、JavaWeb-Mybatis

P116 Mybatis-入门 Mybatis是一款优秀的持久层框架,用于简化JDBC的开发。 持久层就是三层控制中的Dao层,数据访问层/持久层, P117 Mybatis-入门-快速入门程序 步骤: 创建springboot工程,数据表和实体类 引入mybat…

【办公类-39-03】批量下载微信公众号图片(三)-微信公众号链接的爬虫下载

背景需求: 测试两种公众号图片下载, 1、UIBOT下载速度慢,也需要有UIBOT软件 【办公类-39-01】批量下载微信公众号图片(一)UIBOT图片下载-CSDN博客文章浏览阅读289次。【办公类-39-01】批量下载微信公众号图片&#…

T5模型-基于Transformer架构的通用文本到文本转换模型

T5(Text-to-Text Transfer Transformer)是由Google于2019年提出的一种基于Transformer架构的通用文本到文本转换模型。T5模型通过在大规模数据集上进行预训练,并使用迁移学习的方式在各种自然语言处理任务上取得了出色的性能。它的设计理念是…

认识JAVA数组

以下是一个Java数组的案例,展示了如何创建、初始化和访问数组中的元素: public class ArrayExample {public static void main(String[] args) {// 创建一个整数数组,长度为5int[] numbers new int[5];// 初始化数组元素numbers[0] 1;numb…

Python笔记(三)—— Python循环语句

循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。 循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础: bilibili循环轮播图 循环和判断一样,同样是程序…

XXE-XML实体注入漏洞

目录 1.xml基础 1.1什么是xml 1.2xml文档结构 1.3 什么是DTD 1.4 什么是实体 1.5 什么是外部实体 2.xxe漏洞 2.1xxe漏洞基本介绍 2.2xxe漏洞的危害 经典漏洞案例分析 3.xxe漏洞挖掘和利用 3.1. 识别潜在的XML入口 3.2. 检查XML处理逻辑 3.3. 构造试探Payload 常…

Redis核心数据结构之字典(一)

字典 概述 字典又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种保存键值对(key-value pair)的抽象数据结构,在字典中,一个键(key)可以和一个值(value)进行关联(或者说将键映射为值),这些关联的键和…

(delphi11最新学习资料) Object Pascal 学习笔记---第6章第3节(查看内存中的字符串)

6.3.8 查看内存中的字符串 ​ 通过查看字符串的元数据,可以更好地了解字符串内存管理的工作原理,尤其是涉及引用计数时。为此,我在 StringMetaTest 示例中添加了一些代码。 ​ 该程序有两个全局字符串: MyStr1 和 MyStr2。程序将…

OpenText Availability——适用于 Windows 和 Linux 服务器的高可用性和灾难恢复解决方案

OpenText Availability——适用于 Windows 和 Linux 服务器的高可用性和灾难恢复解决方案 连续复制,最大限度地减少数据丢失快速故障转移,最大限度地减少停机时间可忽略的性能影响支持物理、虚拟和基于云的系统平台 停机从多种途径侵扰 IT 企业。 从相…

最佳牛围栏(二分 + 前缀和)

最佳牛围栏 原题链接&#xff1a;https://www.acwing.com/problem/content/104/ 题目 思路 我们发现若是枚举答案的话&#xff0c;那么我们判断是否存在一个平均值大于等于mid&#xff0c;如果最优解是x&#xff0c;那么mid < x的时候&#xff0c;必然可以找到一段&#x…

算法---双指针练习-1(移动零)

移动零 1. 题目解析2. 讲解算法原理数组划分&#xff0c;数组分块&#xff08;核心思想&#xff09;如何做到 3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 数组划分&#xff0c;数组分块&#xff08;核心思想&#xff09; dest一般初始化为-1&#x…

计算机设计大赛 深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的视频多目标跟踪实现 …

16、电源管理入门之驱动Runtime PM管理

目录 1. 框架介绍 1.1 为什么需要Runtime PM Framework? 1.2 系统框架图 2. Drivers 3. Runtime PM core 4. power domain framework 5. runtime pm的sysfs 6参考: Runtime PM管理也就是设备驱动里面的电源管理,即设备驱动结构体里面的struct dev_pm_ops,只控制设…

bun实现HTTP服务器

Bun 提供了原生 Bun.serve API。它实现了 fetch 以及Node.js的 http 和 https 模块。 这些模块已被重新实现&#xff0c;以使用 Bun 的快速内部 HTTP 基础设施。随意直接使用这些模块;像 Express 这样依赖于这些模块的框架应该开箱即用。有关详细的兼容性信息&#xff0c;请参阅…

vue知识点杂记

目录 Computed 和 Watch 的区别slotfilter过滤器cookies和sessionLocalStorage和SessionStoragekeep-alivenextTick新增对象属性 Computed 和 Watch 的区别 缓存&#xff1a;computed有缓存&#xff0c;所以只有在数据和之前不一样的时候才会执行&#xff1b; watch无缓存&…

postgressql的常用sql语句

模式 默认模式是public,可以根据业务需要,创建多个模式管理不同地区的数据(比如,public是整个湖北的数据,wh是武汉的数据,xy是襄阳的数据) --创建新模式 CREATE SCHEMA wh --模式查询 查询wh模式下的dk_info表 select max(id) FROM wh.dk_info 自增序列 --新增自增序…