- 2025-01-16
-
加入了学习《FOC基础与实战培训教程》,观看 FOC基础与实战培训教程
-
回复了主题帖:
EEWorld邀你来拆解(18期)-----随身WiFi的拆解
PCB做工不错
-
回复了主题帖:
一文读懂,数字隔离芯片如何实现电气隔离?
感谢分享!
-
回复了主题帖:
成功实现LDO稳压器热设计的6大步骤
谢谢分享
- 2024-11-25
-
回复了主题帖:
[X-NUCLEO-53L4A3 TOF评估板]4.不同目标简单精度测试对比
qwqwqw2088 发表于 2024-11-24 16:16
传感器的测量精度与实际值偏差比较大
可能与环境光有关系
偏差校准要扣除环境光,比如用两个测量点校 ...
我这里做的实验不够严谨,应该在黑暗条件下进行这种精度测量最好,在真正的使用中如果追求更加高的精度,还是要进行多点的线性校准;
不同的反射物体返回的信号质量是不一样,这个传感器应该也可以通过信号质量对测试精度进行部分修正和补偿
- 2024-11-22
-
发表了主题帖:
[X-NUCLEO-53L4A3 TOF评估板]4.不同目标简单精度测试对比
本次实验进行对不同目标材质的测距精度测试
实验条件
距离刷新频率10Hz
测量距离250mm
实验目标材质分别为木块、银色金属盒、黑色金属盒、白色泡沫板
实验搭建
实验上位机采用匿名助手
实验数据及波形:
银色金属盒:
黑色金属盒:
木块:
白色泡沫板:
实验结果总结:
1.数据汇总
实际距离
木块
银金属盒
黑金属盒
白泡沫板
250mm
267mm
261mm
267mm
265mm
2.从实验结果来看同一距离不同材质的测量,其结果是有测量偏差的
3.传感器的测量精度与实际值偏差比较大,使用时最好进行偏差的校准
- 2024-11-09
-
回复了主题帖:
[X-NUCLEO-53L4A3 TOF评估板]1.测试和代码移植
秦天qintian0303 发表于 2024-11-9 08:39
这次带的开发板不是可以直接下载使用吗?
上位机不好用,看波形不灵活
- 2024-11-07
-
发表了主题帖:
[X-NUCLEO-53L4A3 TOF评估板]3.精度测试
今天进行简单的精度实验测试。
由于传感器的精度和测量频率过很大关系,所以本次实验看看同一位置下、不同频率对测量精度的影响。
下面为不同频率下测距的具体数据结果图(注:匿名助手上位机有FPS统计,在图片左下角)
频率
误差
100Hz
12mm
50Hz
5mm
10Hz
4mm
5Hz
2mm
从数据来看同一目标、同一距离条件下,频率越低精度越高,后期对数据进行滤波处理的话精度会比目前高一些,在不太考虑实时性的情况下精度应该能达到2mm内,当然,测距的精度与环境光、目标属性、测量距离都有很大的关系。由于板子不是非常好固定,所以先进行本次简单的测距精度测试。从测量结果来看,与我手头上的相位式测距仪(优利德LM50A)相比,即使是在最慢频率下的测量,53L4A3精度的重复性还是不如毫米级的相位激光测距仪,但53L4A3的优势是速度可以比较快,体积很小,易于集成,总之两者的原理和应用场景还是有很大不同的。
-
回复了主题帖:
[X-NUCLEO-53L4A3 TOF评估板]2.传感器光谱、激光功率、温度测试
lugl4313820 发表于 2024-11-6 10:41
第一次见这么专业的设备,您是专业做这方面的吗?
不算是专业做这方面的,用的这些都是业余设备
- 2024-11-05
-
加入了学习《2022 Digi-Key KOL 系列: 开源 | 四翼扑翼机(仿生鸟)原理及设计解析》,观看 开源 | 四翼扑翼机(仿生鸟)原理及设计解析
- 2024-11-04
-
发表了主题帖:
[X-NUCLEO-53L4A3 TOF评估板]2.传感器光谱、激光功率、温度测试
下面分别从板子功率、激光功率、温度、光谱进行测试。
首先进行板子的功率测试,使用USB功率测试仪,板子的工作电压5V,电流0.1A,总功耗0.5W左右。
然后进行激光高功率测试,测试结果:正常工作时约2mW左右。
接下来进行光谱测试,由测试结果可知激光的波长约940nm左右,这与官方参数基本一致。
最后进行温度测试,使用后外热成像分辨率160*120,工作时单片机温度约为32℃左右,传感器温度约为27℃左右。
总结:
测试项目
结果
板子功率
0.5W(5V,0.1A)
激光功率
~2mW
激光波长
940nm
传感器工作温度
~27℃
-
发表了主题帖:
[X-NUCLEO-53L4A3 TOF评估板]1.测试和代码移植
首先感谢EEWORLD以及得捷电子给予这次测评的机会。
先了解一下VL53L4ED官方参数特性
首先运行一下官方例程,让传感器先工作起来,打开STM32CUBEMX,安装TOF扩展包
安装完成后在本地磁盘找到软件包后打开VL53L4A3的例程
例程有3个分别为多传感器测距、单传感器测距、阈值检测,由于本次测评的硬件只有1个中间传感器,所以打开第二个例程编译下载即可体验简单的测距功能。需要注意例程的波特率是460800
接下来体验一下官方的VL53L4ED_GUI软件,软件地址STSW-IMG045 - P-NUCLEO-53L4A3 pack graphical user interface (GUI) - 意法半导体STMicroelectronics
先升级STLink模式为VCP+U盘模式
然后打开VL53L4ED_GUI后点击Flash FW烧录固件等待绿灯亮起
点击开始测试
官方的软件波形图局限性能比较大,不能看更多的历史数据,还不能放大缩小,很不方便,所以接下来进行程序驱动的移植,并使用匿名助手上位机软件进行传感器的测试。
本次程序移植以官方的SimpleRangning例程为参考,并加入匿名助手的通讯协议代码,移植过程此处省略,移植后的代码结构如下
本次测试代码中使用的通讯帧是灵活格式帧(具体可以查看上位机说明书)
通讯函数定义如下
匿名助手上位机的灵活数据帧配置如下
打开数据波形控件,添加相关变量
配置完成后进行测试即可,不得不说匿名助手的波形显示功能非常的灵活方便
传感器初始化程序如下,传感器工作过程可以参考手册(UM3177)和注释
void bsp_tof_init(void)
{
uint32_t Id;
/* reset XSHUT (XSDN) pin */
HAL_GPIO_WritePin(VL53L4A3_XSHUT_C_PORT, VL53L4A3_XSHUT_C_PIN, GPIO_PIN_RESET);
HAL_Delay(2);
HAL_GPIO_WritePin(VL53L4A3_XSHUT_C_PORT, VL53L4A3_XSHUT_C_PIN, GPIO_PIN_SET);
HAL_Delay(2);
printf("53L4A3 Simple Ranging demo application\r\n");
status = VL53L4A3_RANGING_SENSOR_Init(VL53L4A3_DEV_CENTER);
if (status != BSP_ERROR_NONE)
{
printf("VL53L4A3_RANGING_SENSOR_Init failed\r\n");
while (1);
}
/*- 读取传感器ID -*/
VL53L4A3_RANGING_SENSOR_ReadID(VL53L4A3_DEV_CENTER, &Id);
VL53L4A3_RANGING_SENSOR_GetCapabilities(VL53L4A3_DEV_CENTER, &Cap);
/*-- 测量模式 --*/
Profile.RangingProfile = VL53L4ED_PROFILE_CONTINUOUS;
/*-- 测量时间 10 ms < TimingBudget < 200 ms --*/
Profile.TimingBudget = TIMING_BUDGET;
Profile.Frequency = 0; /* Induces intermeasurement period, NOT USED for normal ranging */
/*-- 测量噪声输出使能 --*/
Profile.EnableAmbient = 1; /* Enable: 1, Disable: 0 */
/*-- 测量信号强度输出使能 --*/
Profile.EnableSignal = 1; /* Enable: 1, Disable: 0 */
/* set the profile if different from default one */
VL53L4A3_RANGING_SENSOR_ConfigProfile(VL53L4A3_DEV_CENTER, &Profile);
/* 阻塞模式 */
// status = VL53L4A3_RANGING_SENSOR_Start(VL53L4A3_DEV_CENTER, RS_MODE_BLOCKING_CONTINUOUS);
/* 同步模式 */
status = VL53L4A3_RANGING_SENSOR_Start(VL53L4A3_DEV_CENTER, RS_MODE_ASYNC_CONTINUOUS);
if (status != BSP_ERROR_NONE)
{
printf("VL53L4A3_RANGING_SENSOR_Start failed\r\n");
while (1);
}
}
Main函数
int main(void)
{
int32_t i = 0, status;
RANGING_SENSOR_Result_t Result;
bsp_init();
init_cycle_counter(true);
bsp_tof_init();
while(1)
{
// int64_t time_stamp = get_system_ms();
VL53L4A3_RANGING_SENSOR_GetDistance(VL53L4A3_DEV_CENTER, &Result);
/* polling mode status = */
while(ToF_EventDetected == 0)
{
}
// printf("time_stamp = %lldms\r\n", get_system_ms() - time_stamp);
ToF_EventDetected = 0;
ano_send_custom1(Result.ZoneResult[0].Distance[0],
Result.ZoneResult[0].Status[0],
Result.ZoneResult[0].Ambient[0],
Result.ZoneResult[0].Signal[0]);
}
}
在程序中我们可以通过TIMING_BUDGET参数进行测量时间的设定,其中10 ms < TimingBudget < 200 ms
通过VL53L4A3_RANGING_SENSOR_Start()函数设置模式,有四种模式可选(如下),前两个是阻塞模式,后面两个是中断模式
通过RANGING_SENSOR_INSTANCES_NBR可以配种传感器的个数,例程中配置的是3,即默认为3个传感器,本次测评板只有1个,为了节约内存我们可以定义为1,但VL53L4A3_DEV_CENTER需要重新定义为0
接下来进行精度等方面的测试。
- 2024-11-01
-
发表了主题帖:
《智能驾驶之激光雷达算法详解》5.多传感器SLAM
本书第13章是关于多传感器融合SLAM算法的相关讲解,主要介绍了多传感器融合在智能车辆定位中的应用。由于单一传感器存在工作特性和局限性,处理不了复杂路况,因此多传感器融合实现高精度、稳定、实时的定位成为学术界和工业界的热点之一。多传感器融合 SLAM 有松耦合和紧耦合两种方式,紧耦合方式精度和稳定性较高,是目前研究重点,如 LIC-Fusion 算法、基于因子图框架的算法、R2LIVE 算法及 LVI-SAM 算法等。此外,一些学者结合事先构建的高精点云地图提供全局定位信息,如百度的相关研究及图森未来的研究。
本章主要讲解了视觉、激光雷达、IMU融合的R2LIVE 算法和融合点云地图的TMFL算法。其中R2LIVE 算法由里程计模块和因子图优化模块两部分组成。里程计模块基于迭代误差状态卡尔曼滤波框架实现激光雷达、相机和 IMU 三种观测数据紧耦合,得到系统位姿状态初步估计并按各自传感器频率输出。该框架采用误差状态卡尔曼滤波器思想在误差状态空间进行状态传播,结合迭代误差状态卡尔曼滤波器更新方式,转换为最大化后验估计问题并用高斯牛顿法求解。在激光雷达侧位姿初步估计时使用基于平面特征点提取和运动补偿的方法;在相机侧位姿初步估计时使用快速角点提取和 KLT 光流跟踪的方式。因子图优化模块使用基于动态滑窗的因子图方法实现对视觉路标、关键帧位姿以及相机相对激光雷达和 IMU 时间偏差的优化。
在 L4 级智能驾驶任务中,为保证定位算法的精度、实时性和鲁棒性,一些学者考虑引入高精地图实现长距离绝对定位。图森未来的 L. Pan 等在 ICRA 2021 会议上提出基于激光雷达特征地图辅助的多传感器紧耦合定位(TMFL)算法,该算法基于因子图优化框架实现 IMU、轮速计与激光点云地图之间的紧耦合,将车辆位姿估计问题转化为优化问题,用固定延迟平滑方式在动态滑窗内求解。在 TMFL 算法中,当前帧激光点云和激光雷达特征地图的匹配实现全局位姿估计,基于车辆运动学模型和 IMU / 轮速计数据得到局部相对位姿变化,二者联合构成对车辆状态的最终约束。
其中R2LIVE 算法在github中有开源代码可以供查阅:
https://github.com/hku-mars/r2live
- 2024-10-12
-
回复了主题帖:
测评入围名单: X-NUCLEO-53L4A3 飞行时间 (ToF) 传感器评估板,配套NUCLEO-F401RE
确认无误,可以按计划完成
- 2024-10-10
-
回复了主题帖:
《智能驾驶之激光雷达算法详解》4.激光雷达与IMU组合定位
Jacktang 发表于 2024-10-10 07:27
LIO-SAM算法书中有详细的推导,这本书值得好好读读
是的
- 2024-10-09
-
发表了主题帖:
《智能驾驶之激光雷达算法详解》4.激光雷达与IMU组合定位
IMU惯性测量单元目前是无人机、机器人、汽车领域等常用的测量运行状态的传感器,主要包含加速度计和陀螺仪,通过各种融合算法如互补滤波、卡尔曼滤波等计算车辆的实时姿态,但IMU在航向角存在积分误差,而激光里程计主要通过对环境的感知来来实现对自身的定位估计,通过激光里程计和IMU的互补性进行车辆的组合实时精确姿态计算。
根据组合方式和原理业界通常将LiDAR+IMU分为松耦合和紧耦合两个方向。LiDAR+IMU松耦合定位算法通常使激光里程计和IMU航位推算相互独立运行,并基于卡尔曼滤波框架、粒子滤波框架等实现二者信息的融合,最终输出定位估计结果。LiDAR+IMU紧耦合定位算法为对同一姿态优化问题结合激光雷达数据和IMU数据来求解。
<智能驾驶之激光雷达算法详解>中提到的具有代表性的组合定位算法有IMU-AHFLO算法和LIO-SAM算法。IMU-AHFLO算法相对比较简单,书中的推导非常的详尽,非常具有学习价值。
LIO-SAM算法书中也有详细的推导,感兴趣的小伙伴可以自己查阅研究一下。
LiDAR与IMU组合定位的松耦合和紧耦合两种技术路线各有优势,松耦合计算相对简单,但伴随着IMU的累计误差还是会导致算法精度降低;紧耦合方式通过基于因子图优化、IMU预积分等方法实现LiDAR和IMU的紧耦合,进而实现鲁棒、精确的融合定位。
- 2024-09-28
-
回复了主题帖:
《智能驾驶之激光雷达算法详解》3.基于3D激光点云的目标检测
Jacktang 发表于 2024-9-28 07:48
3D点云的目标检测感觉好难,主要还是算法
是的 数学基础很重要啊
- 2024-09-27
-
发表了主题帖:
《智能驾驶之激光雷达算法详解》3.基于3D激光点云的目标检测
基于激光雷达3D点云的目标检测、多目标跟踪等算法是利用深度学习相关算法进行解决相应问题的,本书的第七章对深度学习进行了基础的讲解,主要是人工神经网络、卷积神经网络、ViT模型等进行了介绍,对于我这种深度学习小白来说,无疑撬开了我对深度学习相关基础的认知,。
激光点云的3D目标检测通常是指在点云中识别车辆、行人等目标,并给出其尺寸、位置和朝向等信息。雷达目标检测的分类方法如下所示:
本书介绍的常用的具有代表性的3D目标检测算法有MLP架构的PointNET网络算法、PointNET++网络算法、PointRCNN网络算法、基于体素的VoxelNet网络算法、PointPillars网络算法、基于深度图的RangeDet网络算法、多视角特征融合的MVF网络算法等。
每种算法有各自的优势和不足,例如: PointRCNN网络是将基于原始点云进行特征提取的方式嵌入二阶段检测架构的一次成功尝试,且该网络模型背后的将车辆位置和朝向问题等效为“分类+回归”问题的思想也被后续许多算法借鉴。但是该网络模型的流程相对比较复杂,在KITTI数据集中,该网络模型对每帧点云进行推理的耗时为0.1秒左右,较难达到实时性要求。
VoxelNet网络结构清晰,且检测性能也有较大提升,然而,由于其引入了3D卷积,VoxelNet 网络模型的推理速度较慢,很难满足智能驾驶感知模块的实时性要求。而PointPillars网络却有较好的实时性和检测性能。
总之,通过对个网络算法的公式、原理推导和图形化说明,让我对这些深度学习网络算法及在3D激光点云的应用有了了解和认识。
-
发表了主题帖:
《智能驾驶之激光雷达算法详解》2.外参标定
本书的第三章、第四章是对标定算法的讲解,第三章着重讲解了激光雷达相对于车体的外参标定算法,将激光雷达外参算法初步分为了三类,①基于道路、标定物特征的雷达动态外参标定。②基于手眼模型的雷达外参标定③基于积累点云特征化的雷达外参标定算法。本章对分别这三个方向选取了比较有代表性的算法分析,如SSAC算法、使用Navy算法求解手眼模型、AESC-MMS算法、DyLESC算法等,让我了解了各算法的原理、概念、流程、公式推导。
第四章是基于激光雷达和相机数据相互融合的外参标定算法的讲解,基于激光雷达数据和相机视觉数据的强互补性进行精确的外参标定,3D雷达和2D相机之间的外参标定分类如下
本章分析的具有代表性的算法分别时基于标定物的L-C静态标定-ILCC算法、无标定物的L-C静态标定-PESC算法、无标定物的L-C动态在线标定-AOCCL算法。总的来说,静态、有标定物的离线标定方法通常可在高精度的标定件中使用;而动态、无标定物的在线标定方法可在自然驾驶场景中使用,并根据离线标定的结果、车辆运动等信息, 实现对离线标定结果的全部参数或部分参数的修正。
- 2024-08-30
-
发表了主题帖:
《智能驾驶之激光雷达算法详解》1.全书质量和目录简要评价
首先非常荣幸能够参与《智能驾驶之激光雷达算法详解》这本书的阅读体验,收到书后第一感觉是本书的分量很足,本书全书均为彩印纸质,文字与图案印刷得极为精细,墨迹均匀饱满,即便是细小的文字也能清晰可辨,阅读体验极佳。
阅读本书目录可知,前两章是激光雷达的基础介绍和空间变换数学基础,三四章是激光雷达的标定讲解,五六章是3D激光点云分割算法讲解,第七章是关于深度学习算法的基础内容,接下面的几章是关于基于3D激光点云的目标检测、路沿检测、多目标跟踪的算法内容,最后几章是干预激光里程计、激光雷达IMU组合定位、SLAM等算法的讲解。从目录的编排和标题的提炼来看,本书层次结构清晰,每章都围绕本章主题讲解了很多相关算法。
每章末尾都有详细的参考文献,更值得一提的是部分算法直接给出了算法源码地址,我们可以对感兴趣的算法直接进行下载学习,能够大大节省读者查找资料的时间。
激光雷达作为现代感知技术的重要组成部分,其算法的发展不仅推动了自动驾驶、机器人导航、三维重建等多个领域的进步,也为我们理解世界提供了新的视角和工具,希望通过接下来的阅读让我对激光雷达算法在智能驾驶方面的应用中有个充分的学习和了解。