ROS
文章平均质量分 79
三个刺客
这个作者很懒,什么都没留下…
展开
-
STM32与ROS之间的串口通信
STM32与ROS之间的串口通信原创 2023-03-21 22:38:59 · 2986 阅读 · 1 评论 -
自动追随跟踪
自动追随跟踪原创 2022-06-17 16:58:03 · 543 阅读 · 0 评论 -
多坐标变换
多坐标变换原创 2022-06-17 15:47:31 · 171 阅读 · 0 评论 -
TF坐标变换
TF静态与动态坐标变换原创 2022-06-17 14:44:15 · 2651 阅读 · 0 评论 -
ROS分布式通信
ROS通信原创 2022-06-12 11:29:35 · 1496 阅读 · 0 评论 -
ROS话题名称设置
ROS话题名称设置原创 2022-06-10 16:34:34 · 2392 阅读 · 0 评论 -
ROS节点名称重名
ROS节点名称重名原创 2022-06-09 21:09:15 · 1052 阅读 · 0 评论 -
ROS工作空间覆盖
所谓工作空间覆盖,是指不同工作空间中,存在重名的功能包的情形。原创 2022-06-09 19:33:15 · 1067 阅读 · 0 评论 -
ROS运行管理之launch文件
launch文件的详细解释原创 2022-06-09 17:55:58 · 8242 阅读 · 0 评论 -
ROS中的头文件与源文件
本节主要介绍ROS的C++实现中,如何使用头文件与源文件的方式封装代码,具体内容如下:在ROS中关于头文件的使用,核心内容在于CMakeLists.txt文件的配置,不同的封装方式,配置上也有差异。需求:设计头文件,可执行文件本身作为源文件。流程:在功能包下的 include/功能包名 目录下新建头文件: hello.h,示例内容如下:注意:在 VScode 中,为了后续包含头文件时不抛出异常,请配置 .vscode 下 c_cpp_properties.json 的 includepath属性原创 2022-06-07 21:29:57 · 625 阅读 · 0 评论 -
ROS通信机制进阶
1.roscore2.rosrun plumbing_pub_sub demo01_pub _length:=23.rosparam list 此时可看到同一个节点后面有两个随机数,从而避免重名问题在 roscpp 中,话题和服务的相关对象一般由 NodeHandle 创建。NodeHandle有一个重要作用是可以用于设置命名空间回旋函数在ROS程序中,频繁的使用了 ros::spin() 和 ros::spinOnce() 两个回旋函数,可以用于处理回调函数。spinOnce()和spin原创 2022-06-07 20:33:27 · 326 阅读 · 0 评论 -
通信机制比较
三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信与服务通信是在不同的节点之间传递数据的,三者是ROS中最基础也是应用最为广泛的通信机制。这其中,话题通信和服务通信有一定的相似性也有本质上的差异,在此将二者做一下简单比较:二者的实现流程是比较相似的,都是涉及到四个要素:可以概括为: 两个节点通过话题关联到一起,并使用某种类型的数据载体实现数据传输。二者的实现也是有本质差异的,具体比较如下:...原创 2022-06-06 21:43:39 · 480 阅读 · 0 评论 -
通信机制案例
ROS通信机制乌龟小项目原创 2022-06-06 21:37:26 · 553 阅读 · 0 评论 -
导航相关消息
地图相关的消息主要有两个:nav_msgs/MapMetaDatanav_msgs/OccupancyGrid调用显示消息内容如下:2.nav_msgs/OccupancyGrid调用 显示消息内容如下:导航之里程计里程计相关消息是:nav_msgs/Odometry,调用 显示消息内容如下:导航之坐标变换坐标变换相关消息是: tf/tfMessage,调用 显示消息内容如下:导航之定位定位相关消息是:geometry_msgs/PoseArray,调用显示消息内容如原创 2022-06-03 16:08:20 · 547 阅读 · 0 评论 -
机器人导航实现
本节内容主要介绍导航的完整性实现,旨在掌握机器人导航的基本流程,该章涉及的主要内容如下:SLAM建图(选用较为常见的gmapping)地图服务(可以保存和重现地图)机器人定位路径规划上述流程介绍完毕,还会对功能进一步集成实现探索式的SLAM建图。准备工作请先安装相关的ROS功能包:安装 gmapping 包(用于构建地图):安装地图服务包(用于保存与读取地图):安装 navigation 包(用于定位以及路径规划):新建功能包,并导入依赖: gmapping map_server amcl move_bas原创 2022-06-02 22:43:35 · 1691 阅读 · 0 评论 -
机器人导航
在ROS中机器人导航(Navigation)由多个功能包组合实现,ROS 中又称之为导航功能包集,关于导航模块,官方介绍如下:一个二维导航堆栈,它接收来自里程计、传感器流和目标姿态的信息,并输出发送到移动底盘的安全速度命令。秉着"不重复发明轮子"的原则,ROS 中导航相关的功能包集为机器人导航提供了一套通用的实现,开发者不再需要关注于导航算法、硬件交互... 等偏复杂、偏底层的实现,这些实现都由更专业的研发人员管理、迭代和维护,开发者可以更专注于上层功能,而对于导航功能的调用,只需要根据自身机器人相关参数合原创 2022-06-02 21:21:42 · 2313 阅读 · 0 评论 -
Linux常用命令
常用命令机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:rosnode : 操作节点 rostopic : 操作话题 rosservice : 操作服务 rosmsg : 操作msg消息 rossrv : 操作srv原创 2022-05-29 21:13:21 · 185 阅读 · 0 评论 -
参数服务器
前言参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,关于参数服务器的典型应用场景如下:导航实现时,会进行路径规划,比如: 全局路径规划,设计一个从出发点到目标点的大致路径。本地路径规划,会根据当前路况生成时时的行进路径上述场景中,全局路径规划和本地路径规划时,就会使用到参数服务器:路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全局路原创 2022-05-29 19:25:00 · 1353 阅读 · 0 评论 -
服务通信详解
服务通信理论模型服务通信较之于话题通信更简单些,理论模型如下图所示,该模型中涉及到三个角色:ROS master(管理者) Server(服务端) Client(客户端)ROS Master 负责保管 Server 和 Client 注册的信息,并匹配话题相同的 Server 与 Client ,帮助 Server 与 Client 建立连接,连接建立后,Client 发送请求信息,Server 返回响应信息。整个流程由以下步骤实现:如图所示:ROS Master相当于114平台,原创 2022-05-29 17:13:57 · 571 阅读 · 0 评论 -
话题通信自定义msg
概念在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty.... 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息... std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型msgs只是简单的文本文件,每行具有字段类型和字段名称,可以使用的字段类型有: i原创 2022-05-27 12:10:29 · 334 阅读 · 0 评论 -
话题通信理论模型
ROS通信机制机器人是一种高度复杂的系统性实现,在机器人上可能集成各种传感器(雷达、摄像头、GPS...)以及运动控制实现,为了解耦合,在ROS中每一个功能点都是一个单独的进程,每一个进程都是独立运行的。更确切的讲,ROS是进程(也称为Nodes)的分布式框架。因为这些进程甚至还可分布于不同主机,不同主机协同工作,从而分散计算压力。不过随之也有一个问题: 不同的进程是如何通信的?也即不同进程间如何实现数据交换的?在此我们就需要介绍一下ROS中的通信机制了。ROS 中的基本通信机制主要有如下三种实原创 2022-05-27 10:59:59 · 336 阅读 · 0 评论 -
launch文件
何为launch?launch,中文含义是启动,launch文件顾名思义就是启动文件。在节点少,程序小的情况下可以一个一个节点来启动,测试运行效果;但是当工程规模大,需要的节点多时就显得比较费劲,用.launch文件来启动可以将需要的节点同时启动,不用再一个一个进行。为工程搭建提高了效率,里面还有很多参数灵活使用会带来非常高效的调试。roslaunch是一个用于自动启动ros节点的命令行工具,从命令的字面上看还跟rosrun有些相似:roslaunch PACKAGE_NAME LAUNCH_原创 2022-05-19 19:38:36 · 9774 阅读 · 0 评论 -
PX4在GAZEBO仿真中加载iris模型问题
1. PX4启动仿真的launch系列文件1.1 单个launch文件解读打开每个文件的开头,都有对它功能的描述。px4.launch Posix SITL PX4 launch scriptLaunches Only PX4 SITL. This can be used by external projects加载px4_sitl仿真的节点 posix_sitl.launch Posix SITL environment launch scriptlaunches PX4转载 2022-05-15 21:30:28 · 562 阅读 · 0 评论