自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(659)
  • 资源 (3)
  • 收藏
  • 关注

原创 ROS2+YOLO之发布检测结果

Detection2DArray 是由 Detection2D 组成的,所以我们在每次循环中都创建了一个 Detection2D 类的对象,然后将边界起点坐标和终点坐标转换成边界框的形式,接着将 detection2d 放到检测结果数组中。在函数的最后,将检测结果消息直接发布了出来。上面的代码和发布结果代码相似,都是先提取结果,接着遍历类别数组,不同的是该函数循环中将结果在图像上进行了绘制,循环绘制完成后,调用了 cv2_to_imgmsg 将原始图像转换成 Image 消息格式,最后直接发布。

2024-04-23 12:04:09 415

原创 做个 ROS 2 视觉检测开源库-加载模型并进行检测

在回调函数 image_callback 中,首先将收到的消息转换成 OpenCV 格式,接着调用模型进行检测并打印检测结果,最后调用 pub_result 发布结果,是否发布绘制好的结果图像则要根据参数 pub_result_image 决定。需要注意图像发布时传入 msg.header 是为了让发布数据的 header 和原始图像保持一致,方便用户根据 header 筛选出结果对应的原始图像。上面的代码中,首先导入相关库和接口类,其中 CvBridge 用于将图像消息转换成 OpenCV 格式。

2024-04-23 11:58:09 267

原创 做个 ROS 2 视觉检测开源库-功能包框架搭建

大家好,我是小鱼。今天继续来学做开源库。

2024-04-23 11:51:58 342

原创 做个 ROS 2 视觉检测开源库-使用 Python 调用 YOLO

大家好,我是小鱼。今天继续和大家分享做个ROS 2 +视觉开源库系列文章的第二篇,使用 Python 来调用 YOLO。

2024-04-23 11:47:56 463

原创 做个 ROS 2 视觉检测开源库-YOLO介绍与使用

在无人驾驶和室内工作场景中,机器人需要进行物体识别,包括路上的车辆和行人,以及室内的餐盘回收等任务。计算机视觉技术在机器人系统中扮演着至关重要的角色。其中,YOLO(You Only Look Once)是一种高速而准确的目标检测算法,能够实时识别图像或视频中的多个对象,而无需多次检测。本章将详细介绍如何将目标检测算法YOLO与ROS 2集成,同时探讨如何创建一个开源库来完成目标检测任务。

2024-04-22 15:23:32 811

原创 做个 ROS 2 视觉检测开源库

在无人驾驶和室内工作场景中,机器人需要进行物体识别,包括路上的车辆和行人,以及室内的餐盘回收等任务。计算机视觉技术在机器人系统中扮演着至关重要的角色。其中,YOLO(You Only Look Once)是一种高速而准确的目标检测算法,能够实时识别图像或视频中的多个对象,而无需多次检测。本章将详细介绍如何将目标检测算法YOLO与ROS 2集成,同时探讨如何创建一个开源库来完成目标检测任务。

2024-01-20 15:36:15 876 2

原创 ROS2文档

自从ROS于2007年启动以来,机器人技术和ROS社区发生了许多变化。ROS 2项目的目标是适应这些变化,发扬ROS 1的优点并改进不足之处。从驱动程序和先进算法到强大的开发者工具,ROS拥有您在下一个机器人项目中所需的开源工具。如果您需要帮助,有想法或想要为项目做出贡献,请访问我们的ROS社区资源。本网站包含ROS 2的文档。如果您要查找ROS 1的文档,请访问。如果您在工作中使用ROS 2,请参阅。

2023-10-09 13:36:45 1604

原创 【ROS2机器人入门到实战】使用API进行导航

ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号获取两驱版四驱版为方便交流,搭建了机器人技术问答社区:地址Navigation 2 对外提供了动作服务用于导航调用。动作通信是 ROS 2 四大通讯机制之一,前面我们并没有介绍,我们以导航调用为例来简单了解下它。动作通信和其名字一样,主要用于控制场景,它的优点在于其反馈机制,当客户端发送目标给服务端后,除了等待服务端处理完成,还可以收到服务端的处理进度。

2023-09-02 17:45:02 2228

原创 【ROS2机器人入门到实战】移动机器人导航进阶

假设现在我们要设计一个自动巡检的机器人,它的任务是在几个不同的目标位置循环移动并拍照。此时肯定不能再给机器人配一个人来使用 RViz 的工具来指定目标,然后观察机器人到点后再打开相机截图保存。在实际的机器人项目中,导航往往只是作为系统一个子模块,我们可以通过接口进行调用和状态监测。本节我们就来学习和导航之间的常用交互方法。

2023-09-02 17:43:47 958 1

原创 【ROS2机器人入门到实战】进行单点与路点导航

通过这个插件可以取消导航任务,也可以设置多个目标点的导航,点击最下面的 Waypoint/Nav Through Poses Mode ,接着使用 Nav2 Goal 依次设置多个路点,比如下图中设置了五个路点,让机器人绕过咖啡桌再到左前方的目标点。接着我们来测试指定路点的导航,路点就是指路过的点,比如你要从家前往学校可以有多个路线,但你希望可以经过某家店买些东西,就可以指定要经过这家店。如果在机器人移动的过程中,放大图像,你将看到如下图所示的一条很短的蓝色线条,这个线条就是局部路径规划的结果。

2023-09-02 17:42:44 1089

原创 【ROS2机器人入门到实战】编写 Launch 并启动导航

有了参数,接着我们来编写一个 Launch 文件来传递参数并启动导航。在编写 launch 前,需要将slam部分建立好的地图保存拷贝一份到 src/fishbot_navigation2/maps 文件夹下。

2023-09-02 17:40:16 1053 3

原创 【ROS2机器人入门到实战】配置 Navigation 2 参数

除了修改话题和坐标系名称以保证数据的正确获取,在进行路径规划时还需要考虑机器人的大小即半径这一参数,如果半径设置的比真实的大,会造成窄的通道机器人过不去,如果过小则容易发生碰撞,因为是在基于地图做路径规划时才会考虑这一问题,所以机器人半径这一参数是在全局代价地图节点 global_costmap 和局部代价地图节点 local_costmap 进行配置的。分别修改两个代价地图节点。打开参数文件,可以看到有几百行的参数,不要害怕,这是因为将所有节点参数都放到同一个文件造成的,每一个节点的参数最多只有几十行。

2023-09-02 17:37:00 955

原创 【ROS2机器人入门到实战】Navigation 2 介绍与安装

对于一个移动机器人来说,需要知道什么时候要进行路径规划,什么时候要执行脱困,和游戏中的角色行为相似,所以使用行为树来描述和管理机器人的行再合适不过了,Navigation 2 就是使用它进行机器人行为调度的。左边的模块是恢复器服务器,可以加载不同的恢复行为完成机器人的脱困。接着我们来了解下 Navigation 2 的内部,首当其充的是 BT Navigator Server 即行为树导航服务,通过输入的 XML 格式的行为树描述文件,调用下面三个服务器中中对应的模块完成对机器人的行为控制。

2023-09-02 13:41:09 1531

原创 【ROS2机器人入门到实战】地图保存与编辑

OccupancyGrid由一个.yaml格式的元数据文件,和.pgm图片格式的地图数据文件组成。从上节课建图后保存的文件也可以看出。不是说占据栅格地图每个栅格都有一个概率吗?为什么看不出来?立方体内和圆柱体内和墙之外的区域为什么是灰色的?一个栅格对应到图片上其实是一个像素,每一个像素的值在0-255之间,所以将像素值和占据率之间的映射即可,而像素值反应到图像上就是颜色的深浅,1.2图对应的像素颜色如下:建图的时候物体内和墙之外的区域机器人并没有探索到,没有数据参考就认为其值是未知的。除了。

2023-09-02 13:39:33 1863

原创 【ROS2机器人入门到实战】使用SLAM_TOOLBOX完成建图

SLAM 是通过传感器获取环境信息然后进行定位和建图。在 ROS 2 中,提供了很多的 SLAM 功能包,比如 slam_toolbox,cartographer_ros 和 rtabmap_slam 等。针对二维场景,其中 slam_toolbox 开箱即用,上手较为简单,就用它类来构建我们的第一张地图。

2023-09-02 13:37:30 3291 1

原创 【ROS2机器人入门到实战】建图前准备3-准备URDF

有了这样一个TF结构,我们的建图前的准备工作就差不多了。

2023-09-01 11:55:28 811 1

原创 【ROS2机器人入门到实战】建图前准备2-发布 Odom 的 TF

有了 odom 到 base_link/base_footprint 之间的变换,接下来我们来搞定 base_link 到机器人各个组件之间的变换。

2023-09-01 11:54:20 2099

原创 【ROS2机器人入门到实战】建图前准备1-了解ROS标准REP105

REP-105规定了用于ROS的移动平台的坐标系的命名约定和语义含义。

2023-09-01 11:53:02 536

原创 【ROS2机器人入门到实战】可视化雷达点云-学会驱动雷达

激光雷达(Light Detection And Ranging),缩写LiDAR,翻译一下叫——激光探测与测距。激光雷达的原理也很简单,就像蝙蝠的定位方法一样,蝙蝠定位大家都知道吧,像下面这样子的回声定位。普通的单线激光雷达一般有一个发射器,一个接收器,发射器发出激光射线到前方的目标上,物品会将激光反射回来,然后激光雷达的接受器可以检测到反射的激光。通过计算发送和反馈之间的时间间隔,乘上激光的速度,就可以计算出激光飞行的距离,该计算方法成为TOF(飞行时间法Time of flight,也称时差法)

2023-09-01 11:51:13 1225 1

原创 【ROS2机器人入门到实战】FishBot建图与导航实现

本章我们主要学习FishBot建图与导航的实现,建图和导航主要使用的是开源框架进行实现,这里主要带大家在真机上进行配置和跑通。FishBot建图实现。FishBot导航实现。

2023-09-01 11:49:06 620

原创 【ROS2机器人入门到实战】拓展-源码编译Agent

通过上述步骤,我们成功地拓展了MicroROS的Agent功能包,实现了源码的编译和运行。通过MicroROS Agent,我们能够在资源受限的嵌入式系统中实现强大的ROS 2通信能力。

2023-09-01 11:44:59 429 1

原创 【ROS2机器人入门到实战】项目总结与扩展

上一节我们完成后,就可以通过话题获取到机器人的里程计,也可以通过话题控制机器人移动了。对于一个移动底盘来说,这两个话题就是最关键的两个,有了这两个就可以控制底盘完成移动。说了那么多,你可能不知道怎么做,没关系,小鱼写好了所有的代码,有了前面的基础,加上代码中的详细注释,看懂他们对你来说并不难。完成代码可以直接通过git进行克隆到本地。如果你的网络不错,也可以在线查看代码:https://github.dev/fishros/fishbot_motion_control_microros。

2023-09-01 11:44:06 522 1

原创 【ROS2机器人入门到实战】采用MicroROS发布里程计

有了控制话题和里程计话题,底盘部分就完成的差不多了,但是对于一个合格的底盘来说,其实还有很多待完善的地方,下一节我们就来说说可以怎么完善,以及完善的后的代码。

2023-09-01 11:43:08 623

原创 【ROS2机器人入门到实战】里程计计算-速度积分

ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号获取两驱版四驱版为方便交流,搭建了机器人技术问答社区:地址你好,我是小鱼,前面两节中我们完成机器人底盘正逆解的计算,我们通过机器人的运动学逆解完成了机器人实时的角速度和线速度的测量,那我们能不能利用对线速度和角速度的积分,计算机器人当前的位置呢?答案肯定是可以的,那么本节我们就来编写代码实现机器人的里程计。最后记得提交代码git add .git commit -m "feat(13.14):完成里程计计算-速度积分"

2023-09-01 11:41:06 949

原创 【ROS2机器人入门到实战】目标速度控制-运动学逆解

没啥好说的,记得提交下代码git commit -m "feat(13.13):完成运动学逆解"代码提交也是有规范的,我们一起来学习下:https://fishros.org.cn/forum/topic/390我们采用用的比较多的Angular 规范其中 type(必选)、scope(可选)和 subject(必选)

2023-09-01 11:40:06 594

原创 【ROS2机器人入门到实战】实时速度计算-运动学正解

安装 Git:如果你的系统中没有 Git,可以通过以下命令进行安装:配置 Git:在使用 Git 之前,你需要设置用户名和邮箱地址,这样 Git 才能正确地记录你的提交信息。使用以下命令配置 Git:arduino将 “Your Name” 替换为你的姓名,“” 替换为你的邮箱地址。将文件添加到 Git 仓库:使用以下命令将文件添加到 Git 仓库:其中,“filename” 是要添加到 Git 仓库中的文件名。

2023-09-01 11:35:36 812

原创 【ROS2机器人入门到实战】两轮差速机器人运动学介绍

你好,我是小鱼。本节我们来了解下两轮差速运动学。

2023-09-01 11:32:42 1108

原创 【ROS2机器人入门到实战】控制速度-PID控制器实现

PID控制器是一种广泛应用于工业控制、自动化控制等领域的控制算法,其名称来源于“比例-积分-微分”三个控制器参数,即Proportional(比例)、Integral(积分)、Derivative(微分)。PID控制器的基本原理是通过测量目标系统的反馈信号和期望输出信号之间的误差,根据一定的数学模型计算出控制信号,使目标系统能够稳定地达到期望输出。

2023-09-01 11:30:50 1849

原创 【ROS2机器人入门到实战】速度转换-机器人最大速度测量

本节我们完成了对电机速度的测量,下一节我们尝试利用PID动态的控制电机保持在某个转速。

2023-09-01 11:25:22 229

原创 【ROS2机器人入门到实战】脉冲测量与校准实验

你好,我是小鱼,有了上节的理论,这一节我们编写代码来尝试下是否能够读取到电机上编码器的脉冲数,并通过实验测试出小车的输出轴转速和编码器脉冲的比值。

2023-09-01 11:23:08 221

原创 【ROS2机器人入门到实战】从编码器说起-速度测量原理介绍

有了理论基础,下一节我们尝试编码验证。

2023-08-31 11:34:27 345

原创 【ROS2机器人入门到实战】做个遥控车-订阅ROS2 Twist

本节我们通过将小车接入MicroROS完成了一个遥控小车的开发。下一节我们开始使用编码器来测量轮子的转速。

2023-08-31 11:32:59 1246

原创 【ROS2机器人入门到实战】电机控制之使用开源库驱动多路电机

MCPWM中文名是电机控制脉宽调制器 (Motor Control Pulse Width Modulator ),是一款多功能 PWM 发生器,包含各种子模块,使其成为电机控制、数字电源等电力电子应用的关键元件。数字电机控制,例如有刷/无刷直流电机、RC 伺服电机基于开关模式的数字电源转换功率DAC,其中占空比相当于DAC模拟值计算外部脉冲宽度,并将其转换为其他模拟值,如速度、距离为磁场定向控制 (FOC) 生成空间矢量 PWM (SVPWM) 信号。

2023-08-31 11:30:09 1205

原创 【ROS2机器人入门到实战】电机控制之速度控制实验

本节我们通过简单的一个实验学习了如何通过PWM调节电机的PWM,但有一点需要注意,程序中使用了delay函数来控制PWM信号的占空比,这种方法在简单的应用场景下是可行的,但是在需要更高精度的控制场景下可能会产生问题。为了实现更高精度的PWM控制,我们可以采用ESP32的电机PWM控制单元,下一节我们就尝试使用这一开源库实现更精细化的控制。

2023-08-31 11:27:35 461

原创 【ROS2机器人入门到实战】电机控制之正反转实验

本节我们成功通过代码验证了上一节电机控制理论,下一节我们尝试通过PWM的占空比控制电机的转速。

2023-08-31 11:25:39 384

原创 【ROS2机器人入门到实战】从H桥说起-电机驱动原理介绍

正式编写代码前,我们先了解下电机驱动的原理,以便于我们了解我们如何才能通过代码控制电机的转速和正反转。

2023-08-31 11:23:42 295

原创 【ROS2机器人入门到实战】移动机器人底盘结构介绍

在雷达的头部分别有一个激光发射头和线性的CCD接收头。小鱼特意拆了个雷达,放张图给大家看看右边黑色的是发射头,左边是CCD接收头,发射头发射出的光属于波长大约在1000nm左右的红外光,肉眼是不可见的。FishBot所采用的这种激光雷达的测距原理是三角测距法从上图可以看出,当我们已知L(机械安装值)和d1(CCS测量值)和f(机械安装值)的情况下,我们可以得到D1的值,即激光雷达到被测物体的距离D1Ld2fd2D1f∗Ld2d2fLd2fD1​L。

2023-08-31 11:21:44 708

原创 【ROS2机器人入门到实战】FishBot控制系统搭建

本章主要从移动机器人底盘角度入手,带你了解一个真实机器人的结构,并在主控板上完成电机驱动,两轮差速运动学正逆解等代码,最终通过MicroROS将里程计发送给上位机,并订阅速度控制指令来控制电机运动。1.移动机器人底盘结构介绍2.让电机转起来-使用开源库驱动电机3.做个遥控车-订阅ROS2 Twist4.速度测量-学会使用编码器5.控制电机速度-PID控制器实现6.控制机器人速度-运动学逆解7.里程计计算-运动学正解与积分8.可视化里程计-发布Odometry。

2023-08-31 11:19:18 381

原创 【ROS2机器人入门到实战】可视化点云-雷达消息合成

使用指令,可以看到ROS2对雷达数据接口的定义。int32 sec本节我们成功实现了使用超声波和舵机模拟雷达数据,并将其合成scan发布到电脑上使用rviz2进行可视化。至此我们完成了ROS2硬件控制的所有课程。下面迎接你的将是移动机器人和机械臂开发课程,请做好准备,继续出发。

2023-08-31 11:16:34 608

原创 【ROS2机器人入门到实战】舵机+超声波循环扫描

你好,我是爱吃鱼香ROS的小鱼。本节我们尝试将超声波的舵机结合起来实现循环扫描功能。

2023-08-31 11:14:06 258

micropython的高精度温湿度传感器sht30驱动

micropython的高精度温湿度传感器sht30驱动,性能稳定,使用简单,基于IIC,需要传入scl和sda的引脚号

2020-01-29

MQTTX.Setup.1.2.2.exe

界面简单的mqtt Windows客户端软件,可以用来开发的时候的测试等工作,使用简单,安装方便,下载即可使用

2020-01-29

kotlin-plugin-1.1.4-release-IJ2017.2-3(百度云盘)

kotlin-plugin-1.1.4-release-IJ2017.2-3(百度云盘下载)解决Kotlin更新慢问题,在Setting中选择Plugins然后从本地磁盘安装

2017-09-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除