- 博客(32)
- 收藏
- 关注
原创 VR遥操作机械臂系统:核心算法与数学方法全解析
本系统采用配置(相机固定,机械臂运动),目标是求相机坐标系到机械臂底座坐标系(base_link)的刚体变换TRtTRtpbaseR⋅pcamtpbaseR⋅pcamt其中RRR是3×33\times33×3旋转矩阵(RTRIdetR1RTRIdetR1),t\mathbf{t}t是平移向量。
2026-04-17 11:57:11
817
1
原创 YOLOv8 目标检测模型训练与 RK3588 NPU 部署全记录
第一次训练结果 mAP50=0.522,Precision 只有 0.448,但 Recall 接近 1.0。第一次手动分割验证集时,脚本 bug 导致带有空标签(无目标)的增强背景图进入了验证集。模型在这些图上的误检全部计入 Precision 分母,把 Precision 拉低。重新在 Roboflow 生成数据集,使用平台内置的 80/20 划分,不再手动分割。
2026-04-14 14:57:36
672
原创 机械臂视觉抓取系统 V1版本开发日志(内涵所有问题和分析过程)
相机安装在机械臂旁边(Eye-to-Hand 配置),相机输出的是物体在相机坐标系下的三维坐标,而机械臂的逆运动学需要物体在机器人基座坐标系下的坐标。手眼标定就是求这两个坐标系之间的刚体变换矩阵(旋转 R + 平移 t)。描述:目前机械臂的情况是 J5 会向上抬升而不是向下抬,圆柱体的情况是夹爪位于物品后方大概 8cm 的位置抓取,夹爪直接杵到地上日志证据IK OK J=[17.3,17.0,72.5,0.0,+21.86,0.0] ← J5 正值 = 向上翘。
2026-04-14 11:11:18
416
原创 Tailscale点击登录没反应以及和网络软件的TUN模式规则配置
A: 这是 IANA 专门为运营商级 NAT 预留的保留地址。Tailscale 的所有 IP(比如。
2026-04-07 13:40:14
723
原创 机械臂 VR 遥操作调试日志记录
Quest OpenXR world space(右手系):+X = 右+Y = 上(反重力方向)-Z = 用户正前方(玩家面向方向)机械臂 base frame(DH 定义):+X = 臂前方(末端伸出方向)+Y = 臂左侧+Z = 向上两个坐标系没有任何一个轴天然对齐,需要手动映射。
2026-03-26 10:07:15
561
2
原创 Claude Code 完整安装与使用攻略(Windows + Linux)
本文介绍了ClaudeCode的安装与使用指南。该工具能自动读取项目文件、执行命令、修改代码并支持自然语言交互。提供两种付费方式:订阅制适合高频用户,API按量计费适合尝鲜用户。详细说明了Windows和Linux系统的安装步骤,包括环境要求、安装方法和常见问题处理。同时介绍了VSCode和JetBrains IDE的集成方式,包括插件安装、主要功能和使用技巧。文章还提供了基本使用命令和参考链接,帮助用户快速上手这款AI编程助手。
2026-03-04 20:16:28
2215
原创 RK3588 上 ROS2 Humble + 串口机械臂驱动(ROS2安装流程 + V1版本Serial驱动)
目标:把我这版“能跑通闭环”的 ROS2 串口驱动写成一篇可复现、可维护、方便后续大改结构的工程记录。环境:RK3588(Ubuntu 22.04 / ROS2 Humble)代码:一个包里两个可执行文件:串口驱动 + 键盘 Teleop。
2026-02-20 23:04:10
1153
原创 (解决Git网络问题)Ubuntu(Orange Pi / RK3588)把工程上传到 GitHub 的完整流程总结(Windows差不多)
和必要配置,不提交构建/日志产物。在 workspace 根目录添加。作为密码(不能用账号密码)。GitHub 会要求你用。
2026-02-20 22:22:15
611
1
原创 Quest:视频 + 元数据 + 可点击目标(与RK进行UDP通信)
文章摘要:本文详细介绍了从零搭建RK(Rockchip)与Quest跨端实时视频交互系统的开发过程。系统通过RK端采集视频并推流至Quest,同时发送检测框元数据;Quest端实现视频渲染、检测框叠加显示及交互功能(悬停变色、点击回传)。开发采用分阶段验证策略:先建立UDP通信链路(Milestone1),再实现检测框渲染(Milestone2),逐步完成点击交互闭环(Milestone3-4)。关键技术点包括:二进制协议对齐、线程安全数据快照、OpenGL状态管理、射线命中检测优化等。当前系统已实现完整数
2026-02-15 22:21:07
1082
原创 RK 端UDP代码整合:视频推流 + 元数据框 + Quest 交互回传
本文介绍了一个基于RK平台的服务器程序(rk_server.cpp),实现了视频流、元数据和交互回传的多链路通信系统。系统包含三个核心模块:1) 通过GStreamer实现视频采集(MJPEG720p60)、转码(NV12)和H.264硬编码后RTP/UDP推送至Quest端(默认端口5004);2) 元数据模块以60Hz频率发送模拟跟踪数据(DetPacketV1协议),包含稳定ID、平滑移动的检测框;3) 接收模块监听两个UDP端口(9000/6001)分别处理手柄姿态数据(HandPacketV2)和
2026-02-15 21:33:19
970
原创 在 Quest 上用 OpenXR + MediaCodec + OES 外部纹理做一个“低延迟视频面板”(48小时的编码复盘)
本文详细介绍了在Meta Quest设备上实现局域网RTP/H264视频流接收、解码和渲染的全流程解决方案。系统采用RK3588/Linux端通过GStreamer发送视频流,Quest端通过C++网络线程接收并解析RTP包,经MediaCodec硬解后输出到SurfaceTexture。通过多层技术攻关解决了黑屏、纹理更新、shader编译、空间定位等关键问题,最终实现视频在XR空间中的HUD式显示。文章系统性地梳理了从网络接收、解码处理到OpenXR渲染的完整技术栈,并总结了调试过程中遇到的主要问题及解
2026-02-14 22:25:05
1089
1
原创 准备工作:OpenXR Sample 示例工程“去掉 UI 渲染”& RK3588→Windows 低延迟 UDP 视频链路
endif激光往往使用 alpha blending,放到最后更符合渲染顺序与深度混合预期。
2026-02-14 21:21:00
828
原创 【Quest/OpenXR】通过Quest设备用 UDP 实时发送手柄 Pose + Trigger/Squeeze:从 0 到跑通的完整复盘(含关键源码片段)
本文介绍了在Meta Quest设备上通过OpenXR采集手柄数据并通过UDP实时传输的实现方案。系统以100Hz频率发送左右手的Grip/Aim位姿、Trigger/Squeeze数值(0-1)及有效性标志,接收端采用Linux平台解析数据。关键技术点包括:1)OpenXR输入动作绑定和位姿获取;2)UDP网络通信实现;3)跨平台数据协议设计(采用固定结构体布局);4)Android权限配置。文章详细说明了开发流程、协议结构、代码实现及常见问题排查方法,为VR设备数据采集和传输提供了实用参考方案。
2026-02-13 10:41:48
977
1
原创 在香橙派5PLUS上部署VR设备参数程序尝试(Monado,WiVRn部署)(纯记录帖,球球各位大佬支支招)
本文记录了在Orange Pi 5 Plus开发板上配置Monado环境连接Meta Quest 2 VR头显的过程。主要步骤包括:安装Monado及相关依赖包、配置USB设备权限、设置用户组、创建配置文件和环境变量等。但在实际运行中遇到Monado服务无法识别Quest 2设备的问题。随后尝试安装WiVRn无线VR串流工具,又因系统图形栈问题(OpenGL回落CPU渲染、缺少Mali Vulkan驱动等)而失败。最终决定放弃PCVR串流方案,改为在Quest 2上开发原生应用,通过局域网与开发板通信的方案
2026-02-11 19:15:42
795
原创 Quest 2 手柄追踪完整开发指南
重点解释:告诉 OpenXR 我们在 Windows 平台上:指定使用 DirectX 11 作为图形 API为什么需要 D3D11?OpenXR 要求应用必须提供一个图形上下文(Graphics Binding),即使你的应用不做任何渲染。这是因为 OpenXR 本质上是为 VR 渲染设计的,它需要知道你用什么 API 来提交帧。虽然我们只是读数据,但仍然需要"假装"有个图形系统。
2026-01-11 17:31:21
1266
原创 预备知识总结
为了完成各种数据操作,我们需要方法来存储和操作数据。通常需要做两件重要的事:(1)获取数据;(2)将数据读入计算机后对其进行处理。首先,我们介绍n维数组,也称为。
2025-11-02 16:31:04
918
原创 1. 简单回顾Numpy神经网络
随机输入一组坐标数据进入神经网络模型,模型判断该坐标是否位于一个半径为1的圆圈内部,并且用matplotlib画出该点的位置,如果坐标在圆圈内部则标注为黄色点,如果在外侧则标注为蓝色点。
2025-10-26 14:27:32
812
原创 0. 旅途伊始:这是笔者的AI自学记录博客
有一定开发能力的码农,做过不少项目,对C/C++,Python能够比较熟练的应用,有一定的深度学习基础,学习过神经网络的基本概念,曾经使用pytorch搭建过可训练的多层感知机模型应用于项目中,因此流程有一定的了解。同时笔者也自己独立训练并部署过Yolo系列图像识别模型,对于成熟模型的操作流程也有一定的心得。
2025-10-26 14:13:07
780
原创 浅谈多个虚拟机(WSL和VMWare)的网络配置
在开发很多项目的时候,经常遇到虚拟机无法访问电脑的实体接口的问题,WSL解决了一部分问题,但是对于物理接口的访问配置过程会很复杂。而VMWare则是提供了虚拟机管理软件,大大减少了配置难度。但是对于WSL和VMWare同时存在并且能够同时访问互联网和使用ssh与主机(PC电脑)进行通信,可能需要对网络连接进行布局。
2025-04-01 20:11:12
1930
原创 第3章:雷达角度过滤
当我们的车的雷达安装的位置不够高的时候,雷达360度扫描就会将小车的一部分扫描进障碍物地图中,为我们的导航带来很多不便,就如下图这样。所以我们需要将其角度进行过滤,过滤掉会扫描到车身的特定角度,保留有效角度。获取雷达的数据,发现这里的角度是360度。
2024-12-27 21:34:04
548
原创 第2章:yahboom官方代码解析&ROS2的接口实现
我们需要尽量将算法和我们的插件解耦合,所以我们单独定义一个算法接口包,用于算法实现以及让插件获取算法库。初步思路是定义一个接口包,算法包和插件包共同引用这个接口,算法包实现接口包中的函数,插件包实现接口包中的共享库方法。算法会将自己编译为.so共享库文件,并存放在一个文件夹中,该地址会上传至参数服务器,插件启动时会从参数服务器获取该地址,以运行该算法中的方法。这样就只需要修改这个共享库的地址就可以切换不同的算法,不需要修改插件的代码,实现了完全的解耦。
2024-11-07 22:27:52
2315
原创 轻量级图像算法(三):算法效率检测
本项目的前三个章节搭建了初步的项目框架,从算法到工程到评估,可以证明本算法的高效性,以及在简易系统中的可实施性。但是该算法依然存在不足,接下来笔者会对算法进行改良,争取获得更高的速度和清晰的识别。
2024-10-31 20:56:57
780
原创 CMakeList编写和C++编译(无IDE)
a. 编写C++源文件,例如main.cpp。b. 在终端中,进入源文件所在目录。此命令会将main.cpp编译为myProgram可执行文件。,可以使用-l选项指定库名,如链接数学库。对于大型项目或需要管理多个源文件、库依赖等复杂情况,通常使用CMake这种更加先进的构建系统。cmake的优势:跨平台自动处理依赖关系可以生成不同IDE的项目文件更容易管理大型项目可以自动查找和配置库步骤如下:a. 编写C++源文件,例如main.cpputils.cpp等。b. 在项目根目录下,创建。
2024-10-28 14:39:08
1124
原创 轻量级图像算法(二):V4L2读取图像
上一章我们简单介绍了简易的图像识别算法,目前该算法只能简答实现对同一张图片的亮斑的简单识别,后续笔者会对该算法进行进一步优化,并且在多平台上部署,以验证算法的高效性和可移植性,下面正式介绍在Buildroot系统中部署该算法的工程如何设计。
2024-10-28 11:13:30
1913
1
原创 轻量级图像算法(一):识别亮斑算法和V4L2简单介绍
目前很流行的不少图像算法,如卷积神经网络(CNN),Region Proposal的目标检测方法等等,现有的大多数先进图像识别算法,特别是基于深度学习的方法,往往需要消耗大量的计算资源。本文将会提供一种巧妙的图像算法,这种算法的资源消耗量极少,但是一定程度上也牺牲了很多性能,但是依然能应用在特定的领域。第一章我们先讲清楚该算法的基础架构和应用,先从识别一张图片上的亮斑开始,本章节的算法会输出图片上亮斑的中心坐标。
2024-10-27 21:54:12
1181
原创 第1章:在ROS1上用Gazebo模拟导航
本章节主要介绍了如何在ROS中部署自己的路径规划算法,并提供了一种非常优雅简洁的规划算法在ROS系统中的替换方案。
2024-10-20 18:25:59
1760
1
原创 第0章:Python模拟路径算法+创建迷宫地图
本章主要介绍如何用python搭建地图,并转换为Gazebo可以识别的world格式,为将算法部署在ROS系统中做铺垫。
2024-10-20 17:42:02
787
原创 STM32按键点灯——对标志位,主循环和电平变化的简单应用(记录贴①)
这个题目的要点就在于理清思路,拿到这种需求的第一时间是想好怎么实现最终的目标,首先要想到,如果每次按下按键就会触发一个不同的事件,那么触发这个事件的条件一定要是按按键这个过程比较有标志性的动作,比如下降沿或者上升沿,或者最简单粗暴的,独立设置一个标志位,让这个标志位变化的某一个不可逆的瞬间作为这个标志性的动作。对于这种比较单一的模式逆向思考会更加简单。虽然这个题目非常简单,但是要很快地反应过来还是需要一定的编程思维,将自己的思路记录下来可以很方便的复盘自己思考这种题目的思路。
2024-03-09 15:37:28
2165
原创 基于Licheepi 4A的YOLOv5-Lite的部署
基于国产荔枝派4A的YOLOv5-Lite模型部署,希望国产的RISC-V周边越来越好
2024-03-08 11:20:09
2588
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅