ROS实践01 C++ Python基本实现

news/2024/5/19 20:25:57/文章来源:https://blog.csdn.net/qq_42227760/article/details/129989169

文章目录

    • 运行环境:
    • 1.1 vscode 环境配置:
      • 1)ctrl+shift+X 添加扩展插件:
      • 2)ctrl+shift+B 配置中更换为以下代码
    • 1.2 C++代码实现
      • 1)工作空间创建和编译
      • 2)功能包创建和添加依赖
      • 3)新建.cpp文件
      • 4)修改CMakeList
      • 5)运行 C++ 节点
    • 2.1 python代码实现
      • 1)在 功能包 下新建 scripts 文件夹
      • 2)添加 python 文件
      • 3)修改CMakeList
      • 4)运行 Python 节点

运行环境:

ubuntu20.04 noetic
宏基暗影骑士笔记本

1.1 vscode 环境配置:

1)ctrl+shift+X 添加扩展插件:

C/C++、Python 、ROS、CMake Tools

2)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"}]}

1.2 C++代码实现

1)工作空间创建和编译

mkdir -p time_syn_ws/src
cd time_syn_ws
catkin_make# 打开vscode
code .

2)功能包创建和添加依赖

在这里插入图片描述

在工作空间src目录下创建功能包

time_syn
roscpp rospy std_msgs

3)新建.cpp文件

在功能包src目录下新建.cpp文件
在这里插入图片描述

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

4)修改CMakeList

# 将源文件 src/demo01_pub.cpp 编译成可执行文件 demo01_pub.cpp
add_executable(demo01.cpp src/demo01.cpp)target_link_libraries(demo01.cpp${catkin_LIBRARIES}
)

5)运行 C++ 节点

ctrl+shift+B

source ./devel/setup.bash# rosrun 包名 + 可执行文件名
rosrun time_syn demo01.cpp 

在这里插入图片描述

设置永久环境变量(不用每次打开一个终端都要source ./devel/setup.bash)

gedit ~/.bashrc
# source 工作空间路径/devel/setup.bash
source /home/duduzai/time_syn_ws/devel/setup.bash

2.1 python代码实现

1)在 功能包 下新建 scripts 文件夹

2)添加 python 文件

在这里插入图片描述

3)修改CMakeList

catkin_install_python(PROGRAMSscripts/demo02.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

4)运行 Python 节点

source ./devel/setup.bash
rosrun time_syn demo01.cpp 

⭐⭐⭐嘟嘟崽 ⭐⭐⭐
⭐⭐⭐祝你成功 ⭐⭐⭐

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

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

相关文章

新电脑装机——配置硬件、软件安装卸载、注册表、路径——介绍详解

装机工具、配置、路径,介绍详解电脑配置信息电脑历史记录黑色Window Top 加入黑色(微信不能调成黑色背景)edge浏览器的配置(被edge恶心过的必看,有方法解决edge被管理、不能新建标签)设置【地址栏搜索】&am…

多元函数的基本概念——“高等数学”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是多元函数的基本概念,下面,让我们一起进入多元函数的世界吧 平面点集 多元函数的概念 多元函数的极限 多元函数的连续性 有界闭区域上多元连续函数的性质 平面点集 第一个是坐标平…

RocketMQ 事务消息 详解

🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年4月9日 &#x1…

RSA非对称加密算法原理和代码实现 信息安全 密码学

一 欧拉数论定理 1. 欧拉函数 设n为一正整数,则欧拉函数φ(n)\varphi (n)φ(n)等于0∼n−10\sim n-10∼n−1中与n互素的整数个数 比如φ(5)4\varphi (5) 4φ(5)4,因为0~5中, 1,2,3,4均与5互素,即最大公约数为1 2. 欧拉定…

采集工具助力市场营销,让您的营销更加高效

随着市场竞争的日益激烈,企业的营销策略也在不断升级。而在这个信息爆炸的时代,采集数据成为了市场营销中不可或缺的一环。为了更好地服务客户,我们公司开发了一款高效、快捷的采集工具,为您的营销活动提供有力支持。 Msray-plus&…

计算机网络习题 | 第一章:计算机网络概述

文章目录概述1、以下关于OSI环境中数据传输的过程的描述中,错误的是( )2、以下关于广域网 WAN 特点的描述中 ,错误的是( )3、以下关于计算机网络定义的描述中,错误的是( &#xff09…

【分布式 论文】之 1. MapReduce——Simplified Data Processing on Large Clusters

文章目录1. 需求 / 现存问题2. 总述3. 实现3.1 概述1. 需求 / 现存问题 输入数据通常很大,为了在合理的时间内完成计算,必须将计算分布到数百或数千台机器上。 如何并行化计算、分发数据和处理故障等问题使得原本简单的计算变得晦涩难懂,需…

chatGPA的主要功能-chatGPT深度分析

ChatGPT功能介绍 ChatGPT是基于深度学习技术的自然语言处理算法,其主要用途是生成自然语言文本,能够应用于多个自然语言处理任务。以下是其主要功能介绍: 文本生成:ChatGPT能够生成高质量的自然语言文本,可以应用于大…

Mybatis-plus学习2

一、Mybatis-plus分页操作 1.配置拦截器即可 //分页插件Beanpublic PaginationInterceptor paginationInterceptor(){return new PaginationInterceptor();} 2.直接使用Page对象 //测试分页查询Testpublic void testPage(){//参数一:当前页//参数二:页面…

关键词采集软件在SEO优化中的应用与效果

搜索引擎的优化被广泛认为是提高网站排名和在线可见性的重要方法之一。SEO人员需要进行大量的工作以确保网站的内容和标签可以被搜索引擎正确地解析和索引。在这项任务中,使用搜索引擎关键词采集软件可以帮助SEO人员完成许多繁琐的任务并简化他们的工作流程。在本文…

【C语言】数组指针-c语言的任督二脉

视频链接:bilibili 关于指针需要注意的地方 只有以下两种情况数组名表示的是整个数组 1.sizeof(数组名) 2.&数组名 除此之外数组名表示的都是首元素地址 一、字符指针 是一个指向字符的指针 int main() {char ch w;char* p &ch;//char* ch2 "abcdef"…

【TreeSet】| 深度剥析Java SE 源码合集Ⅳ

目录一. 🦁 前言二. 🦁 剥析流程2.1 类图2.2 属性2.3 构造方法2.4 添加单个元素2.5 移除单个元素2.6 查找单个元素2.7 查找接近的元素2.8 获得首尾的元素2.9 清空2.10 克隆2.11 序列化2.12 反序列化2.13 获得迭代器2.14 转换成 Set/Collection2.15 查找范…

Python 进阶指南(编程轻松进阶):二、环境配置和命令行

原文:http://inventwithpython.com/beyond/chapter2.html 环境配置是配置你的计算机环境,以便你写代码的过程。这包括安装任何必要的工具,配置它们,以及处理安装过程中的任何问题。没有一键配置这种傻瓜式操作过程,因为…

分享一个智能的问答工具,刷题和学习的好帮手

使用了这个问答工具后,感觉前后端都要被替代了,太强了。 由于本人之前很想体验,但是一直难搞,最近发现了一个免梯子的,重要事情说一遍,免梯子!是我最近发现的最好用,最快的&#xff…

OpenCV实战——多尺度FAST特征检测

OpenCV实战——多尺度FAST特征检测0. 前言1. BRISK 特征检测器1.1 BRISK 检测关键点1.2 多尺度关键点快速检测2. ORB 特征检测算法3. 完整代码相关链接0. 前言 FAST 是用于快速检测图像中关键点的方法,而 SURF 和 SIFT 算法的设计重点是尺度不变性。为了同时实现快…

【软件设计师10】软件工程

软件工程 1. 瀑布模型SDLC - 结构化 优点:结构化方法模型,每个阶段分工明确;出现问题可以向上层回溯 缺点:需求阶段难以把控,在项目初期,软件的需求几乎是不明确的,等开发完用户往往再提出问…

微信小程序 | 网易云+ChatGPT实现一个智能音乐推荐小程序

文章目录* 效果预览** 分析用户的输入产生推荐** 分析用户的选择标签进行推荐一、需求背景二、项目原理及架构2.1 实现原理(1) 基于用户的喜欢歌手推荐(2)基于用户的兴趣标签推荐(3)改进上一步推荐的结果2.…

IM即时通讯-N-如何保证消息的可靠性展示

结论先行 客户端如何在推拉结合的模式下保证消息的可靠性展示? 原则: server拉取的消息一定是连续的原则: 端侧记录的消息的连续段有两个作用: 1. 记录消息的连续性, 即起始中间没有断层, 2. 消息连续&am…

【数据结构】树与二叉树的基本概念及性质

目录 一、树的基本概念 1️⃣树的定义 2️⃣基本术语 3️⃣树的性质 二、二叉树的概念 1️⃣二叉树的定义 2️⃣特殊二叉树 3️⃣二叉树的性质 参考资料 一、树的基本概念 1️⃣树的定义 数据结构中的树是什么❓ 树是 个结点的有限集。有且仅有一个特定的称为根(上图A结点…

零基础教学必会篇(详解字符函数和字符串函数)(完结版)

各位csdn的友友们好,上次阿博给大家讲了一些简单的字符串函数的功能和模拟实现,今天就和阿博一起再上一个台阶继续拿捏它们😊😊😊 文章目录1.strstr的功能介绍2.strstr函数的模拟实现3.strtok的功能介绍4.strerror和pe…