ROS
文章平均质量分 85
命运从未公平
三枚筹码足矣,所有,或者一无所有
展开
-
ROS机器人入门第七课:参数服务器
参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,关于参数服务器的典型应用场景如下:导航实现时,会进行路径规划,比如: 全局路径规划,设计一个从出发点到目标点的大致路径。本地路径规划,会根据当前路况生成时时的行进路径路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全局路径规划节点与本地路径规划节点都可以从参数服务器中调用这些参数。原创 2024-04-21 21:18:09 · 2316 阅读 · 0 评论 -
ROS机器人入门第六课:服务通信自定义srv
服务通信也是ROS中一种极其常用的通信模式,服务通信是基于请求响应模式的,是一种应答机制。也即: 一个节点A向另一个节点B发送请求,B接收处理请求并产生响应结果返回给A。比如如下场景:机器人巡逻过程中,控制系统分析传感器数据发现可疑物体或人… 此时需要拍摄照片并留存。在上述场景中,就使用到了服务通信。一个节点需要向相机节点发送拍照请求,相机节点处理请求,并返回处理结果与上述应用类似的,服务通信更适用于对时时性有要求、具有一定逻辑处理的应用场景。概念以请求响应的方式实现不同节点之间数据交互的通信模式。原创 2024-04-01 20:45:51 · 1784 阅读 · 0 评论 -
ROS机器人入门第五课:话题通信自定义msg
在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息…原创 2024-03-31 20:38:55 · 1555 阅读 · 0 评论 -
ROS机器人入门第四课:话题通信
话题通信是ROS中使用频率最高的一种通信模式,话题通信是基于发布订阅模式的,也即:一个节点发布消息,另一个节点订阅该消息。话题通信的应用场景也极其广泛,比如下面一个常见场景:机器人在执行导航功能,使用的传感器是激光雷达,机器人会采集激光雷达感知到的信息并计算,然后生成运动控制信息驱动机器人底盘运动。在上述场景中,就不止一次使用到了话题通信。以激光雷达信息的采集处理为例,在 ROS 中有一个节点需要时时的发布当前雷达采集到的数据,导航模块中也有节点会订阅并解析雷达数据。原创 2024-03-26 19:00:34 · 1789 阅读 · 0 评论 -
ROS机器人入门第三课:launch文件初体验
总体而言,这段代码会启动三个节点:一个自定义的Python脚本节点、一个Turtlesim模拟器节点和一个用于键盘操作Turtlesim乌龟的控制节点。一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,要启动多个窗口,分别启动 roscore、乌龟界面节点、键盘控制节点。: 这一行表示启动一个名为 “hello” 的节点,这个节点来自 “hello_vscode” 这个包,执行的文件是 “hellovscode.py”(一个Python脚本),输出会显示在屏幕上。原创 2024-03-24 16:00:57 · 906 阅读 · 0 评论 -
ROS机器人入门第二课:ROS集成开发环境搭建
它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。在 ROS 中,需要频繁的使用到终端,且可能需要同时开启多个窗口,推荐一款较为好用的终端:Terminator。**PS:**不建议下载最新版,因为我下载了最新版的vscode,后面的。可以点击配置设置为默认,修改.vscode/tasks.json 文件。执行: 和之前一致,只是可以在 VScode 中添加终端,首先执行。原创 2024-03-24 13:55:22 · 1010 阅读 · 0 评论 -
ROS机器人入门第一课:ROS快速体验——python实现HelloWorld
先创建一个工作空间;再创建一个功能包;编辑源文件;编辑配置文件;编译并执行。原创 2024-03-21 22:30:05 · 2252 阅读 · 0 评论 -
ROS第 14 课 常用可视化工具的使用
RQT是ROS提供的一个图形化用户接口框架,它允许以插件的形式来实现各种图形工具和接口。RQT中能够以可停靠窗口的形式运行所有存在的GUI工具。使用时,可以通过命令“rqt”来运行RQT工具和插件。这个GUI允许用户载入并运行任何插件。此外,用户还可以以独立窗口的形式运行插件插件功能描述可以监视当前的某一话题的传输数据、占用带宽和话题频率等信息,相当于原来的 rostopic echo msg_name。可以自定义名称发布一个话题,并指定话题发布的消息类型、发布数据以及发布频率。原创 2024-01-22 16:52:59 · 1902 阅读 · 0 评论 -
ROS第 12 课 Launch 启动文件的使用方法
我们在前面的教程里面通过命令行来尝试运行新的节点。但随着创建越来越复杂的机器人系统中,打开多个终端且重新输入设置就变得越来越麻烦。因此我们可以通过创建一个Launch文件,可以同时启动并配置多个需执行的ROS节点,启动更多的功能,另外还可自动启动 Ros Master。原创 2024-01-21 09:35:09 · 1694 阅读 · 0 评论 -
ROS第 11 课 参数的使用与编程方法
emsp比如说我在Node A点里面来访问robot name,然后就会获取得到一个“my_rot”的值,它只要给我们的ROS master去发送一个查询的请求,然后就会返回“my_rot”的结果。NodeB、Node C和Node D也是一样。&emsp在ROS master当中有一个参数服务器,它是一个全局字典,用来保存各个节点之间的配置参数的。例如里面有Parameter server保存我们的名字、半径和高度,是各个节点都可以全局访问的。原创 2024-01-20 08:18:41 · 1109 阅读 · 0 评论 -
ROS第 10 课 服务数据的自定义与使用
注意:在自定义服务数据之前,需要先创建工作空间和功能包,具体操作过程可前往目录“第4课 创建工作空间与功能包”查看文档。打开命令行终端。输入进入功能包所在目录的指令“roscd beginner_hiwonder”,并按下回车。注意:若出现提示“No such package/stack ‘beginner_hiwonder’”,即功能包不存在于环境变量 ROS_PACKAGE_PATH 中,具体解决方法可前往目录“第 4 课 创建工作空间与功能包”查看文档,解决此问题后,请重复一次当前步骤的操作。原创 2024-01-20 08:17:38 · 1139 阅读 · 0 评论 -
ROS第 9 课 编写简单的服务端 Server
3) 输入指令“chmod +x turtle_command_server.py”,并按下回车,为保存的turtle_command_server.py赋予可执行权限。注意:在创建服务器代码之前,需要先创建工作空间和功能包,具体操作过程可前往目录“原创 2024-01-19 01:03:46 · 608 阅读 · 0 评论 -
ROS第 8 课 编写简单的客户端 Client
本节以创建简单的服务(Client)节点turtle_spawn.py为例进行讲解。该节点通过程序的形式发布一个让客户端产生一个新的小乌龟的请求。3) 输入指令“chmod +x turtle_spawn.py”回车,为保存的turtle_spawn.py赋予可执行权限。原创 2024-01-18 12:22:52 · 621 阅读 · 0 评论 -
ROS第 7 课 话题消息的自定义与使用
注意:在自定义话题消息之前,需要先创建工作空间和功能包,具体操作过程可前往目录“ROS第4课 创建工作空间与功能包”查看文档。打开命令行终端。输入进入功能包所在目录的指令“roscd beginner_hiwonder”,并按下回车。注意:若出现提示“No such package/stack ‘beginner_hiwonder’”,即功能包不存在于环境变量ROS_PACKAGE_PATH中,具体解决方法可前往目录“ROS第4课 创建工作空间与功能包。原创 2024-01-17 17:01:31 · 2114 阅读 · 3 评论 -
ROS第 6 课 编写简单的订阅器 Subscriber
文章目录第 6 课 编写简单的订阅器 Subscriber1. 编写订阅者节点2. 测试发布者和订阅者第 6 课 编写简单的订阅器 Subscriber 订阅器是基于编辑了发布器的基础上创建的,只有发布了消息,才有可能订阅。若未编辑发布器,可前往"ROS第5课 编辑简单的发布器Publisher”查看编辑教程。1. 编写订阅者节点这里我们以创建一个的pose_subscriber.py节点为例进行讲解。输入指令“cd catkin_ws/src/beginner_hiwonder/script原创 2024-01-16 17:04:11 · 1365 阅读 · 0 评论 -
ROS第 5 课 编写简单的发布器 Publisher
7) 输入指令“rosrun beginner_hiwonder velocity_publisher.py”回车,运行python文件,也可以使用python指令去运行。5) 输入指令“chmod +x velocity_publisher.py”回车,为保存的velocity_publisher.py赋予可执行权限。9) 输入指令“rostopic echo /turtle1/cmd_vel”回车,查看话题信息。6) 输入指令“roscore”回车,运行python文件之前,我们需要先打开节点管理器。原创 2024-01-14 19:49:45 · 824 阅读 · 0 评论 -
ROS第 4 课 创建工作空间与功能包
消息和服务的创建、发布器和订阅器的编写、服务端和客户端的编写都是基于Ros功能包进行操作的,因此在进行上述操作前,需要先创建工作空间及功能包。catkin_create_pkg 功能包名称 依赖项1 依赖项2 …原创 2024-01-14 17:03:08 · 827 阅读 · 0 评论 -
ROS第 3 课 ROS 常用术语及命令说明
通过发布消息到话题或订阅话题的 形式,可以在节点之间实现数据的传输。为执行订阅,订阅者节点在主节点上注册自己的话题等多种信息,并从主节点接收所有发布了此节点需订阅话题的发布者节点的信息。):功能包的描述文件,用于定义功能包相关元信息之间的依赖关系,这些信息包括版本、维护者和许可协议等。为执行发布,发布者节点在主节点上注册自己的话题等多种信息,并向希望订阅的订阅者节点发送消息。服务客户端请求对应于特定目的任务的服务,服务服务端进行服务响应。描述功能包的属性,包含功能包的名字、版本号、作者等。原创 2024-01-14 12:44:36 · 497 阅读 · 0 评论 -
ROS第 2 课 ROS 系统安装和环境搭建
不同的 Ubuntu 安装的 ROS 版本不同,其中 Ubuntu18.04 的 ROS 对应版本为Melodic。原创 2024-01-14 00:47:55 · 2129 阅读 · 4 评论 -
ROS第1课 ROS 系统介绍
在学习ROS 系统前,我们需要先了解操作系统的定义。操作系统,顾名思义,即提供部分软件和硬件的接口,以供用户直接使用。因此,针对不同的平台、不同的功能,需要采用不同的操作系统来完成底层操作。ROS 系统是适用于机器人的开源操作系统。它提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库,用于获取、编译、编写和执行多机融合的程序。另外,ROS 具备进程之间的通信,这是它与其他操作系统之间最大的区别。原创 2024-01-13 23:44:31 · 636 阅读 · 0 评论