![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS2机器人理论篇
文章平均质量分 76
以系列文章、笔记为主
~AI钢铁侠~
怕什么真理无穷,进一寸有进一寸的欢喜!
展开
-
2.2.2.1 如何在vscode 中设置ROS2的 用户代码片段
把提前准备好的代码,复制到"body"的 [ ] 中,修改"prefix": 后的名字为“ros2_node_cpp”, 再修改最后一行“description”:后的描述 为“ros2 main func”输入如下,选择ros2_node_cpp 然后即可显示出我们配置好的文件模版,选择并按下enter键即可,无需手写。在设置中选择用户代码片段后 输入python 即可,选择相应的文件 具体操作方法同方C++2) 选择用户代码片段后,会弹出选择框,如下图,输入C++,选择 cpp.json。原创 2024-07-06 17:20:21 · 508 阅读 · 0 评论 -
2.2.2 ROS2话题通信之原生消息(C++)
在C++功能包中,配置文件主要关注package.xml与CMakeLists.txt。当前工作空间下,启动两个终端,终端1执行发布程序,终端2执行订阅程序。最终运行结果与案例1类似。在本案例中不是必须的。原创 2024-07-04 21:53:19 · 263 阅读 · 0 评论 -
2.2.1 ROS2案例以及案例分析
编写发布方实现;编写订阅方实现;编辑配置文件;编译;执行。案例我们会采用C++和Python分别实现,二者都遵循上述实现流程。原创 2024-07-04 21:36:35 · 338 阅读 · 0 评论 -
2.2 ROS2话题通信
数据发布对象称为发布方,数据订阅对象称之为订阅方,发布方和订阅方通过话题相关联,发布方将消息发布在话题上,订阅方则从该话题订阅消息,消息的流向是单向的。话题通信的发布方与订阅方是一种多对多的关系,也即,同一话题下可以存在多个发布方,也可以存在多个订阅方,这意味着数据会出现交叉传输的情况,当然如果没有订阅方,数据传输也会出现丢失的情况。以此类推,像雷达、摄像头、GPS.... 等等一些传感器数据的采集,也都是使用了话题通信,话题通信适用于不断更新的数据传输相关的应用场景。原创 2024-07-04 21:32:56 · 399 阅读 · 0 评论 -
2.1 ROS2通信机制简介
在ROS2中通信方式虽然有多种,但是不同通信方式的组成要素都是类似的,比如:通信是双方或多方行为、通信时都需要将不同的通信对象关联、都有各自的模型、交互数据时也必然涉及到数据载体等等。本节将会介绍通信中涉及到的一些术语。原创 2024-07-04 21:25:24 · 829 阅读 · 0 评论 -
第2章 ROS2通信机制核心
机器人是一种高度复杂的系统性实现,一个完整的机器人应用程序可能由若干功能模块组成,每个功能模块可能又包含若干功能点,在不同功能模块、不同功能点之间需要频繁的进行数据交互。比如以导航中的路径规划模块为例:路径规划时就需要其他功能模块输入数据,并输出数据以被其他模块调用。输入的数据有地图服务提供的地图数据、定位模块提供的机器人位姿数据、人机交互模块提供的目标点数据......。输出的路径信息则被运动控制订阅或是回显在人机交互界面上。那么这些相对独立的功能模块或功能点之间是如何实现数据交互的呢?原创 2024-07-04 08:54:03 · 316 阅读 · 0 评论 -
1.5 ROS2体系框架
另外,开发者构建应用程序时,通信部分在工作内容中占有相当大的比重。不管是何种类型的功能包,package.xml的格式都是类似的,在该文件中包含了包名、版本、作者、依赖项的信息,package.xml可以为colcon构建工具确定功能包的编译顺序。在示例中关于文件的使用已经通过注释给出了简短说明,其实关于CMakeLists.txt的配置是比较复杂的,后续随着学习的深入,还会给出更多的补充说明。是指开发者构建的应用程序,在应用程序中是以功能包为核心的,在功能包中可以包含源码、数据定义、接口等内容。原创 2024-07-03 22:52:48 · 1046 阅读 · 0 评论 -
1.4 ROS2集成开发环境搭建
它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。VSCode支持插件扩展,依赖于VSCode丰富多样的插件,可以大大提高程序开发效率,为了方便ROS2程序开发,我们也需要安装一些插件。在VSCode中,cpp文件中的。原创 2024-07-03 22:41:29 · 656 阅读 · 0 评论 -
1.3 ROS2快速体验
编写ROS2程序,要求程序运行时,可以在终端输出文本"Helo World"。创建功能包;编辑源文件;编辑配置文件;编译;执行。下面两节我们会介绍具体的实现细节。原创 2024-07-03 22:34:44 · 554 阅读 · 0 评论 -
1.2 ROS2安装
查询错误提示中域名的IP地址,然后修改 /etc/hosts 文件,添加域名与IP映射。常用的启动Ubuntu universe存储库方式有两种:图形化操作与命令行操作。安装ROS2过程中,执行到步骤3也即设置软件源时,可能会抛出异常。请注意:虽然安装比较简单,但是安装过程比较耗时,需要耐心等待。失败的异常信息,解决方式请参考本节最后部分补充2内容。注意:语言环境可以不同,但必须支持UTF-8编码。查询到的ip地址可能有多个,记录任意一个地址即可。原创 2024-07-03 22:27:00 · 567 阅读 · 0 评论 -
1.1 ROS2简介
此背景下,官方于2017正式推出了新一代机器人操作系统——ROS2,ROS2基于全新的设计框架,保留了ROS1的优点并改进其缺陷,ROS2的目标是适应新时代的新需求。的机器人公司发布了ROS,ROS集开源、免费、高复用、低耦合、工具丰富等等诸多优势于一身,一经推出便迅速吸引了大量的开发者、科研人员、硬件供应商的加入,形成了稳定且多样的机器人生态,水到渠成的ROS也成为了机器人领域的主流软件框架并流行至今。ROS发行版的目的是让开发人员可以在一个相对稳定的代码库上工作,直到新的发行版推出。原创 2024-07-03 22:21:35 · 945 阅读 · 0 评论 -
ROS2 分布式 及 ssh远程控制 和 上传下载文件或文件夹
ROS2 分布式控制原创 2024-07-02 21:25:54 · 1007 阅读 · 3 评论 -
ROS2-humble + TurtleBot3 + Cartographer + Nav2
# 单点导航 在RVIZ2工具栏中 使用 Nav2 Goal 安排一个目标点了,点击按钮,到地图上任意一点击鼠标左键,注意不要松开,移动鼠标给定一个方向。6. 将pbstream转化为pgm和yaml,在cartographer_pbstream_to_ros_map目录下执行。2. 另开终端,再启动cartographer启动节点。1. 打开终端,启动机器人所在环境的启动文件。3. 另开终端,启动键盘启动节点,控制机器人。4. 另开终端,结束构图,停止接受新数据。5. 下载键盘控制节点功能包。原创 2024-04-01 09:51:53 · 914 阅读 · 0 评论 -
ubutnu16.04安装ros2
设置Source 安装秘钥:sudo apt-get update && sudo apt-get install curl curl http://repo.ros2.org/repos.key | sudo apt-key add -1 2 添加权限:sudo sh -c 'echo "deb http://repo.ros2.org/ubuntu/main xenial main" > /etc/apt/sources.list.d/ros2-latest.list'转载 2021-07-14 18:42:55 · 514 阅读 · 0 评论