在VSCode中新配置一个ros项目

news/2024/7/16 8:07:00 标签: vscode, ide, 编辑器

如何从零开始配置一个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.niftyadmin.cn/n/5385640.html

相关文章

三、创建脚手架和脚手架分析

三、创建脚手架 一、环境准备 1、安装node.js **下载地址&#xff1a;**https://nodejs.org/zh-cn/界面展示 2、检查node.js版本 查看版本的两种方式 node -vnode -version 出现版本号则说明安装成功&#xff08;最新的以官网为准&#xff09; 3、为了提高我们的效率&…

ELK入门(三)-Kibana

Kibana Kibana是一个开源的分析与可视化平台&#xff0c;设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等&#xff0c;直观的展示数据&#xff0c;从而达到高级…

CSS 函数详解url、min、rgb、blur、scale、rotate、translate等

随着技术的不断进步&#xff0c;CSS 已经从简单的样式表发展成为拥有众多内置函数的强大工具。这些函数不仅增强了开发者的设计能力&#xff0c;还使得样式应用更加动态、灵活和响应式。本文将深入探讨 CSS 常见的 66 个函数&#xff0c;逐一剖析它们的功能和用法&#xff0c;一…

LInux-信号1

文章目录 前言一、信号是什么&#xff1f;二、学习步骤使用kill -l命令查看信号列表可以看到有那么多信号&#xff0c;那么进程是如何识别这么多信号的呢&#xff1f; 使用kill命令终止进程信号的捕捉kill函数raise函数abort函数 Core dump如何查看自己的核心转储功能是否被打开…

Top-N 泛型工具类

一、代码实现 public class TopNUtil<E extends Comparable<E>> {private final PriorityQueue<E> priorityQueue;private final int n;/*** 构造 Top-N*/public TopNUtil(int size) {if (size < 0) {throw new IllegalArgumentException("Top-N si…

相机图像质量研究(23)常见问题总结:CMOS期间对成像的影响--紫晕

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

人工智能|深度学习——基于数字图像处理和深度学习的车牌定位

1.研究背景及研究目的和意义 车牌识别Vehicle License Plate Recognition VLPR) 是从一张或一系列数字图片中自动定位车牌区域并提取车牌信息的图像识别技术。车牌识别 以数字图像处理、模式识别、计算机视觉等技术为基础&#xff0c;是现代智能交通系统的重要组成部分&#xf…

学习JAVA的第二天(基础)

目录 基本概念 关键字 class关键字 字面量 练习 变量 定义格式 变量使用 数据类型 基本数据类型 标识符 命名规则 键盘录入 1.导包 2.创建对象 3.接受数据 运算符 算术运算符 练习 隐式转换&#xff08;自动类型提升&#xff09; 强制转换 自增自减运算符 …