- 博客(461)
- 资源 (63)
- 收藏
- 关注
原创 【ROS2实战笔记-7】ros2top:用看进程的方式看ROS 2节点
本文介绍了ros2top——一款专为ROS2系统设计的命令行监控工具。该工具通过主动注册机制将系统进程与ROS2节点关联,在终端界面实时显示各节点的CPU、内存和GPU占用情况,解决了传统工具无法区分节点级资源消耗的问题。文章详细分析了其工作原理,包括节点注册机制、资源采集方式和数据呈现方法,并探讨了实际应用场景与局限性,如必须修改节点代码、仅支持NVIDIA GPU等。同时对比了rotop等替代方案,指出ros2top适合开发调试阶段快速定位性能问题,而生产环境可能需要结合其他工具使用。最后展望了未来可能
2026-04-16 10:21:04
351
原创 【ROS2实战笔记-6】RobotPerf:机器人计算系统的基准测试方法论
RobotPerf解决了一个实际问题:当你需要在多种硬件平台(CPU、GPU、FPGA、ASIC)之间做出选择,或需要评估某个硬件是否满足特定机器人负载的实时性要求时,它提供了一个标准化的评估方法。它不完美,有局限性,但它是目前少数以ROS 2计算图为核心、兼顾黑盒快速评测和灰盒深度追踪的基准测试框架。理解RobotPerf的设计思路——分类命名体系、黑盒与灰盒的权衡、与ros2_tracing的集成——有助于判断它是否适合自己的需求。
2026-04-16 10:20:01
415
原创 【ROS2实战笔记-4】Gazebo:从通信桥接到性能瓶颈相关技术梳理
《Gazebo仿真环境进阶指南:关键细节与性能优化》 摘要:本文深入探讨ROS2中Gazebo仿真的进阶使用技巧,重点分析三类核心问题:1)通信桥接机制,解析Gazebo与ROS2的协议差异及ros_gz_bridge实现原理;2)性能优化策略,揭示ECM管理、物理步长设置等关键瓶颈;3)传感器噪声模拟与惯性参数配置的重要性。特别指出新版Gazebo的架构变化带来的迁移成本,包括SDF文件兼容性、插件接口重构等实际问题。通过剖析多机器人仿真中的典型问题,为开发者提供避开常见陷阱的实用建议,帮助提升仿真效率与
2026-04-15 11:00:10
406
原创 【ROS2实战笔记-3】RViz2图形底层与调试暗坑
RViz2深度解析:那些官方文档没讲的细节 本文深入探讨RViz2的底层架构与开发实践中的关键问题: Ogre2引擎迁移:分析从Ogre1.x到Ogre2.x的架构变化,揭示批处理优先机制对渲染效率的提升及其副作用(调试困难、老旧GPU支持问题) 插件开发陷阱:解析插件串行执行、Qt依赖管理和描述文件规范等常见问题,提供线程优化方案 性能优化策略:针对点云分辨率、Marker管理和高分辨率图像等场景,给出具体优化建议 疑难问题排查:涵盖启动崩溃、WSL2黑屏、多机器人可视化等特殊场景的解决方案 交互细节:整
2026-04-15 10:59:03
330
原创 「ROS2实战-2」集成大语言模型:ollama_ros_chat 本地智能对话功能包部署和使用解析
本文介绍的 ollama_ros_chat 功能包,正是这样一套解决方案。它将本地部署的 DeepSeek-R1 等大语言模型无缝集成到 ROS2 系统中,通过服务通信和话题通信两种方式,为机器人提供安全、低延迟、可离线工作的智能对话能力。
2026-04-13 10:00:41
412
原创 〔ROS2 实战笔记-1〕Navigation2 导航框架解析
《Navigation2:现代机器人导航框架解析》 摘要:Navigation2是新一代开源机器人导航框架,在继承经典导航栈基础上引入了行为树编排、模块化服务等创新设计。该框架包含全局规划器、局部规划器、代价地图三大核心模块,通过行为树实现灵活的任务流程控制。全局规划器支持多种路径搜索算法,局部规划器处理实时避障与运动控制,代价地图则整合静态环境与动态障碍物信息。其生命周期管理机制确保系统稳定性,丰富的恢复行为模块可应对各类异常情况。该框架采用插件化架构,已广泛应用于服务机器人、工业AGV等多个领域
2026-04-13 09:58:39
530
原创 ROS导航调优中的冷门陷阱与反直觉现象
导航调试避坑指南:本文聚焦ROS导航栈中TEB和代价地图配置的常见误区,包括机器人外形参数不一致导致轨迹被拒、膨胀层参数反直觉影响路径规划、TEB优化器参数隐式关联等核心问题。通过真实案例解析,指出footprint顶点顺序错误会引发碰撞检测失效、增大膨胀半径反而导致路径贴墙等反直觉现象,并提供针对性解决方案。特别强调调试时应系统观察全局/局部路径、代价地图和机器人足迹的联动关系,避免孤立调整参数。文中技术要点均来自实践验证,可帮助开发者快速定位"耗时一天却找不到原因"的典型问题。
2026-04-10 16:37:00
477
原创 ROS导航调参指南:机器人模型、TEB/DWA与Costmap全解析
本文系统总结了ROSNavigation框架下机器人导航参数调优经验,重点涵盖三个核心环节:1)机器人足迹模型构建,强调多边形模型对精确碰撞检测的重要性;2)代价地图参数设置,包括inflation_radius和cost_scaling_factor的调优策略;3)teb_local_planner的详细参数解析,涉及运动学约束、避障参数和优化权重等关键配置。文章对比了teb与dwa规划器的特性差异,并提供了实用的调试工具使用建议和理论最小通道宽度计算公式。最后提出四步调优流程:从模型校准到全局/局部路径
2026-04-10 16:35:59
468
原创 嵌入式Linux系统编译与定制:从零构建你的RK3576固件
在嵌入式Linux开发中,编译整个系统固件是一项基础但至关重要的工作。不同于桌面Linux的“一键安装”,嵌入式系统往往需要针对特定硬件平台进行裁剪、配置和打包。今天,我们以Rockchip RK3576平台为例,详细梳理一套完整的系统编译流程,并分享一些实用的定制化技巧。
2026-04-09 15:17:43
371
原创 使用MoveIt进行抓取与放置--Pick and Place流程
本文详细介绍了如何使用MoveIt实现机械臂的pick和place操作。主要内容包括:1.解析moveit_msgs::Grasp消息的关键字段,包括抓取姿态、接近路径、手指动作等;2.搭建包含两张桌子和待抓物体的仿真环境;3.构造完整的抓取和放置动作,涵盖位姿计算、路径规划等细节;4.执行pick和place操作的具体方法;5.常见问题解决方案。通过本文,读者可以掌握MoveIt中物体抓取和放置的基本原理与实现方法,为更复杂的机器人操作任务奠定基础。
2026-04-09 09:53:14
320
原创 深入 ROS-Industrial:如何将 Dijkstra 与 TOPP(时间最优轨迹规划) 整合成工业级路径规划方案
摘要:本文探讨工业级机械臂路径规划面临的工程挑战,提出基于ROS-Industrial的Descartes和MoveIt框架的解决方案。针对逆运动学多解选择问题,采用Dijkstra算法构建候选解图进行全局最优路径搜索;针对轨迹时间参数化问题,集成TOPP(时间最优轨迹规划)算法,满足动力学约束。文章详细阐述了从多解寻优到时间参数化的完整技术链路,包括环境配置、算法实现和仿真验证流程,为工业场景下的机械臂轨迹规划提供了标准化实现方案。
2026-04-09 09:52:10
314
原创 ORB-SLAM3:从特征提取到稠密点云建图
本文通过ORB-SLAM3中的两个核心模块——ORB特征提取器和稠密点云建图,来深入探索视觉SLAM背后的技术原理。本文将以源代码解析的方式,带你走进SLAM的奇妙世界。
2026-04-08 10:56:44
751
原创 ROS Stage(轻量级2D仿真工具)仿真入门
Stage是一个2D多机器人仿真器,它作为ROS的一个节点(stageros)运行。Stage通过.world文件定义整个仿真世界——包括环境地图、障碍物、机器人模型以及各类传感器。
2026-04-07 16:43:38
333
原创 ROS2(humble) + Cartographer 安装与仿真指南
本文将带你完成以下任务:基础环境:安装Ubuntu 22.04和ROS2 Humble。核心编译:从源码编译Cartographer及其ROS2接口。仿真验证:在Gazebo中启动Turtlebot3,使用Cartographer进行建图。代码入门:了解ROS2的节点、话题、服务概念,并掌握如何编译自己的Python节点。
2026-04-05 15:04:02
425
原创 ROS Flutter GUI App:跨平台机器人可视化控制界面使用记录
项目地址:https://github.com/chengyangkj/ROS_Flutter_Gui_AppROS Flutter GUI App 是基于 Google 的 Flutter 框架开发,能够一套代码同时运行在 Android、iOS、Web、Linux、Windows 和 macOS 平台,为 ROS1/ROS2 机器人提供统一的可视化控制界面。
2026-04-04 15:07:06
333
原创 LeRobot “机器人万能接口”:现状与前沿进展
LeRobot 由前特斯拉工程师 Remi Cadene 领衔,是 Hugging Face 推出的一个雄心勃勃的开源项目。它的目标并非打造某一款特定机器人,而是为机器人领域的机器学习构建一套标准化基础设施,旨在打破传统局限,推动该领域从 “手工作坊” 式的分散开发,迈向 “平台化” 的高效发展模式。
2026-04-04 15:04:50
307
原创 laser_line_extraction线段提取开源功能包解读和使用例程
laser_line_extraction 是一个功能明确的 ROS 软件包,专门用于从二维激光雷达数据中实时提取直线线段。本文主要介绍他的运行方法
2026-04-03 11:00:56
365
原创 laser-line-segment线段提取开源功能包解读和使用例程
是一个基于种子区域生长算法的二维激光线段提取开源项目,由南开大学机器人与自动化信息系统研究所团队开发,相关论文发表于《International Journal of Advanced Robotic Systems》。该算法针对传统分割合并算法在完整性和计算效率上的不足进行了改进,在走廊、实验室等半结构化室内环境中表现出更优的性能。
2026-04-02 16:49:30
379
原创 Cartographer 建图与调参实战指南
调试 Cartographer 可遵循以下流程:验证硬件算力与里程计精度;确定传感器融合方案(底盘里程计/激光里程计/IMU);规划合理建图路径,避免过度遍历相似环境;根据地图效果反向调整前端(匹配权重)与后端(闭环阈值)参数。
2026-04-02 16:48:24
281
原创 AGV如何借助走廊特征与里程计,实现长走廊精准通行
通过特征识别长走廊两侧墙壁来获取AGV的角度,并将位置估计交给里程计累计,在理论上是可行的,但在实际应用中,此方法只能作为定位系统的一个组成部分:利用墙壁特征实时校正航向,并同时利用两侧距离约束校正横向位置,再结合稀疏的绝对位置标记(如地面二维码)定期消除累积误差,最后通过多传感器融合(激光+IMU+编码器)获得平滑可靠的位姿估计。这种分层融合的方式能够在成本、复杂度和精度之间取得良好平衡,也是当前工业移动机器人定位的主流技术路线。
2026-03-14 11:03:34
29
原创 紧耦合与松耦合及在Slam中的应用
在SLAM中,松耦合(Loosely-coupled) 与 紧耦合(Tightly-coupled) 是两种核心的多传感器融合策略,其核心区别在于融合阶段与信息利用的深度。:在自动驾驶中,将原始GNSS观测值、原始IMU数据、以及视觉/激光特征一同放入一个庞大的状态估计器(如滤波或优化器)中进行实时解算,以实现厘米级、稳定可靠的定位。简单来说,松耦合是“先独立求解,后结果融合”,而紧耦合是“未解算先融合,联合优化求解”。传感器可相互“扶持”,例如在视觉失效时,IMU/激光仍能提供有效约束。
2026-01-29 11:33:02
54
原创 紧耦合与松耦合及在Slam中的应
在SLAM中,松耦合(Loosely-coupled) 与 紧耦合(Tightly-coupled) 是两种核心的多传感器融合策略,其核心区别在于融合阶段与信息利用的深度。:在自动驾驶中,将原始GNSS观测值、原始IMU数据、以及视觉/激光特征一同放入一个庞大的状态估计器(如滤波或优化器)中进行实时解算,以实现厘米级、稳定可靠的定位。简单来说,松耦合是“先独立求解,后结果融合”,而紧耦合是“未解算先融合,联合优化求解”。传感器可相互“扶持”,例如在视觉失效时,IMU/激光仍能提供有效约束。
2026-01-29 11:30:19
52
原创 fasterlio原理及代码框架梳理
Faster-LIO 的优势是在保持同等高精度的前提下,显著提升计算效率,以支持更极端的应用场景(如高速无人机)和更廉价的硬件平台。可以把 Faster-LIO 理解为用一把更快的“空间哈希筛子”(iVox)替换了原来精细的“动态平衡树”(ikd-Tree),从而在精度损失极小的情况下,实现了效率的显著提升。:只在实际有地图点的空间区域动态创建和保留体素单元,形成一个稀疏的体素地图。是关键:将去畸变点云中的每个点,在 iVox 维护的局部地图中搜索近邻(如5个最近点),构建点到面的距离残差。
2026-01-29 11:29:10
146
原创 ROS2实现gazebo+cartographer+movebase导航
基础小车负责移动,而你可以通过安装不同的上层模块(如激光雷达、机械臂、不同型号的相机等)和不同的底层主板(如树莓派、NVIDIA Jetson),来实现 SLAM、导航、视觉跟随等多种功能。它主要设计用于教育、研究和原型开发,是学习 ROS 和机器人技术的绝佳工具。gazebo退出未完全退出,Gazebo进程非正常退出。将以下命令添加到你的 ~/.bashrc 文件末尾,以确保每次打开终端都能正确加载 ROS2 和 Gazebo 环境。绘制世界,绘制完以后的世界文件,拷贝模型文件夹到。
2026-01-29 11:26:11
36
原创 fastlio2原理详解
其核心是利用IMU的高频数据(通常100-500Hz)进行状态预测(前向传播),同时利用激光雷达扫描(通常10-100Hz)作为观测来校正状态。转换了卡尔曼增益的计算公式,将对大维度观测矩阵的求逆(点云数量级)转换为对小维度状态矩阵的求逆,从而极大提升了计算效率。:利用预测出的连续IMU状态,将一帧内每个激光点根据其时间戳反向插值,统一校正到扫描结束时刻,输出无畸变的点云。收敛后,用最终的状态将本帧点云。,根据其精确的时间戳,利用前后两个IMU位姿进行插值,计算出该点采集时刻的精确位姿,再将其全部。
2026-01-28 10:31:58
47
原创 linux中使用gdb找到程序崩溃点的方法
当程序崩溃时,gdb会停止并显示崩溃的相关信息,包括崩溃的信号(如SIGSEGV)以及崩溃时程序执行的位置(通常是某个函数或某行代码)。如果程序崩溃时没有生成core文件,可以设置系统在崩溃时生成core文件,然后重新运行程序,再用gdb加载core文件进行分析。然后再次运行程序,当程序崩溃时,会在当前目录生成一个core文件(通常是core或core.linux gdb 程序,run后,程序崩溃,如何进一步查看程序崩溃详细信息。:切换到指定的堆栈帧,然后可以查看该帧的局部变量和源代码。
2026-01-16 14:15:38
66
原创 fasterlio和fastlio2的安装
Faster-LIO是一个在FAST-LIO2基础上深度优化的轻量级激光雷达-惯性里程计系统。FAST-LIO2:一种快速、鲁棒的、通用的激光雷达惯性里程计框架,FASTLIO2以高效紧耦合的方式迭代卡尔曼滤波器为基础,具有两个关键的新颖之处,可实现快速、稳健和精确的激光雷达的建图和导航。// 这一步会把静态库和头文件安装到 /usr/local/lib 和 /usr/local/include。路径/home/kobe/ws_livox/src/Livox-SDK-master/build。
2026-01-16 14:14:36
87
原创 linux指令操作相关记录
proc proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。*/usr usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。# 选项: -z : 使用 zip;
2025-02-13 14:21:53
494
原创 liosam编译问题
实际问题是库文件libmetis.so 的位置。它是一个运行时库,但是当应用程序查找它时,它的位置不在预期的目录中。在通过运行命令sudo make install -j8安装库gtsam 时,文件libmetis.so安装在/usr/local/lib/的默认位置,但是当我们启动 ros 工作区时,运行时库查看位置/opt/ros/melodic/库/因为lego安装时已经安装了gtsam因子图优化库,所以不需要再安装。因此我又重新编译了liosam工作空间。也就是说重新编译gtsam。
2024-07-09 09:12:28
517
原创 legoloam算法环境配置和调试笔记
文件夹pc2occupancygrid中的cmakelist.txt。出现这个说明卡了,重新执行make这步。GTSAM库,eigen安装依赖问题。可在.bashrc中添加。中的说明,修改相关路径。快建图完成的时候运行。
2024-07-09 09:10:33
243
原创 navigation运动规划学习笔记
提供的默认插件是从ROS 1移植过来的,即:DWB、NavFn,以及类似的恢复,如旋转和清除成本地图。还增加了一个新的等待固定时间的恢复。DWA算法的核心思想是根据移动机器人当前的位置状态和速度状态在速度空间 ( v , ω ) (v, \omega)(v,ω) 中确定一个满足移动机器人硬件约束的采样速度空间,然后计算移动机器人在这些速度情况下移动一定时间内的轨迹, 并通过评价函数对该轨迹进行评价,最后选出评价最优的轨迹所对应的速度来作为移动机器人运动速度, 如此循环直至移动机器人到达目标点。
2024-07-09 09:04:46
251
原创 激光雷达反光板算法总结
(2)实际雷达使用环境中,还会出现玻璃背景、大面积金属背景以及无尘车间中常使用的据有较高反射率的背景面,在这些具有较高反射率的环境中安装靶标,应避免将靶标安装在距离这类背景面较近的位置,至少保证有1米的水平距离,若无法避免,在靶标安装的背景面上贴上反射率较弱的贴纸,如透明磨砂贴纸这类漫反射贴纸;距离要求至少1米的距离。(3)在实际使用过程中,通常会出现将靶标安装在拐角的位置,拐角分为凹角和凸角两种情况,凹墙面安装靶标,靶标距离墙角的距离应保证大于1m;根据雷达的规格书提供的不同材料的强度,设定合适的阈值;
2024-02-21 16:38:54
1677
1
原创 Cartographer实现双雷达建图
TRAJECTORY_BUILDER_2D.num_accumulated_range_data = 2 --执行一次前端匹配需要的激光扫描分段数量。关于num_subdivisions_per_laser_scan。num_laser_scans =2,--订阅激光扫描话题数量。Frame改为 前雷达laser_1 后雷达laser_2。雷达的话题由scan改为,前scan_1 后scan_2。有些人说需要改成2,但我这里改成2反而不行,1才可以。
2023-11-23 17:30:19
1198
3
原创 Rviz运行报错/usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreConfig.cmake:44 (_qt5_Core_ch
原因是在修改qt报错问题的时候,删掉了相关的库。重装ros和操作rviz均不能解决问题。最后是把原来删掉的文件拷贝回来才可以;
2023-11-03 14:36:04
465
原创 二维码导航及惯导在二维码导航中的作用
但是在环境不干净的工厂,效果还是不太好的。因为二维码导航的AGV只是在二维码上方的时候才能准确得到位置信息,二维码之前的距离上其实是属于盲导,为了能够让AGV姿态更好,过码的时候不至于调整过大,就需要惯导模块来进行辅助导航。agv有几个位置值是非常重要的,一个是理论位置,还有一个是估算位置,还有一个是实际位置,通过这三个位置之间的差别,你就可以知道怎么去调整了。而且有的时候AGV会有丢码的情况,就是虽然从二维码上方经过,但是并没有识别出二维码,这个时候AGV盲导的距离就更长了,更加需要辅助导航。
2023-11-02 16:49:48
672
原创 cartographer去ros
保持cartographer_ros原封不动,对ros进行改造,使原来的ros变成一个"fake ros",首先把ros"多余"的部分清空,变成空循环,优化程序执行效率,然后再把ros的数据接口、定时器、rosbag等所有重要原始.c文件都打包起来把他们放在一起编译,最后把数据像原来ros的方式"喂"给cartographer_ros并加入ros_bridge,这样既不会丢失输入、输出原始ros的格式,也可以实现所有cartographer_ros的功能。我认为的去ros需要做的工作。
2023-11-02 16:39:12
385
原创 cartographer扫图及调参,调试总结技巧
cartographer的调参很复杂,去cartographer_ros的网页上看看谷歌自己写的tuning methods,单说cartographer的调参,先要确定自己用的主控板或者工控机性能怎么样,这个直接影响你的很多参数和效果,如果你多次测试感觉都不太好或者设备的确算力不够,我还是建议你录制rosbag离线建图。如果你的imu不超过1k的价格(尤其是低于100或者低于200,你自己测试发现零票和磁场干扰是很大的),我是不建议你在cartographer里面用imu的。
2023-11-02 16:35:28
561
原创 cartographer,ros,路径规划近两年的工作笔记
先验位姿的权重调大,平移和旋转的权重调小,而如果调参没作用的时候,(如果没有使用暴力匹配,测试的结果不准的时候,可以把ceres_scan_match_2d.cc的line 105,把计算残差的功能去掉,前端的先验位姿不准,后面ceres使用了不准的位姿,此时不准的位姿就会把准确的雷达和地图都带歪了,因此可以把ceres的平移和旋转的残差注释掉,不依赖其他任务的任务直接执行,依赖其他任务的任务,他依赖的任务执行完后,依赖计数就会减去1,当他所有的依赖任务执行玩,这个任务就被执行。
2023-11-02 15:59:48
900
《IS620N系列伺服设计维护使用手册》)-20170818new
2018-07-20
Open EtherCAT Society_ Home of SOEM and SOES.pdf
2019-07-16
EtherCAT主站开发方案-含ZedBoard和X86测试数据
2018-11-04
基于kithara实现的伺服电机控制代码-VisualStudio-ethercat
2018-07-20
puma560的运动学正解和逆解的C++源码.cpp
2020-01-13
机器人学 机器视觉与控制 MATLAB算法基础_中文版及源代码.zip
2019-08-31
mouseRGB.rar
2020-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅