ROS的一些基本操作(二)

ROS入门级教程 本文讲述ROS的入门级教程,介绍ROS的安装,ROS程序的主体架构、核心概念、已有程序的编译与使用、常用的调试工具和一些指令。 阅读详情
ros订阅/发布节点编程实现

ros系统是通过各个节点完成传递话题消息或者提供服务来进行通信。

启动:roscore  (运行roscore指令后会自动启动:rosmaster,Parameter Server,rosout)
查看当前活跃节点:rosnode list
运行节点:1. rosrun ~
	     2. roslaunch ~
ros应用程序发布时,通常都是以包package为单位,查看package:rosrun package (然后按tab tab)
查看关于传送数据都能有什么操作:rosmsg
查看关于传送话题都能有什么操作:rostopic
查看当前ros系统中活跃的话题:rostopic list
来查看相关指令的功能:rossrv
查看当前系统活跃的服务:rosservice list
话题

话题和节点是ros系统中两大基本组件,节点是基本的处理单元,话题是节点间基本的通信单元之一

发布节点编程实现
过程
  1. 创建话题文件 .cpp/.py

    由四部分构成:1. 初始化ROS节点 2.向Ros Master注册节点信息,包括发布的话题名和话题消息类型。3.创建消息数据(无论是官方提供的还是自定义的消息,在消息类型文件(.msg文件)中只是声明了变量及其数据类型,因此你自己在这里需要为变量复等…)4.按照一定的频率循环发布消息。
    img

  2. 编译 .cpp文件需要编译,.py文件不需要

    保存该文件后,就该去编译了,注意cpp文件需要编译,py文件不需要。具体编译方法为:

2.1设置编译规则
​ 回到功能包目录下,找到CMakeLists.txt(设置编译规则),然后把下面两行代码复制到Install上边

   add_executable(文件名字 src/文件名字.cpp)#设置需要编译的代码文件的名字和生成的可执行文件,即把哪一个程序文件编译成按一个可执行文件

   target_link_libraries(velocity_publisher${catkin_LIBRARIES})#设置链接库,把你的可执行文件和ROS中的库做一个链接。

​ 2.2 catkin_make
​ 修改好之后就可以回到工作空间根目录去编译了。catkin_make

  1. 配置环境变量

    编译好之后再用source配置个环境变量就OK了。source devel/setup.bash

    具体的编译和配置环境变量内容在ROS学习笔记1中有介绍。

  2. 执行发布话题文件

    rosrun 文件夹名 文件名

订阅节点编程实现

订阅话题和发布话题大体思路都一样

1.创建订阅者程序 在相应的工作空间的Src下创建.cpp或.py文件

文件至少由四部分组成: 1.初始化ROS节点 2.订阅需要的话题,注册回调函数(订阅话题就像响应中断,你也不知道你订阅的话题什么时候会来,因此需要像响应终端一样,在话题没来的时候一直等待,在话题来了之后就马上调用回调函数响应,因此回调函数尽可能写的短一点。主要是打印消息或者对消息做简单的处理)3.循环等待话题消息,一旦接受到消息后就进入回调函数 4.在回调函数中完成消息的处理(此时需注意,回调函数不能太复杂,不然在程序运行的时候就光运行你的函数了,等到下一次话题消息再来也不响应。)
img

2.编译

​ 1.设置编译规则

​ 2.在工作空间中catkin_make

3.配置环境变量

​ source devel/setup.bash

4.执行订阅话题文件

​ rosrun 文件夹名 话题名

ROS保姆级0基础入门教程⭐ |第一章 ROS的概述与环境搭建(4万字教程,建议收藏) ROS全称Robot Operating System(机器人操作系统) ROS是适用于机器人的开源元操作系统; ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制; 还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于“机器人框架”; ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。 阅读详情

相关推荐

ROS系统(二)常用工具及命令

ROS常用命令与工具摘要 本文整理了ROS开发中的核心命令与工具: 包管理:catkin_create_pkg创建包,catkin_make编译,需配置环境变量(source devel/setup.bash)。 节点操作:rosrun运行节点,roslaunch启动多节点,rosnode查看节点状态。 通信调试: 话题:rostopic(查看/发布数据)、rosbag(录制回放)。 服务:rosservice调用服务,rossrv查看服务类型。 消息:rosmsg查看消息结构。 可视化工具: rqt_gr

qq_1033275663的博客 1527

ROS基本操作入门

ROS基本操作

cocoink的博客 424

二、ROS2基本操作

ROS2基本操作

weixin_44014982的博客 2218

ROS入门的基本操作

ROS入门的基本操作 一、ROS命令行工具的使用 二、创建工作空间与功能包 创建工作空间的流程 创建功能包的流程 三、发布者Publisher的编程实现 如何实现一个发布者 如何配置CMakeLIsts.txt中的编译规则 编译并运行发布者(要进入到根目录进行编译) 四、订阅者Subscriber的编程实现

星际探索的智慧 3351

ROS的通讯机制(二):话题通讯

本文主要介绍话题通讯及基本操作流程,编写相关代码完成话题通讯

m0_73900651的博客 2410

ros1 和 ros2的区别

为什么用ros2.00.概述1.基本概念基本概念:ROS网络(ROS Graph)概念简介:节点(Nodes)客户端程序库发现2. ros2 的目标3. ros2 的架构4. ros1 和ros2的通信模型 0.概述 其实是为了解决ros1中的一些问题 主要是从下面几个文章整过来 古月居的博客https://www.guyuehome.com/805 Why ROS 2? http://desi...

weixin_36628778的博客 2万+

ROS学习的基本操作指令(二)

ROS学习的基本操作指令(二) Ubuntu常规操作指令 Ubuntu常规操作指令 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统, 是基于Debian GNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造。同时,它也是ROS的得核心架构,目前的主流版本有Ubuntu14.04、16.04、18.04。...

gj295983859的博客 499

ROS学习笔记(二) ros 坐标系

ros 坐标系说明ros坐标系定义ros中常见坐标系ROS坐标系之间的关系 ros坐标系定义 通常相对于我们的身体而言 坐标轴: X -> 朝前 Y -> 朝左 Z -> 朝上 旋转: ***右手法则:***用右手握住坐标轴,大拇指 的方向朝着坐标轴朝向的正方向,四指环绕的方向定义沿着这个坐标轴旋转的正方向 绕 Z轴 旋转,称之为 航向角,使用yaw表示; 绕 X轴 旋转,称之为 横滚角,使用roll表示; 绕 Y轴 旋转,称之为 俯仰角,使用pitch表示; 举例: 我们通常用来表述小

qq_31329259的博客 8262

二、ROS2从入门到精通:保姆级基本操作全攻略,一文掌握机器人开发核心技能!

本文系统介绍ROS2(Robot Operating System 2)的核心概念与开发实践,涵盖节点管理、Topic通信、Service服务、Action动作等核心机制,以及参数配置、Bag数据记录与colcon构建工具的使用。通过详细命令示例和工作空间配置指南,帮助开发者快速掌握ROS2开发全流程。文章还包含VS Code环境配置建议和调试工具介绍,适合ROS2初学者和需要系统复习的开发者参考。

携梦问道的博客 1082

【ROS】—— ROS快速上手(一)

📢本系列将依托赵虚左老师的ROS课程,写下自己的一些心得与笔记。📢 文章可能存在疏漏的地方,恳请大家指出。

sinat_52032317的博客 2998

Nornir自动化简单介绍-网络设备信息收集

作为网工,学会通过执行脚本,可以自动化的完成日常一些设备相关配置或信息收集等工作,可以说是事半功倍。 Nornir就是这样一个自动化网络运维工具。按照官网上的说明: Nornir是用python编写的自动化框架,可与python一起使用。Nornir旨在通过提供一个纯Python框架来解决这些问题。 详细参考: Github GitHub - nornir-automation/nornir: Pluggable multi-threaded framework with inventory .

Gun&rose 7805

ROS基本操作

ros1机器人基本操作

从原理到实践,探索 AI、机器人、编程与科研技术。 1144

已过tiktok校招客户端,面经分享

面试的话, 一天面完3面, 效率很高, 三天之后就发了offer 字节邮件里面也说了不能泄露面试题, 那我就把我秋招参与美团,字节,腾讯,阿里面试被问到的全部问题总结着写出来了, 这其实是我每一轮面试完之后我都会总结哪里答对了, 哪里没有答对, 总结了一大堆问题出来. 答案未必正确, 我只是给自己写了个简单的一句话概括, 可能不够完善, 建议看官自行回答一下这些问题 二本非科班, 暑假在字节实习过, 不过不是tiktok部门, 因此秋招就没啥时间准备面试了, 只投了几个大厂, 顺便也在字节跨部门转正,

a1472750149的博客 1307

【ROS】—— ROS通信机制——话题通信(二)

📢本系列将依托赵虚左老师的ROS课程,写下自己的一些心得与笔记。📢 文章可能存在疏漏的地方,恳请大家指出。机器人是一种高度复杂的系统性实现,在机器人上可能集成各种传感器(雷达、摄像头、GPS…)以及运动控制实现,为了解耦合,在ROS中每一个功能点都是一个单独的进程,每一个进程都是独立运行的。更确切的讲,ROS是进程(也称为Nodes)的分布式框架。话题通信(发布订阅模式)服务通信(请求响应模式)参数服务器(参数共享模式)

sinat_52032317的博客 4383

华为灵衢UB总线介绍

华为发布"灵衢"(UB)超节点互联协议,旨在构建支持AI大模型计算的基础设施。该协议采用统一内存语义和对等架构,使设备可直接访问远程内存,实现资源池化。技术突破包括2.1微秒超低时延和TB级带宽,支持64节点、52万张昇腾卡的集群互联。相比传统RDMA,"灵衢"更注重系统级资源调度,而非单纯数据传输。华为开放技术规范,推动生态建设,已有厂商开发兼容IP核。"灵衢"可适应x86、RISC-V等架构,未来将扩展至百万卡规模集群。

技术引领业务创新 4425

光模块MCU开发全解析:从架构原理到固件调试实战

在高速光模块中,MCU并非传统印象里的核心处理器,而是负责数字诊断、闭环控制和协议管理的嵌入式管家。随着800G、1.6T模块的普及,MCU与DSP/SoC的协同、I2C总线通信、ADC采集、APC/TEC控制等低速域任务愈发关键。理解MCU的选型规格、启动流程和固件设计,是保障光模块稳定运行的基础。本文从光模块架构切入,剖析MCU的角色定位,详细拆解I2C从机实现、电芯片配置、校准与升级等工程细节,并结合实际调试经验梳理常见故障与排查思路,为嵌入式工程师提供一份可落地的光模块MCU开发指南。

weixin_29192365的博客 364

ROS基本操作(新手必看教程)

1. 创建 ROS 工作空间 启动 ROS $ roscore 创建工作环境 $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace 编译 ROS 程序 $ cd ~/catkin_ws $ catkin_make 添加程序包到全局路径 $ echo "source catkin_ws/devel/set...

鬼技的博客 1万+

一种导弹追踪算法的MATLAB仿真实现

以下是一个用于模拟机动变轨导弹和防空导弹追踪过程的 MATLAB 代码,同时会提供 3D 效果展示。你可以运行这段代码,从而观察机动变轨导弹和防空导弹的速度与位置变化。

SmartGridequation的博客 933

ROS软路由的基本操作

ROS软路由的基本操作 一、IP地址的设置 这里用setup进行配置,也可用其他方式进行。 输入a,输入IP地址,格式如:192.168.0.1/24;输入g,设置默认网关地址。 设置IP和网关完成后的界面。 二、路由设置 为了管理方便,我们可以把网卡接口名称做修改。如:内网卡为LAN,外网卡为WAN。 相应的IP地址也做了修改。 在IP–Routes中,设置路由,即网关地址。 三、NAT设置 选择IP–Firewall,添加一条NAT规则。 做源地址srcnat的地址欺骗maquerade。

qq_40907977的博客 4182

保姆级教程:用Wireshark抓包分析10M汽车以太网PLCA轮询机制(附pcap文件)

本文详细介绍了10M汽车以太网PLCA轮询机制的抓包分析与性能优化方法。通过Wireshark实战教程,解析PLCA协议的时分多址特性、总线型拓扑结构及带宽优化策略,帮助工程师提升车内网络的可靠性和实时性。附赠pcap文件供实践参考。

wdx01234567的博客 239

国科大作业考试资料《人工智能原理与算法》2024新编-第三次作业整理

1. 你的目标是让机器人走出迷宫。机器人面朝北,开始位置在迷宫中间。你可以让机器人转向面朝东、南、西或北。你可以让机器人向前走一段距离,在撞墙之前它会停步。 (1)将问题形式化。状态空间有多大? (2)在迷宫中游走,在两条路或更多路交叉的路口可以转弯。重新形式化这个问题。现在状态空间有多大? (3)从迷宫的任一点出发,我们可以朝四个方向中的任一方向前进直到可以转弯的地方,而且我们只需要这样做。重新对这个问题进行形式化。我们需要记录机器人的方向吗? 2. 传教士和野人问题

MatsumotoChrikk 984

【ROS2】MOMO的鱼香ROS2(二)ROS2入门篇——ROS2初体验

【ROS2】MOMO的鱼香ROS2(二)ROS2入门篇——ROS2初体验

qq_44703886的博客 1万+

基于HetConv与Dual策略的YOLOv8轻量化设计-CSPHet结构的优化与实现

在计算机视觉中,YOLOv8作为目标检测领域的最新版本,通过引入多种改进来提升检测精度和速度。然而,提升精度和保持实时性能往往需要更多参数与计算量。本文提出一种结合Dual思想与HetConv的新型轻量化结构,称为CSPHet。CSPHet能够在保持YOLOv8检测精度的基础上有效减少约70万参数量,实现模型的轻量化和速度的提升。HetConv(Heterogeneous Convolution)是一种混合卷积技术,通过同时使用1x1、3x3等不同大小的卷积核,来捕捉不同尺度的特征。

博客 1324

ROS入门知识介绍二 ROS话题、消息,ROS launch等

在本例中,'[2.0, 0.0, 0.0]'表示linear的值为x=2.0, y=0.0, z=0.0,而'[0.0, 0.0, 1.8]'是说angular的值为x=0.0, y=0.0, z=1.8。在本例中,2.0是linear的值,而1.8则是angular的值。这一选项(两个破折号)用来告诉选项解析器,表明之后的参数都不是选项。这会弹出一个新窗口,可以在左上角的文本框里面添加任何想要绘制的话题。然而,这种推荐的标准做法被认为是。这是一个十分复杂的例子,因此让我们来详细分析一下其中的每一个参数。

weixin_42259447的博客 1318

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

制作ROS小车系列(二)——开始ROS上位机导航前的准备

制作ROS小车系列(二)——开始ROS上位机导航前的准备 目录制作ROS小车系列(二)——开始ROS上位机导航前的准备一、系统准备二、上位机和下位机通讯方式选择三、到达的效果演示 一、系统准备 1、上位机系统的安装 本项目采用的系统配置为ubuntu 16.04+ROS Kinetic,采用的是工控机(大家也可以使用树莓派,这部分的安装参考博客:树莓派安装教程) ubuntu16.04的安装比较简单这里不再赘述,系统镜像自行下载:云盘资料提取码:5vyc 安装好了ubuntu后大家就可以安装ros系统了。具

weixin_45315065的博客 3197

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ROS入门_1.19 总结篇: ROS基础概念与基本操作

一:ros的系统架构     ros系统架构主要分为三个部分: 文件系统级 计算图级 开源社区级 1. 文件系统级 功能包(package):是ROS中软件组织的基本形式,一个功能包具有最小的结构和最少的内容,用于创建ROS程序;--指的是一种特定的文件结构和文件夹组合 功能包清单:manifests.xml  通过这个文件实现对功能包的管理; 功能包集(stack):将几

ShuaiWang优快云的博客 9517

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 使用pcl批量显示pcd点云数据
下一篇: 点云pcd文件投影到平面bev视角
小巫山云子
博客等级 码龄6年 1477粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值