- 博客(61)
- 收藏
- 关注
原创 【ROS Rviz报错】 WSL下 RViz 无法连接 X-Server (qt.qpa.xcb: could not connect to display) (Can‘t open display)
通,但图形界面始终无法连接;而同样的配置在之前是可用的。能正常弹出窗口,说明显示连接已恢复正常;在 WSL 终端中尝试启动 RViz () 或其他 X 图形应用程序(如。配置方法,请在每次修改后,用。可以从 WSL 正常。
2025-04-21 15:46:38
935
原创 【ROS】Navigation 导航
本文将简要介绍 ROS 自主导航的整体框架和实现原理,帮助理解其导航功能的基本运行逻辑,具体功能模块的实现与示例请参考关联文章,本文不做展开。move_base导航节点的内部模块全局路径规划器(Global Planner)局部路径规划器(Local Planner)全局代价地图(Global Costmap)局部代价地图(Local Costmap)恢复行为机制(Recovery Behaviors)外部节点提供的必要数据与支撑模块AMCL 定位模块:提供map到base_link。
2025-04-20 16:44:53
1911
1
原创 【ROS】航点导航功能
在实际的 ROS 导航应用中,我们不可能始终依赖 RViz 手动设置导航目标点。RViz 设置目标点仅适用于测试或调试阶段。在复杂任务或自动化流程中,导航目标点的发布应由专门的程序节点负责。因此,本节将实现一个自定义的 Action 接口,用于发布导航目标点,并介绍一个实用的插件工具,帮助我们更高效地开发航点导航功能。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 MelodicROS导航系统 | Action 编程接口ROS 坐标导航的 Python 编程实现。
2025-04-20 16:41:12
532
原创 【ROS】TEB 规划器
TEB 规划器是 ROS 导航中常用的一个局部路径规划器,它的名字叫“时间弹力带”。简单来说,它会在机器人前方的一小段路径上进行优化,让路径尽量避开障碍物、贴近全局路径,并考虑走这条路要花多少时间。“弹力带”就像一根橡皮筋,全局路径把它拉住,障碍物推开它,TEB 就在这些力的作用下调整路径形状;而“时间”则代表它还会选择最快能走完的路径。所以,TEB 规划器能让机器人走得既安全又高效,特别适合速度要求高的场景,比如竞速比赛。
2025-04-18 14:24:20
1697
原创 【ROS】DWA 规划器
本文将介绍 ROS 导航系统中局部规划器中特别常用的一种局部规划器–DWA规划器(dwa palnner当导航过程中机器人陷入停滞或无法继续前进时,恢复行为模块会尝试更新障碍物信息,并执行一系列预设操作以帮助机器人脱困,从而重新规划一条可行的全局路径。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 MelodicROS导航系统 | DWA规划器 | DWA Planner。
2025-04-17 20:38:01
830
原创 【ROS】局部规划器概述
本文介绍 ROS 导航系统中非常重要的一部分——局部规划器(。全局规划器只是给出一条大致的路径,但机器人具体怎么走怎么避开障碍物,是由局部规划器来决定的。它会根据机器人当前的位置、障碍物信息等,实时计算出速度指令(cmd_vel),控制机器人行动。如果局部规划器配置不当,机器人可能无法沿着全局路径前进,或者在遇到障碍物时无法正确避让。实时生成控制指令,控制机器人运动动态避障,处理临时出现的障碍物可以把局部规划器理解为导航过程中的“司机”,负责开车。
2025-04-17 17:35:23
448
原创 【ROS】恢复行为
本文将介绍 ROS 导航系统中核心节点之一的内部模块——恢复行为(当导航过程中机器人陷入停滞或无法继续前进时,恢复行为模块会尝试更新障碍物信息,并执行一系列预设操作以帮助机器人脱困,从而重新规划一条可行的全局路径。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 MelodicROS导航系统 | 恢复行为 | Recovery BehaviorsROS导航系统 | 恢复行为的参数设置 | Recovery Behaviors。
2025-04-17 17:08:36
963
原创 【ROS】代价地图
本文将介绍 ROS 导航系统中move_base节点的核心模块之一——代价地图(Costmap)。代价地图以二维栅格地图的形式,对机器人所处环境中的每个区域进行“通行代价”的量化评估,也就是衡量机器人经过该区域的风险和难度。代价越高,意味着该区域越危险或越不适宜通行。全局代价地图(Global Costmap):基于静态地图构建,覆盖整个环境范围,主要用于全局路径规划。局部代价地图(Local Costmap)
2025-04-16 20:07:36
1036
原创 【ROS】AMCL 定位节点
本文将介绍 ROS 导航系统中的一个关键外部节点 ——AMCL 定位节点。map_server提供的静态地图当前时刻激光雷达发布的/scan数据底盘提供的/odom里程计数据各传感器间的TF 坐标关系AMCL 使用其内置的自适应蒙特卡洛算法,融合上述信息,实时估算机器人在地图中的精确位置和姿态,最终通过 TF 广播出的坐标变换。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 MelodicROS导航系统 | AMCL 定位算法AMCL 全称为。
2025-04-16 14:43:19
907
原创 【ROS】全局规划器
本文介绍 ROS 导航系统中核心节点的内部模块——全局规划器(Global Planner)。该模块根据map_server提供的静态地图信息、AMCL定位节点的起始位姿(位置和朝向)、用户或系统提供的目标位姿(位置和朝向),以及选择的全局规划器和其参数,生成从起始点到目标点的静态可行路径。值得注意的是,这一过程不考虑动态障碍物,也不考虑机器人底盘是否能够沿着该轨迹行驶,这些因素将在局部规划器中处理。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 Melodic。
2025-04-16 09:06:59
781
原创 【ROS】move_base 导航节点概述
本章介绍 ROS 导航系统中的核心节点move_base,它负责路径规划和导航控制,是系统的调度中心。我们将简要讲解其内部模块结构,以及运行所需的外部节点数据,为后续内容做铺垫。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 Melodicmove_base,年轻人的第一次导航。
2025-04-15 20:39:58
1126
原创 【ROS】map_server 地图的保存和加载
在 ROS 中,想要实现导航功能,首先需要一张已建好的地图。导航系统依赖这张地图进行路径规划、定位和障碍物避让等操作。本文将讲解在使用gmapping或建图后,如何保存和加载地图。本章面向 ROS 初学者,系统地讲解地图的保存与加载流程,为后续的定位与导航功能奠定基础。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 Melodic如何在 ROS 中保存和加载地图ROS Wiki - map_server 官方文档。
2025-04-15 20:02:38
738
原创 【ROS】Gmapping 建图
在 ROS 中实现自主导航功能的前提是具备一张已知环境的地图。导航系统依赖该地图进行路径规划、定位和障碍物避让等操作,而这些功能通常通过move_base等导航功能包来实现。因此,建图是 ROS 导航流程中的关键步骤之一。本章将面向 ROS 初学者,系统性地讲解如何使用Gmapping进行地图构建(Mapping),为后续的定位与导航打下基础。本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 Melodic如何使用Gmapping进行SLAM建图。
2025-04-15 19:53:26
1436
原创 【ROS】Navigation 导航系统概述
本文主要阐述ros中导航系统的框架架构以及大致实现的原理,本部分内容比较简单,详情可见本文所附资料,不过多赘述本教程使用的环境是:实体 ROS 小车,Ubuntu 18.04,ROS1 Melodic5分钟,看懂ROS的Navigation导航系统本部分简要介绍 ROS 中的 Navigation 导航系统的整体架构与工作流程。如果你是初学者,建议观看下方视频,快速理解导航系统的核心逻辑:5分钟,看懂 ROS 的 Navigation 导航系统。
2025-04-15 19:45:55
553
原创 【ROS】软件包后期添加依赖
在创建 ROS 软件包时,通常会一次性添加好所需的依赖项。但在开发过程中,常常会临时需要用到新的消息类型或功能包,这时就需要给已有的软件包手动添加新的依赖项。我们不能像最初创建时那样用命令添加,而是要通过修改配置文件来完成。下面就以nav_msgs为例,讲解如何添加新的依赖包。
2025-04-10 18:10:23
963
原创 【ROS】分布式通信架构
在使用 ROS 时,我们常常会遇到某些设备计算能力不足的情况。例如,一辆搭载 ROS 的智能车,可能无法独立完成所有计算任务。此时,可以通过ROS 的分布式通信架构,让其他设备协助其完成部分功能。什么是 ROS 分布式通信?ROS 支持多个设备协同工作。通过网络连接,它们可以组成一个更大的 ROS 系统,实现节点之间的通信与协作。主机(Master):负责管理整个 ROS 系统,协调各个节点。从机(Slave):通过网络连接到主机,参与数据通信和处理任务。本文示例说明ROS 智能车(主机)
2025-04-09 15:18:08
1297
原创 【ROS 通信】Services 服务通信
ROS 的服务通信采用同步的请求-响应模式。节点角色服务端 (Server):提供服务并处理请求。客户端 (Client):发送请求并等待服务端的响应。客户端向服务端发送请求,并在等待服务端处理后接收响应。适用场景服务通信适用于需要明确交互和结果的场景,如查询状态、获取配置或执行特定操作等。客户端向服务端发送两个整数请求,服务端计算这两个数的和并将结果返回给客户端。在tutorial功能包中创建一个srv目录,用于存放自定义的服务消息类型。例如,创建一个文件,用于定义两个整数相加的服务消息。
2025-04-08 22:05:14
1162
原创 【ROS】集成功能包到工作空间
本文讲解如何将别的工作空间或者已经实现的功能包复制移植到我们的工作空间中,与git clone不同,是复制的过程。
2025-04-08 16:35:23
706
原创 【ROS】 CMakeLists 文件详解
在 ROS 的学习过程中,即使主要使用 Python 进行开发,仍然会频繁涉及文件。因此,本文将简要介绍的相关知识,并通过示例加以说明。在深入了解之前,我们首先需要理解它与之间的关系,以及 .c.cpp.o.so.a等文件的作用。此外,还需掌握编译、链接、构建、目标文件和可执行文件等相关概念,以便更好地理解的作用和使用方式。【编译、链接与构建详解】Makefile 与 CMakeLists 的作用。
2025-04-01 10:19:33
1039
原创 【编译、链接与构建详解】Makefile 与 CMakeLists 的作用
在大型项目中,通常会使用 C 或 C++ 语言进行开发,而编译、链接、构建等概念,以及相关工具如 GCC、G++、NVCC、CMake、Make、Makefile 等,是每个开发者都无法绕过的重要内容。这些概念虽然至关重要,但往往容易混淆。因此,本文将简明扼要地介绍这些概念,帮助读者更深入地理解编译、链接与构建过程。.o。
2025-03-31 20:01:01
1355
原创 【ROS】Darknet_ROS YOLO V3 部署自训练模型 目标检测
本文适用于已掌握YOLOv3和Darknet基础知识的读者,旨在帮助大家快速在ROS上部署自定义 YOLOv3 模型,实现目标检测。为了聚焦于部署流程,本文不会详细讲解原理部分。如需补充相关前置知识,请参考以下文章:数据集标注(手动标注)【YOLO】X-AnyLabeling 数据集标注数据集标注(AI标注)【YOLO】X-AnyLabeling 半自动标注训练 Darknet 自定义模型(本机)【YOLOv3】目标检测 Darknet 训练自定义模型训练 Darknet 自定义模型(服务器)
2025-03-28 15:06:36
1180
原创 【YOLO V3】Darknet AutoDL 训练自定义模型
本文适合已经掌握 YOLO V3 和 Darknet 基础知识的读者,帮助他们快速上手在 AUTODL 服务器上训练自己的 YOLO V3 模型。因此,本文不会过多赘述原理部分,详细内容请参考-【YOLO V3】目标检测 Darknet 训练自定义模型。YOLOv3 Darknet 适用于资源要求较低的嵌入式设备,具有较快的推理速度,特别适合在资源有限的条件下进行轻量化部署。【YOLO V3】目标检测 Darknet 训练自定义模型。
2025-03-25 22:26:01
778
原创 【YOLO V3】目标检测 Darknet 训练自定义模型
对于初学者而言,学习 YOLO 并实现目标检测时,并不需要深入理解底层原理。本篇文章的重点是如何快速上手 YOLOv3,使用 Darknet 源码训练自定义模型,并实现目标检测。PS:本文适用于已有 YOLOv5 基础的读者,你可以参考【YOLO V5】目标检测 WSL2 AutoDL VScode SSH学习 YOLOv5。由于 YOLOv5 的 PyTorch 训练方式与 YOLOv3 的 Darknet 训练方法存在相似之处,两者是互通的,这将有助于你更快理解和上手 YOLOv3。
2025-03-21 13:09:01
1076
原创 【YOLO】X-AnyLabeling 半自动标注
本文介绍如何使用进行半自动图像标注。先用小数据集训练一个初步模型,让其自动标注更多数据,再人工修正不准确的部分,最终导出完整数据集进行训练,以提升模型精度。【YOLO V5】目标检测 WSL2 AutoDL VScode SSH【YOLO】数据集标注 X-Anylabeling【YOLO】AutoDL 训练模型X-AnyLabeling 自定义模型X-AnyLabeling自动标注数据集并训练自己的YOLO11目标检测模型【YOLO】X-AnyLabeling自动标注工具,AI帮你解放双手加载模型。
2025-03-12 09:24:31
1141
原创 【YOLO V5】Pytorch AutoDL 训练自定义模型
本文适合已经了解YOLO相关基础知识的读者快速上手使用AUTODL服务器训练自己的YOLO模型【YOLO V5】目标检测 WSL2 AutoDL VScode SSH【YOLO】数据集标注 X-Anylabeling。
2025-03-11 17:27:29
932
原创 【YOLO】X-Anylabeling 数据集标注
本文将介绍如何使用软件进行 YOLO 格式的数据集标注与导出。对于初学者来说,建议参考进行安装与使用。特别是在第1.2节“Running from GUI”中,详细介绍了如何通过GUI进行操作。为了快速开始,建议前往页面,下载适合你系统的GUI版本。我个人下载并使用的是X-AnyLabeling自动标注数据集并训练自己的YOLO11目标检测模型(推荐)【YOLO】X-AnyLabeling自动标注工具,AI帮你解放双手(官方文档)
2025-03-11 15:56:07
3913
2
原创 【YOLO V5】目标检测 WSL2 AutoDL VScode SSH
对于初学者来说,学习YOLO和实现目标检测时,其实不需要了解底层原理,比如CNN神经网络。虽然这些知识有助于深入理解,但如果只是想快速上手YOLO,不必从这些复杂的原理开始。本篇内容正是基于这个思路,重点讲解如何快速上手YOLO,如何在服务器上训练自己的模型,并实现目标检测。本文以 YOLOv5 在 COCO 数据集上的训练为例,阐述 YOLOv5 目标检测任务的完整实现流程。WSL2 Ubuntu 20.04 YOLOv5 PyTorch 1.7.0 VSCode SSH连接autoDL服务器。
2025-03-05 12:47:45
1230
原创 【WSL2】 Ubuntu20.04 GUI图形化界面 VcXsrv ROS noetic Vscode 主机代理 配置
本文基于 Win11专业版,实现了在 WSL2 环境下配置 Ubuntu 20.04,支持Rviz Gazebo等图形化界面应用运行,安装并配置 ROS Noetic、VSCode如何使用 WSL 在 Windows 上安装 Linux在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用开始通过适用于 Linux 的 Windows 子系统使用 Visual Studio Code通过 VcXsrv 在 WSL2 上使用图形化界面wsl rviz可视化。
2025-02-24 15:33:33
2528
2
原创 【ROS】Ubuntu20.04 Vscode 无法代码补全
在使用VSCode开发ROS代码时,无法获得代码自动补全功能,即使正确引入了头文件,VSCode 也无法提供有效的代码提示。解决Ubuntu20.24中Vscode无法自动补全ROS相关代码。
2025-02-01 15:43:44
905
原创 【Samba】Ubuntu20.04 Windows 共享文件夹
本文基于和Windows 10系统,介绍如何通过配置 Samba 服务,使得 Windows 可以访问 Ubuntu 的共享文件夹,并实现网络驱动器的映射。Ubuntu22.04 添加samba,并在windows访问 的详细教程ubuntu与windows之间的文件共享。
2025-01-27 21:44:34
2245
原创 【Ubuntu 20.04】AX211网卡驱动安装 Wifi图标消失
本文基于【】平台,解决了AX211无线网卡无法连接 WiFi、无 WiFi 图标的问题。Ubuntu系统如何连接WiFiUbuntu 20.04 没有wifi解决方法 Realtek版本Ubuntu20.04双系统 无线网卡驱动(未发现wifi适配器)、Nvidia显卡驱动安装一条龙教程+疑难杂症修复【多坑预警】y7000p&2023&AX211&ubuntu20&无线网卡驱动。
2025-01-23 02:23:03
6393
8
原创 【KNN】手写数字识别
本文基于 KNN 机器学习算法,实现了简单的手写数字识别。KNN 不过多介绍,可以参考KNN算法(k近邻算法)原理及总结。KNN算法(k近邻算法)原理及总结004-KNN近邻算法-手写数字识别案例实现kNN算法实现手写数字识别(机器学习)
2024-11-11 09:20:53
899
3
原创 【Python】项目结构
本文总结了 Python 项目结构的知识,规范项目结构能使得项目开发过程高效流畅,提升代码可读性、团队协作效率,并便于维护、扩展和共享。各类 Python 项目的项目结构及代码组织最佳实践。
2024-11-10 08:50:54
2386
原创 【树莓派5B】OpenCV安装
本文基于树莓派5B((Debian 12 Bookworm))平台,总结了Anaconda和OpenCV安装的问题树莓派anaconda安装教程树莓派anaconda虚拟环境配置树莓派5B配置OpenCV。
2024-10-24 20:36:57
2149
3
原创 【树莓派 5B】anaconda换源 更换清华源
本文基于树莓派5B上运行的(Debian 12 Bookworm)平台,更换 Anaconda 官方源为清华大学镜像源,旨在解决网络连接超时、连接官方源失败、下载速度慢的问题。
2024-10-24 16:59:56
756
原创 【树莓派5B】pip清华源 PYpi清华源
本文基于树莓派5B上运行的(Debian 12 Bookworm)平台,总结了如何将 pip 的 PyPI 源更换为清华大学的镜像源,以提高 Python 包的下载速度。
2024-10-24 12:28:32
735
原创 【树莓派 5B】换源 更换清华源
本文基于树莓派 5B 设备上的 Raspberry Pi OS 32bit (Debian 12 Bookworm) 平台,为树莓派更换国内清华镜像源,解决了网络下载速度慢、包管理器源不稳定的问题,改善树莓派的包管理器更新速度。参考资料树莓派换源教程树莓派4B更换清华源和没有公钥报错清华源 raspbian | 镜像站使用帮助源是指软件源,也就是软件仓库。更换源实际上就是更换树莓派的软件仓库。默认情况下,树莓派使用官方的软件源,服务器位于国外,导致软件更新和升级速度较慢。因此,我们选择更换为清华源。
2024-10-17 17:14:11
2974
3
原创 【树莓派 5B】重启后vnc无法使用失效
树莓派5B Raspberrypi-OS-32bit(Debian12 Bookworm)本文解决了重启后VNC无法正常连接的问题,避免每次重启后手动配置VNC树莓派配置环境:无网线、无显示器、已连接手机热点、基于 Putty参考资料树莓派5最新官方系统VNC失效解决办法。
2024-10-16 11:08:30
937
原创 【树莓派 5B】Python 版本切换
本文基于树莓派5B 32-bit 树莓派OS,以 Python-3.11.2 降级到 3.9.2 为例,总结了在树莓派上切换 Python 版本的步骤,帮助大家轻松完成 Python 版本的切换。只需将下载本文中Python的版本号,修改为你想切换的版本号即可树莓派 python3.9降级为python3.7莓派上快速安装Python3.6.5。
2024-10-16 10:09:39
2869
3
原创 【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波
本篇文章基于卡尔曼滤波的原理详解与公式推导,来详细的解释下如何使用卡尔曼滤波来解算MPU6050的姿态。
2024-10-10 09:28:58
7135
17
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人