在VSCode中新配置一个ros项目

如何从零开始配置一个ros项目

    • 预先准备
    • 初始化ros工程
    • 运行hello_ros进行第一个示例
    • 进行编译
    • 测试

预先准备

首先要在vscode中安装(必须安装的):ros,c++,cmake,cmake tools(补全camkelist文件),chinese(汉化)

可选的:c++ extension

初始化ros工程

新建终端,在vscode中用ctrl+shift+`,就可以新建一个终端

mkdir -p ~/catkin_ws/src	创建一个子目录src,上一级目录是工作空间名称'catkin_ws',-p是递归创建文件
cd ~/catkin_ws/				进入创建的工作空间目录
catkin_make					对创建的工作空间进行编译

接下来:

cd ~/catkin_ws/src								重新打开终端,可以使用此命令进入src目录
cd src											已经位于工作空间目录,可以使用此命令进入src目录
catkin_create_pkg lio_test std_msgs rospy roscpp	创建一个名为lio_test的新功能包,功能包依赖的库有roscpp,rospy以及std_msgs

运行hello_ros进行第一个示例

在当前文件夹下,创建一个.vscode文件夹,随后将文件夹中加入一下以下几个文件

在这里插入图片描述
随后在src文件夹中新建一个hello_vscode.cpp文件,文件内容为:

#include <ros/ros.h>int main(int argc, char * argv[])
{//设置汉字也可以正常显示setlocale(LC_ALL, "");//初始化一个节点ros::init(argc, argv, "hello_vscode_c");//用ros显示消息:hello_vscode by cpp,你好ROS_INFO("hello_vscode by cpp,你好");return 0;
}

进行编译

将lio_test文件包中的src文件夹下的CMakeList.txt文件中的内容修改如下的部分:
在这里插入图片描述
随后进行编译:
在命令行窗口,进入lio_test_ws窗口(这里是以本次的编译进行举例,一般来说工作空间叫catkin_ws),输入:

catkin_make

随后编译成功,如图所示:

在这里插入图片描述

测试

开一个终端窗口,输入roscore

开另一个终端窗口,输入:

# 在工作空间下(lio_test_ws下)
source devel/setup.zsh
rosrun lio_test lio_test_node
# 这里的第一个lio_test是指的cmakelist.txt文件夹中刚开始的项目名称,lio_test_node是节点的名称,即下图中的:

在这里插入图片描述
具体可以参考bilibili上的ros1教程中的部分,以及这个(推荐):
vscode中使用cmake

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

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

相关文章

nginx优化配置

一 全局配置的六个模块简介 全局块&#xff1a;全局配置&#xff0c;对全局生效 events块&#xff1a;配置影响 Nginx 服务器与用户的网络连接 http块&#xff1a;配置代理&#xff0c;缓存&#xff0c;日志定义等绝大多数功能和第三方模块的配置 server块&#xff1a;配置…

交换瓶子【第七届】【省赛】【A组】

题目描述 有N个瓶子&#xff0c;编号 1 ~ N&#xff0c;放在架子上。 比如有5个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起2个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么简单的情况&#xff0c;显然&#…

Google插件Sider: ChatGPT Sidebar + GPTs GPT-4 Turbo Sider

Sider: ChatGPT Sidebar 可以使得满屏都是机器人&#xff0c;左侧栏可以打开访问GPT-4. 配置跳板机地址 google 搜索的右侧也有打开

ElasticSearch聚合操作

目录 ElasticSearch聚合操作 基本语法 聚合的分类 后续示例数据 Metric Aggregation Bucket Aggregation ES聚合分析不精准原因分析 提高聚合精确度 ElasticSearch聚合操作 Elasticsearch除搜索以外&#xff0c;提供了针对ES 数据进行统计分析的功能。聚合(aggregation…

Day32 文件属性 目录操作 库

文章目录 获取文件属性1.stat函数2.获取文件属性3.获取文件权限4.stat/fstat/lstat的区别&#xff1f; 目录操作库 Lib1.库的定义2.库的分类2.1 静态库2.2 动态库 3.静态库的制作4.动态库制作5.总结静态库和动态库 获取文件属性 1.stat函数 int stat(const char *path, struc…

C#,二叉搜索树(Binary Search Tree)的迭代方法与源代码

1 二叉搜索树 二叉搜索树&#xff08;BST&#xff0c;Binary Search Tree&#xff09;又称二叉查找树或二叉排序树。 一棵二叉搜索树是以二叉树来组织的&#xff0c;可以使用一个链表数据结构来表示&#xff0c;其中每一个结点就是一个对象。 一般地&#xff0c;除了key和位置…

uni-app 开发调试自动打开手机屏幕大小界面(Aidex移动端开发项目)

上效果&#xff1a; 下载Aidex的移动端项目并打开&#xff1a; 若依-ruoyi-AiDex-Uniapp: 若依-Ruoyi APP 移动解决方案&#xff0c;基于uniappuView封装的一套基础模版&#xff0c;开箱即用&#xff0c;免费开源&#xff0c;一份代码多终端适配&#xff0c;支持H5、支付宝小程…

Kotlin基础 7

1.apply函数详解 1.1. DSL /*** 为什么要传入扩展函数(泛型),而不是一个普通的匿名函数* T.()->Unit* 扩展函数里自带了接收者对象的this隐式调用* 为什么是泛型的扩展函数?* 因为是由this 隐式调用 this 类型就是泛型类型&#xff0c; 相当于this的扩展函数&#xff0c;…

Aidex移动端项目入门

运行效果 项目源码下载 若依-ruoyi-AiDex-Uniapp: 若依-Ruoyi APP 移动解决方案&#xff0c;基于uniappuView封装的一套基础模版&#xff0c;开箱即用&#xff0c;免费开源&#xff0c;一份代码多终端适配&#xff0c;支持H5、支付宝小程序、微信小程序、APP&#xff0c;实现了…

解决MobaXterm网络错误连接超时问题

报错页面&#xff1a; 报错原因&#xff1a; ①网络断开了 ②网络端口&#xff0c;端口号改变 解决办法&#xff1a; ①重新连接网络按R ②固定端口号 第一步&#xff1a;编辑------>虚拟机网络编辑器&#xff08;我的Linux在虚拟机里&#xff09; 第二步&#xff1a;用…

Chrome插件精选 — 缓存清理

Chrome实现同一功能的插件往往有多款产品&#xff0c;逐一去安装试用耗时又费力&#xff0c;在此为某一类型插件挑选出比较好用的一款或几款&#xff0c;尽量满足界面精致、功能齐全、设置选项丰富的使用要求&#xff0c;便于节省一个个去尝试的时间和精力。 1. Chrome清理大师…

如何画架构图:从概念到实践

如何画架构图&#xff1a;从概念到实践 免费在线作图工具&#xff0c;点击邀请链接注册赠送7天会员&#xff1a;https://www.processon.com/u/5d3967afe4b0208611113845 在软件开发和系统设计中&#xff0c;架构图是一种重要的工具&#xff0c;它能够帮助开发人员和利益相关者…