APD激光接收器与点云形成原理
APD激光接收器与点云形成原理前言: APD是激光雷达中最常见的模拟接收器件之一。本文先介绍APD如何把微弱的回波光信号转换成电信号,再介绍激光雷达如何从一次次测距结果形成三维点云。 相关缩写: 缩写 全称 描述 APD Avalanche Photodiode 雪崩光电二极管,工作在线性模式的内部增益探测器 PIN Positive-Intrinsic-Negative 普通PIN光电二极管,无内部增益 SPAD Single Photon Avalanche Diode 单光子雪崩二极管,工作在盖革模式 TIA Transimpedance Amplifier 跨阻放大器,把光电流转换为电压 TDC Time-to-Digital Converter 时间数字转换器,测量飞行时间 CFD Constant Fraction Discriminator 恒比定时甄别器,用于抑制幅度走离 FOV Field of View 视场角 1 什么是APD APD(Avalanche...
FreeRTOS进阶篇(二)——内核移植
FreeRTOS进阶篇(二)——内核移植前言: 基础篇(二)介绍了 FreeRTOS 的工程结构,这一篇开始动手:以 M144Z-M3 最小系统板(STM32F103ZET6)为例,使用 FreeRTOS-LTS 202604.01-LTS 的内核,从一个能点灯的裸机工程出发,手动完成 FreeRTOS 内核的移植。移植完成后,两个 LED 会以不同周期闪烁。 1 准备工作1.1 硬件与软件环境 本文使用的硬件和软件环境如下: 项目 说明 开发板 M144Z-M3 最小系统板 STM32F103 版 MCU STM32F103ZET6,Cortex-M3,512 KB Flash,64 KB SRAM,最高 72 MHz LED LED0:PB5(红色),LED1:PE5(绿色),低电平点亮 工具链 arm-none-eabi-gcc 构建系统 CMake + Make/Ninja 基础库 STM32CubeF1 HAL;使用 StdPeriph...
MCU进阶篇(二)——Linux搭建STM32基础工程
MCU进阶篇(二)——Linux搭建STM32基础工程前言: 本篇在 Linux 下从零搭建一个 STM32F103ZET6 的裸机工程:用 arm-none-eabi-gcc 编译,用 CMake 管理工程,最后通过 GPIO 点亮 M144Z-M3 开发板上的 LED0 和 LED1。工程按 core、drv、strtup、lnk、cmake 分层组织,先不引入 RTOS,先做一个纯裸机工程。固件的下载和调试不在本文范围内,可以参考《OpenOCD 基础篇(二)——烧录和调试》。 1 目标与硬件1.1 最终目标 完成这篇文章后,应该得到这样一个工程: 在 Linux 终端里一条命令完成编译,生成 .elf、.hex、.bin。 工程按 core、drv、strtup、lnk、cmake 分层组织,结构清晰,便于后续扩展。 板载 LED0 每 500 ms 翻转一次,LED1 每 1000 ms 翻转一次。 本文不依赖 Keil、IAR 或 STM32CubeIDE,编译和链接全部在 Linux...
自娱自乐,我的博客(二十一)——CDN加速及图片在线压缩
自娱自乐,我的博客(二十一)——CDN加速及图片在线压缩前言: 文章中介绍了在Hexo博客中添加游戏功能,本文将介绍如何通过CDN加速游戏加载,减少流量消耗。 1 介绍 CDN(内容分发网络)是一种通过在全球范围内部署服务器,将内容分发到离用户最近的节点,从而加速网站访问速度的技术。对于Hexo博客来说,使用CDN可以显著提高页面加载速度,尤其是对于包含大量静态资源(如图片、视频、游戏文件等)的博客。CDN也可以起到节省流量的作用,因为它可以缓存资源,减少对源服务器的请求次数,从而降低带宽消耗。我在原来在腾讯云上部署了存储桶图床,每月花费高达七十多元,这其中流量消耗占了很大一部分,还有一部分是由于我使用的是原图未进行压缩,导致花费远高于正常的博客访问量。这篇文章将介绍如何通过CDN加速Hexo博客的加载速度,并减少流量消耗。 顺便一提,腾讯云的存储桶上传图片时可以选择图片质量,建议选择压缩成75%,可以有效减小图片大小,从而节省流量。 2 为存储桶COS添加CDN域名 在腾讯云上配置...
通讯传输
通讯传输前言: 在现代通信系统中,通讯传输速率是一个关键的性能指标,直接影响到数据传输的效率和用户体验。本文将介绍通讯传输速率的定义、计算方法以及影响因素。 1 通讯传输速率的定义 通讯传输速率(Data Transfer Rate)是指在单位时间内传输的数据量,通常以比特每秒(bps)或字节每秒(Bps)为单位。它反映了通信系统的效率和性能。比如,常见的通讯传输速率有10 Mbps、100 Mbps、1 Gbps等。串口通讯中常说的波特率(Baud Rate)也是一种传输速率的表示方式,指每秒钟传输的符号数量。 2 通讯传输速率2.1...
CMake进阶篇(二)——搭建Qt6工程
CMake进阶篇(二)——搭建Qt6工程前言: 本篇文章探讨通过CMake搭建一个Qt6工程。 1 下载
激光雷达原理
激光雷达原理前言: 。本文介绍激光雷达原理 相关缩写: 缩写 全称 描述 dToF direct Time-of-Flight 直接测量光的飞行时间 iToF indirect Time-of-Flight 通过测量相位偏移来间接测量光的飞行时间 PLD 脉冲激光二极管 一种激光雷达发光元件 APD 雪崩光二极管 一种激光雷达感光元件 SPAD Single Photon Avalanche Diode 单光子雪崩二极管,一种激光雷达感光元件 SiPM Silicon photomultiplier 硅光电倍增管,一种激光雷达感光元件 CMOS Compound metal Oxided Semiconductor 复合金属氧化物半导体,一种摄像头感光元件 CCD Charge Coupled Device 电荷耦合器件,一种摄像头感光元件 CIS CMOS image sensor 互补金属氧化物半导体图像传感器 OPA Optical Phased Arrays 光学相控阵 FPA Focal...
c++基础篇(六)——运算符
c++基础篇(六)——运算符前言: 本篇文章介绍c++的运算符用法。 1 介绍
c++基础篇(五)——变量
c++基础篇(五)——变量前言: 本篇文章介绍c++的变量用法。 1 介绍 在 C++ 中,变量是用来存储数据的命名内存位置。每个变量都有一个类型(如整数、浮点数、字符等),它决定了变量可以存储的数据种类以及占用的内存大小。定义变量就是告诉编译器为某个名字分配一块内存空间,并指定其类型。 类型 关键字 含义 典型大小 整型 int 整数(如 -10, 0, 100) 4 字节 短整型 short 较小整数 2 字节 长整型 long 较大整数 4 或 8 字节 长长整型 long long 更大整数 8 字节 单精度浮点型 float 小数(精度约7位) 4 字节 双精度浮点型 double 高精度小数(约15位) 8 字节 字符型 char 单个字符(如 ‘a’) 1 字节 布尔型 bool 真/假(true/false) 1 字节 空类型 void 无类型(不能定义变量) —— 2 变量命名规则如下 必须以字母或下划线 _...
c++基础篇(四)——注释
c++基础篇(四)——注释前言: 本篇文章介绍c++的注释用法。 1 介绍 与c一致,c++有两种注释风格。 类型 符号 特点 单行注释 // 只作用于当前行 多行注释 /* ... */ 可跨多行,但不支持嵌套 2 单行注释 以 // 开头,从该符号开始到 本行结束 的内容都会被编译器忽略。 12// 这是一个单行注释int a = 5; // 这行代码后面也可以加注释 3 多行注释 以 /* 开始,以 */ 结束,中间的所有内容(可以跨越多行)都会被当作注释。 123456/*这是一个多行注释可以写很多行*/int b = 10; 也可以用于单行: 1/* 这也是注释 */ 还可以嵌套在代码中(但不能嵌套另一个 /* ... */ 注释): 1int /* 中间的说明 */ c = 20;








