登录社区云,与社区用户共同成长
邀请您加入社区
我们接下来按这条主线学ROS2只是贯穿其中的一套“机器人软件基础设施”。
读取图片↓理解图片是矩阵↓灰度处理↓模糊与去噪↓二值化↓边缘检测↓轮廓检测↓视频处理↓摄像头↓目标检测↓YOLO / OCR / 视觉 AIOpenCV4 本身并不难。一张图片在计算机眼里就是一个数字矩阵。不断加工这些数字,最终从数字里找到我们真正关心的信息。YOLOOCR人脸识别无人机视觉具身智能机器人工业视觉那么 OpenCV 都非常值得先学一遍。Hello World + 基础工具箱。
Visual-Inertial Odometry,视觉+IMU,根据摄像头看到的环境特征估运动。甚至可以不用先算速度,直接利用支撑脚位置。从里程计参考系看,机器人已经向前移动约2.3m,横向偏了0.1m,朝向转了5°。:实验室里的光学动作捕捉系统可以非常准确地给机器人世界位置。你现在再看“多传感器融合”这句话,应该不再只是一个抽象词了。这条假设就错了,于是 Leg Odometry 也会骗人。:用
本文围绕面向城市环境的智能垃圾抓取机器人系统展开,重点介绍感知、决策与执行三大核心模块的设计与实现。系统以 OpenCV 实现颜色识别与目标定位,在树莓派上构建有限状态机完成任务调度,并基于 STM32 开发电机 PID 控制与机械臂逆运动学算法,形成一套从环境感知到抓取执行的完整闭环。根据城市垃圾抓取的实际作业流程,系统定义了以下核心状态:待机状态、巡检状态、识别状态、接近状态、抓取状态、放置状
现在正式进入动力学。
本文介绍了基于ROS的激光雷达测距实现方法。首先通过roslaunch启动wpr_simulation仿真环境,随后提供了一个C++节点代码示例,该节点订阅/scan话题获取激光雷达数据,并提取正前方(180度方向)的距离信息进行输出。代码核心是通过sensor_msgs::LaserScan消息的ranges[180]获取前方障碍物距离,并使用ROS_INFO打印测距结果。该方案适用于机器人避障
在非结构化环境中部署家用服务机器人,烹饪任务因其高变异性、长序列性和精细操作要求而被视为“皇冠上的明珠”。本文系统性地探讨了如何构建一个完整的管道(Pipeline),使通用机器人能够通过观看YouTube等平台的未经剪辑的烹饪视频,自动提取操作语义与动作序列,并在物理仿真环境SAPIEN中实现可复现的任务执行。
本文介绍了机器人运动的矢量/旋转坐标系定义(右手坐标系,x/y/z轴对应中/食/大拇指方向),解析了ROS中geometry_msgs/Twist消息结构(含线性/角度三维向量)。通过wpr_simulation开源项目实现机器人仿真,并给出C++控制代码示例:创建vel_pkg包和vel_node节点,持续发布包含x轴0.1m/s线速度的Twist消息到/cmd_vel话题。代码使用ros::R
本文介绍了ROS中TF变换的基本概念与实现方法。TF用于维护机器人坐标系间的位姿关系,包含广播器(TransformBroadcaster)发布坐标系变换和监听器(TransformListener)查询变换。文章详细讲解了父/子坐标系关系、四元数旋转表示,并提供了C++代码示例:创建一个10Hz循环的TF广播节点,发布激光雷达(laser_link)相对于底盘(base_link)的位姿变换(z
本文介绍了ROS自定义服务消息的实现方法,通过一个两数相加的服务案例详细讲解了服务端和客户端的开发流程。关键点包括:1) .srv文件格式规范(请求/响应);2) 服务端实现(回调函数、spin循环);3) 客户端调用(阻塞等待);4) 必要的配置修改(package.xml和CMakeLists.txt)。最后分享了一个语义巡逻机器人项目的进展,展示了PatrolControl.srv的实际应用
OpenCV是一个开源跨平台的计算机视觉库,提供2500+优化算法,支持C++/Python/Java等多种语言接口。其模块化设计包含核心功能、图像处理、视频分析、3D重建等,广泛应用于安防监控、自动驾驶、医疗影像、工业质检等领域。凭借高效性能、多平台支持和商业友好许可,OpenCV成为计算机视觉研究和应用的基础工具,从入门到复杂AI系统开发都不可或缺。
本文介绍了ROS2 launch文件的进阶使用技巧,主要包括:1. 事件系统控制节点启动顺序(如地图服务器启动后再启动导航节点);2. TimerAction实现延迟启动;3. ExecuteProcess运行非ROS命令;4. OpaqueFunction动态生成节点配置;5. GroupAction分组管理节点。文章还分享了实际项目中的三层launch文件结构设计(系统层、子系统层、节点层)和
每个标签都有一个黑白方形图案,检测器可以从图像中识别出它的 ID,并根据相机内参和标签实际尺寸估计出标签相对相机的 6D 位姿,也就是位置加姿态。在 ROS 2 项目里,它通常承担“视觉定位入口”的角色:相机提供图像和内参,AprilTag 检测器发布标签 TF,后面的运动规划或业务逻辑只需要使用这个 TF。如果要让机械臂根据标签运动,系统不仅要知道标签相对相机的位置,还要知道相机装在机器人哪里。
如果非要类比:聚焦注视的中心清晰区域 ≈ 500~700 万像素;全域理论极限 5.76 亿像素仅为数学假设,不具备工程参考意义;人眼天然是「亮度感知全域高密度、色彩感知局部高密度」的非均匀视觉系统,正是 YUV 编码的生物学原型。
4a采样数量bCr/V 永远和 Cb/U 成对出现,有一个 U 就配套一个 V。符号图例:●= Y(亮度,每个像素一定存在)■= 一组 (U,V) 色度采样点重要常识:人眼对亮度敏感、对色彩不敏感,所以压缩色差通道。
训练必须 RGB;YUV/NV12 只是边缘端硬件传输格式,依靠 BPU 内置预处理还原成 RGB 空间再计算,不能作为训练输入。
❌ RAW 不能直接送入驱动以外所有模块,必须经过 ISP;❌ CNN 模型理论输入是浮点张量 ≠ BPU 直接接收 NV12,依靠 BPU 内置硬件预处理做转换;❌ BPU 输出不是图片,想要可视化画框必须交给 OpenCV/GPU;❌ 相机驱动不会做图像格式转换,格式转换是 ISP/GPU/ 软件负责;❌ OpenCV 不能调用 BPU 推理 CNN,必须使用地平线原生媒体 SDK + BPU
重要前提: 1);MIPI CSI 链路只是传输通道,下面写的是模块接口能识别的2)RAW Bayer 无法直接进 BPU / OpenCV / GPU,必须先经过 ISP Debayer 3)RDK X5 BPU 最优输入:NV12;不接受 RAW。
MSA 的本质是把一个已有机器人模型转化为 MoveIt 能使用的配置包。↓MSA 加载模型↓生成 SRDF、规划组、自碰撞矩阵、命名姿态↓配置 IK、OMPL、joint limits↓配置 ros2_control 和 MoveIt controller↓启动 demo.launch.py↓RViz / API 调用 move_group 进行规划执行MSA 能解决的是 MoveIt 配置问题
表格方案感光面积数据量成本弱光性能适用场景拜耳 Bayer(1 像素单色)最大基础值低优秀手机、MIPI 工业相机、监控(99% 市场)单像素内置 R/G/B 三个感光单元缩小至 1/3×3极高很差几乎无商用产品Foveon X3 垂直堆叠中等×3极高一般小众单反,无法小型化。
如果你想抓取 RAW 帧,需要修改 mipi_cam/VIO 配置,让 ISP 旁路、直接输出原始拜耳数据;感光元件输出信号只有:电压值 = 入射光强弱,没有颜色信息。⚠️ 如果你在 ISP 配置写错阵列类型,RAW 解码出来。单个像素只有一种颜色,要得到完整 RGB 像素,必须。例:R 像素只有红色亮度,没有绿色、蓝色数据。绿光亮度最敏感,增加绿色采样,提升亮度信噪比。一个像素只有单一颜色,不满
结合整套工程(MIPI→NV12→推理→预览),先给出核心结论: 三者,工程里大量开销消耗在;最优方案是尽量在。
本文介绍了使用librealsense获取Intel RealSense摄像头数据的完整流程。首先提供了编译安装librealsense库的命令,包括可选择关闭图形界面编译以加快速度。然后给出了两个Python代码示例:第一个用于获取并保存RGB和深度图像,第二个用于生成并保存带颜色的点云数据(PLY格式)。代码展示了如何初始化摄像头、获取帧数据、处理对齐以及保存结果。文中特别指出了点云生成时需要
本文详细介绍了两种基于OpenCV的图像测量方法,它们各有优缺点和适用场景。方法一实现简单,适合规则排列物体的测量;方法二封装性更好,结果展示更丰富,适合更通用的测量场景。在实际应用中,可以根据具体需求选择合适的方法,或者结合两种方法的优点进行改进。例如,可以使用方法二的封装结构,同时允许用户选择不同类型的参考物体,从而提高测量的灵活性和准确性。图像测量技术在工业检测、物体识别、机器人视觉等领域有
这是地平线旭日系列开发板官方 GPIO 示例程序,实现下降沿中断检测按键 + LED 输出控制,具备Ctrl+C 优雅退出、GPIO 资源自动释放能力。运行平台:D-Robotics RDK X3 / X5Hobot.GPIO(地平线自研用户态 GPIO 库,替代树莓派 RPi.GPIO)硬件接线:BOARD 引脚 31 → LED 正极(串限流电阻),GND 接 LED 负极BOARD 引脚 3
python运行✅ 作用:Python 模拟 C 语言结构体内存布局,用来给libpostprocess.so(C代码)传递参数。注意:分类任务不需要 NMS,但结构体复用了和检测一样的模板,所以依然保留等字段,代码里直接填 0 即可。python运行:解析网络输出张量:返回 JSON 格式分类结果字符串其余结构体和 FCOS 代码完全一致,用途:封装 BPU 推理输出张量的内存地址、量化参数、s
核心前提:,shape =② Linux(RDK X5)桌面 / VNC 环境才能正常使用imshow;后台无桌面推理服务直接移除所有③ USB 相机采集必须指定后端。
亚像素角点检测是一种提高图像角点定位精度的技术,可将整数像素坐标优化至亚像素级别(如0.1像素)。OpenCV通过cornerSubPix()函数实现该功能,它利用局部灰度梯度信息进行迭代优化,使定位误差大幅降低(工业场景精度可提升20倍)。该技术通常与Harris或Shi-Tomasi等角点检测算法配合使用,广泛应用于相机标定、工业测量(PCB检测、尺寸测量)和机器人定位等高精度视觉任务。核心参
摘要:本文介绍了OpenCV中calibrateHandEye函数在机械臂手眼标定中的应用,包括"眼在手上"(Eye-to-Hand)和"眼在手外"(Eye-in-Hand)两种模式的实现原理。对于"眼在手上"模式,直接使用机械臂末端到基座的变换矩阵;对于"眼在手外"模式,只需对输入矩阵求逆即可复用同一函数。文章通过坐标系变换公式推导证明了两种模式的数学等价性,并说明了3D相机(RGBD/线扫相机
波士顿动力SDK漏洞测试不仅是技术挑战,更是保障人形机器人安全落地的关键。通过结构化测试框架和先进工具,从业者能有效预防系统级故障。
树莓派3B+ 人脸识别(OpenCV)相信大家都看了前面的OpenCV安装和人脸检测教程,有了基础后,现在我们正式进入重头戏——人脸识别 的教程。注意:该教程面向python2.7+OpenCV2.4.9(官方源)其它版本需进行一些小的修改,文中会具体注明。1.生成人脸识别数据目录结构./data 数据根目录./data/gener...
检测与分割的区别:https://www.leiphone.com/category/yanxishe/Fah5xOL3Qb96k1NL.html目标检测:预测包围盒YOLO,Fast-RCNN,似乎还有个SSD输入:一个矩阵(输入图像),每个像素有 3 个值(红、绿、蓝),如果是黑色和白色,则每个像素有 1 个值输出:由左上角和大小定义的边框列表图像分割:预测掩模记得最早是FCN?Mask RC
具体计算流程不详细写了,有很多大佬都提供了不错的学习做资料(个人的十大算法系列有kmeans,印象中有,读研的时候写的了)。这里为自己对比梳理与代码整理。聚类常用的是meanshift(均值漂移)与kmeans。效果对比暂时不放辣,后续更新。