• 2024-11-10ROS2_机器人节点模板01_(万字?)_基于动作的实现
    事先声明在typora上做笔记时曾发生过数据丢失的问题,同时在转传到csdn上的时候也有轻微的问题,图片以及mermaid图。如果看的不够清晰可以留言,我将视情况提供原版markdown文件。一些建议请在阅读这份笔记时充分利用目录本笔记包含非常多拓展内容和衍生知识,你可以先阅读重
  • 2024-11-01ROS2:节点
    节点ROS2中,节点是一个抽象的实体,可以代表某类特定功能的抽象集合体,可以存在于进程或线程中是ROS2的基础功能的载体,所有通信都需要通过节点来实现节点和节点执行器节点执行器executor是协调和调度节点运作的实体,并响应各类通信的回调结果每个进程有一个或多个节点执行器,每个节
  • 2024-10-16【ROS2实操三】动作通信
    概念关于action通信,我们先从之前导航中的应用场景开始介绍,描述如下:        机器人导航到某个目标点,此过程需要一个节点A发布目标信息,然后一个节点B接收到请求并控制移动,最终响应目标达成状态信息。        乍一看,这好像是服务通信实现,因为需求中要A发送
  • 2024-10-11ROS2 如何实现发布者和订阅者
    1、创建工作空间ros2_workspacecdqhr_ws/srcros2pkgcreatetest_moudle--build-typeament_cmake--dependenciesrclcpp目录格式如上图2、创建订阅者和发布者code创建发布者节点在路径:/qhr_ws/src/test_moudle/src下创建 talker.cpp的文件,内容如下:#in
  • 2024-09-17rclcpp和rclpy中的rcl是什么英文单词的缩写吗?
    问题描述:rclcpp和rclpy中的rcl是什么英文单词的缩写吗?问题解答:在ROS2中, rcl 、 rclcpp 和 rclpy 都是指代ROS2的客户端库(ClientLibraries)的不同部分,其中: rcl 是"ROSClientLibrary"的缩写,它是ROS2的核心客户端库,提供了跨语言的通用接口和功能。 rclcpp
  • 2024-09-14ROS2图形化方式新建功能包工具- Turtle Nest
    提示:全文AI生成。链接:https://github.com/Jannkar/turtle_nest配置TurtleNest使用说明(中文版)一、TurtleNest简介正如海龟巢是幼海龟的诞生地,ROS2TurtleNest是ROS2包的诞生和成长之地。TurtleNest提供了一个易用的图形用户界面(GUI),简化了ROS2包的创建
  • 2024-08-24Ros2 vscode 调试运行
    1.编译调试版本:在使用colconbuild编译工作区时,你需要确保以调试模式编译,添加--cmake-args-DCMAKE_BUILD_TYPE=Debug参数:colconbuild--cmake-args-DCMAKE_BUILD_TYPE=Debug2.使用gdb进行调试gdb是一个常用的调试工具,可以帮助你在命令行中调试ROS2节点。步
  • 2024-08-242.ros2创建话题+发布消息(VScode环境搭建+编写)
    前言:这是在1.ROS2安装-创建节点的基础上进行改进的,由于ubuntu自带的nano和vim在编写的时候不是很方便,在这教大家怎么用VScode进行编写代码1.Vscode安装1.1下面是Vscode的deb网盘连接,你也可以去官网下载        官网连接:DownloadVisualStudioCode-Mac,Linux,
  • 2024-08-08Robot Operating System——深度解析单线程执行器(SingleThreadedExecutor)执行逻辑
    大纲创建SingleThreadedExecutor新增Nodeadd_nodetrigger_entity_recollectcollect_entities自旋等待get_next_executablewait_for_workget_next_ready_executableTimerSubscriptionServiceClientWaitableAnyExecutableexecute_any_executable参考资料在ROS2中,我
  • 2024-08-01Robot Operating System——内部审查(Introspection)Service
    大纲introspection_service检验Parameter值和类型修改内部审查(Introspection)功能的状态完整代码introspection_client完整代码测试参考资料在ROS2(RobotOperatingSystem2)中,内部审查(Introspection)是一种强大的功能,它允许用户和开发者查询和理解系统中的实时状态和
  • 2024-07-27Robot Operating System——AsyncParametersClient监控Parameters的增删改行为
    大纲同步创建SyncParametersClient设置监控回调回调函数主体测试完整代码异步创建AsyncParametersClient设置监控回调测试完整代码在《RobotOperatingSystem——Parameter设置的预处理、校验和成功回调》一文中,我们使用Node::add_post_set_parameters_callback设
  • 2024-07-21在ROS2 - humble 中做一个节点
    ROS2(RobotOperatingSystem2)中的节点(Node)是ROS2系统中的一个核心概念,它代表了执行特定任务的进程或程序模块。节点定义:    在ROS2中,节点是系统中最小的处理单元,负责执行特定的任务或功能。每个节点都具有独立的处理能力和通信能力,可以与其他节点进行交互。功能: 
  • 2024-07-10【ROS2】中级-编写动作服务器和客户端(C++)
    目标:用C++实现一个动作服务器和客户端。教程级别:中级 时间:15分钟 目录 背景 先决条件 任务1.创建custom_action_cpp包2.编写动作服务器3.编写动作客户端 摘要 相关内容 背景动作是ROS中异步通信的一种形式。动作客户端向动作服务器发送目标请求。动作
  • 2024-07-09ros2
    注:已从RoboMaster退队,懒得更新第一章ros2介绍1.1ros为什么会出现做一个机器人是非常复杂的一件事情,因为一个机器人需要涉及到多个部分,而且这些部分之间还要进行通信。例如设计一个像下图一样的轮式移动机器人,我们对其进行拆解。可以分为感知、决策、控制三个部分感知部分
  • 2024-07-01ROS2创建简单的C++功能包
    1.创建功能包终端下,进入ws00_helloworld/src目录,使用如下指令创建一个C++功能包:ros2pkgcreatepkg01_helloworld_cpp--build-typeament_cmake--dependenciesrclcpp--node-namehelloworld执行完毕,在src目录下将生成一个名为pkg01_helloworld_cpp的目录,且目录中已经
  • 2024-05-20创建hello_world节点、编译、运行
    1、在功能包的src目录下创建源文件cd hello_world_ws/src/hello_world_pkg/srctouch hello_world.cpp#include"rclcpp/rclcpp.hpp"intmain(intargc,char**argv){  rclcpp::init(argc,argv);  autonode=std::make_shared<rclcpp::Node>("hello_w
  • 2024-05-14ROS学习日记:(报错)terminate called after throwing an instance of 'rclcpp::exceptions::RCLInvalidArgum
    论坛里的一个老哥给出答案https://discourse.ros.org/t/how-to-shutdown-and-reinitialize-a-publisher-node-in-ros-2/4090就是我在初始化环境前先初始化了节点autonode=std::make_shared<Static_tf_broadcaster>(argv);rclcpp::init(argc,argv);rclcpp::spin(nod
  • 2024-04-26ROS2学习--POP方法编写C++节点 debug过程
    一、编写C++节点并测试 1.创建功能包C++功能包使用ament-camke作为编译基础,依赖为rclcpp。打开终端,进入town_ws/src运行下面的指令,目录结构如下ros2pkgcreatevillage_wang--build-typeament_cmake--dependenciesrclcpp2.创建节点village_wang/src下创建一个wang2.cp
  • 2024-03-14ros2中Qos的C++配置方法
    1.dds_debug.hpp#ifndefDDS_DEBUG__DDS_DEBUG_HPP_#defineDDS_DEBUG__DDS_DEBUG_HPP_#include<rclcpp/rclcpp.hpp>#include<rclcpp/qos.hpp>#include<rmw/types.h>#include<sensor_msgs/msg/imu.hpp>constrmw_qos_profile_tmy_cus
  • 2024-01-19重复spin问题
    ROS2重复spin问题报错描述:在执行回调函数时,报错terminatecalledafterthrowinganinstanceof'std::runtime_error'what():Node'/workflow_control_node'hasalreadybeenaddedtoanexecutor.[ros2run]:Aborted;原因在回调函数中又执行了rclcpp::spin监听函
  • 2023-11-20ROS2 话题通讯
    1.发布者模板//1.包含头文件#include<memory>#include"rclcpp/rclcpp.hpp"#include"project_msg_data/msg/stu.hpp"usingnamespacestd::chrono_literals;/*需求:以某个固定频率发送文本“helloworld!”,文本后缀编号,每发送一条消息,编号递增1。步骤:1.包含头
  • 2023-11-02ros2 创建发布和服务
    1.创建工作空间mkdir-pdev_ws/src2.创建功能包ros2pkgcreatetest_demo--build-typeament_cmake--node-namemy_demo--dependenciesstd_msgsrclcpp 3.创建发布topic  3.1头文件#include"rclcpp/rclcpp.hpp"//rclcpp/rclcpp.hpp是ROS2中常用C++接口
  • 2023-06-03 Beginner:Client libraries-8 在类中使用参数
    目标:创建和运行一个具有ROS参数的类背景当实现自己节点的时候,可能需要从launch文件中添加参数。本教程的目的是告诉你怎样在c++类中创建这些参数,以及怎样在launch文件中设置。任务1、创建一个包ros2pkgcreate--build-typeament_cmakecpp_parameters--dependenciesrcl
  • 2023-04-27用C++编写一个简单的发布者和订阅者
    摘要:节点(Node)是通过ROS图进行通信的可执行进程。本文分享自华为云社区《编写一个简单的发布者和订阅者》,作者:MAVER1CK。@[toc]参考官方文档:Writingasimplepublisherandsubscriber(C++)背景节点(Node)是通过ROS图进行通信的可执行进程。在本教程中,节点将通过话题(To
  • 2023-04-08ROS2-发布矩阵类消息
    这个困扰我两个周的难题终于在翻阅官方文档之后得到了解答,简而言之就是对于相关头文件的理解(其实是我懒得自定义头文件),下面解释一下相关代码。发布者代码#include<chrono>#include<memory>#include"rclcpp/rclcpp.hpp"#include"std_msgs/msg/float64_multi_array.hpp"