- 博客(123)
- 资源 (3)
- 收藏
- 关注
原创 嵌入式开发之如何使用Jlink工具打印调试
摘要: J-Link调试工具提供多种高效的调试信息输出方法,包括RTT技术、UART重定向和SWO功能。RTT不占用硬件接口,适合资源受限场景;UART重定向兼容传统串口工具;SWO仅需单线输出,适用于Cortex-M系列芯片。实现步骤包括库集成、代码初始化和IDE工具配置,同时建议优化日志分级、结合CI/CD流程,并在硬件设计中预留调试接口。根据项目需求选择合适方案,可显著提升嵌入式开发效率。
2025-07-07 08:30:00
706
原创 嵌入式开发之C语言单元测试框架的选择与应用
本文介绍了嵌入式开发中常用的C语言单元测试框架,包括Unity、CMocka、Check、CppUTest和GoogleTest,分析了各框架的特点、适用场景及示例代码。选择框架需考虑资源限制、依赖管理和功能需求,建议结合Mock技术隔离硬件依赖,并通过持续集成确保代码质量。
2025-07-07 08:00:00
613
原创 如何避免C++程序中的内存问题?
C++内存管理需系统化解决方案。核心策略包括:优先使用智能指针(unique_ptr/shared_ptr)和标准容器(vector/string)替代裸指针;遵循RAII原则封装资源;规范new/delete配对使用,释放后置空指针。辅助措施:启用编译警告(-Wall),使用Valgrind/ASan等检测工具。关键原则是"用系统管理替代手动管理",结合现代C++特性和工具链构建多层防护,可显著减少内存泄漏、越界等隐患。必须手动管理时需严格遵循编码规范。
2025-07-07 07:30:00
1397
原创 linux 下c语言如何排查内存泄漏
摘要:Linux下检测C程序内存泄漏的常用方法包括:1) Valgrind工具(Memcheck模块)可全面检测内存问题;2) GDB调试器配合断点检查内存状态;3) AddressSanitizer(ASan)编译选项快速定位泄漏;4) mtrace工具追踪malloc/free调用;5) 自定义内存分配器记录分配信息;6) perf等性能工具间接分析;7) LeakSanitizer等第三方工具;8) 静态代码分析工具预检潜在问题。建议优先使用ASan快速排查,Valgrind深入分析,结合GDB精确定
2025-07-06 21:39:39
288
原创 如何使用Valgrind来检测C++程序的内存问题?
摘要:本文详细介绍了在Linux环境下使用Valgrind检测C++程序内存问题的完整流程。主要内容包括:1) Valgrind安装方法(支持Ubuntu/CentOS/macOS);2) 编译程序时的调试参数设置;3) Valgrind常用命令参数及组合;4) 典型内存问题(泄漏、越界、未初始化等)的分析方法;5) 结合GDB调试的技巧;6) 性能优化建议。文章强调Valgrind能自动检测多种内存隐患并提供精准定位,是C++开发者必备的调试工具,可有效提升代码质量。
2025-07-06 21:25:27
287
原创 valgrind除了检测内存泄漏,还能检测哪些内存问题?
Valgrind的Memcheck工具是C/C++开发中强大的内存调试器,能检测多种内存问题:未初始化内存使用、内存越界访问、野指针、重复释放、内存分配/释放不匹配、缓冲区溢出、内存对齐错误、非法内存访问以及各类内存泄漏(明确泄漏、可能泄漏等)。通过添加--leak-check=full等参数可增强检测效果。Memcheck几乎能发现所有常见内存问题,是开发调试的重要工具。
2025-07-06 21:20:49
588
原创 Linux 环境中排查 C++ 程序的内存泄漏手段总结(干货)
初步排查:优先使用 AddressSanitizer(编译简单,速度快)详细分析:使用 Valgrind 进行全面检测调试定位:结合 GDB 和自定义分配器精确定位泄漏点预防措施:使用智能指针(如)管理动态内存。
2025-07-06 21:13:18
252
原创 如何在RViz中调整机器人模型的大小和位置?
本文介绍了ROS机器人模型中调整尺寸和位置的三种方法:1) 通过修改URDF/XACRO文件中的几何参数或使用缩放因子统一调整模型大小;2) 通过调整joint的origin参数或发布TF变换来改变部件位置;3) 在RViz中修改FixedFrame或手动调整视图。同时提供了常见问题解决方案,如模型未更新时的处理方法和碰撞检测异常时的注意事项。最后强调验证修改效果时需重新编译模型并检查TF树正确性。
2025-07-05 09:00:00
378
原创 如何在RViz中添加机器人模型?
本文介绍了在ROS中配置RViz显示机器人模型的完整流程。主要内容包括:1)准备机器人URDF/XACRO模型文件并确保正确发布TF树;2)在RViz中添加RobotModel显示元素并配置参数;3)验证机器人显示效果;4)常见问题排查方法;5)高级配置技巧如使用XACRO文件、添加传感器模型等。文章还提供了完整的启动命令序列,涵盖了从模型编译、状态发布到RViz启动的全过程,为机器人可视化开发提供了实用指导。
2025-07-05 08:00:00
748
原创 好奇!职场混得开的人都有哪些特质?
职场成功人士的4大特质:执行力强、情商高、持续学习、主动进取。他们高效完成任务,善于化解矛盾,不断更新技能,主动创造机会。这些可培养的能力让他们在激烈竞争中脱颖而出。职场没有捷径,培养这些特质,你也可以在职场中游刃有余。
2025-07-04 22:54:04
342
原创 如何使用RViz进行机器人路径规划的可视化?
本文详细介绍了在ROS中配置机器人导航系统并利用RViz进行路径规划可视化的完整流程。内容包括:1)环境准备与参数配置;2)启动导航系统与RViz的基本设置;3)RViz显示元素(机器人模型、地图、路径等)的添加与调整;4)目标点发送与路径观察方法;5)高级可视化定制与故障排查;6)提供Python节点示例实现自定义路径发布。通过分步指导,帮助用户掌握导航路径的可视化调试技巧,支持从基础配置到算法集成的全流程开发。
2025-07-04 22:33:52
580
原创 RViz介绍
RViz是ROS的核心可视化工具,用于3D展示机器人传感器数据、运动状态和算法结果。主要功能包括:多类型数据可视化(激光雷达、摄像头、IMU等)、交互式参数调整、灵活的配置系统和插件扩展能力。常用显示元素涵盖激光扫描、点云、图像、坐标系等。典型应用于SLAM、导航调试和人机交互界面。使用时可快速添加显示元素并调整视图,还能与Gazebo、MoveIt!等ROS工具集成。支持通过插件机制和API进行二次开发。作为ROS生态的关键组件,RViz显著提升了机器人系统的开发调试效率。
2025-07-04 22:28:30
751
原创 带团队做管理的底层逻辑(干货)
团队管理的底层逻辑是系统性协调人与事;,核心包括六个维度:建立目标共识作为行动指南;通过满足马斯洛需求层次激活个体动力;构建规则体系减少内耗;合理配置人力和工具资源;用专业度和信任构建领导力而非权力压制;以及根据团队发展阶段动态调整策略。研究表明,有效的管理能显著提升团队效率和降低离职率。管理者需在目标、人性、规则、资源、领导力和迭代六个维度保持平衡,创造成员主动贡献价值的生态系统,而非简单控制。
2025-07-02 08:00:00
740
原创 ROS2中DDS的核心概念介绍(易理解)
DDS(数据分发服务)是ROS2通信架构的核心基础,采用发布订阅模型实现节点间高效数据交互。其核心概念包括:Domain(逻辑隔离单元)、Entity(通信组件)、Topic(数据分类)和QoS(服务质量策略)。DDS通过中间件抽象层对接ROS2,提供实时性、可靠性和可扩展性优势,支持自动发现机制和多语言交互。相比ROS1的直接连接方式,DDS的数据空间解耦设计提升了系统性能,成为ROS2分布式通信的关键支撑。
2025-07-01 08:00:00
862
原创 ros2的实现原理介绍(深入浅出更易懂)
ROS2采用分层架构设计,基于DDS实现分布式通信,具备去中心化节点发现、实时可靠数据传输等优势。核心架构包括应用层、ROS2中间层、DDS通信层和操作系统层,通过发布-订阅模型和服务机制实现节点通信。相比ROS1,ROS2支持组件化设计、生命周期状态管理,以及DDS提供的QoS策略,显著提升了系统的实时性、可靠性和扩展性,特别适用于工业自动化和自动驾驶等高要求场景。
2025-07-01 07:30:00
1281
原创 嵌入式开发之在实际项目中使用SPI库的经验(经验总结)
嵌入式SPI开发实战经验总结:1) 需精细控制CS信号,包括手动/自动模式切换和建立时间管理;2) 要建立错误处理机制,如超时检测、CRC校验和自动重试;3) 性能优化包括DMA传输、双缓冲和总线复用;4) 多线程环境需加互斥锁保护;5) 注意硬件兼容性,处理电平转换和时钟抖动问题;6) 调试时建议使用逻辑分析仪和环回测试;7) 低功耗设计可通过动态调频和设备休眠实现。实际开发需综合考虑信号质量、驱动稳定性和系统性能。
2025-06-30 11:30:00
115
原创 除了卡尔曼滤波算法,还有哪些算法可以用来做里程计与惯导的数据融合
机器人导航中里程计与惯导(IMU)数据融合常用算法包括:扩展卡尔曼滤波(EKF)处理非线性系统,计算高效但线性化误差大;无迹卡尔曼滤波(UKF)通过无迹变换减少线性化误差;粒子滤波(PF)适用非高斯系统但计算量大;滑动窗口滤波平衡计算量与精度;图优化消除长期漂移;深度学习方法数据驱动但缺乏物理约束解释。选择算法需考虑实时性、精度、计算资源等因素,实际应用中常混合使用不同算法。
2025-06-30 08:30:00
795
原创 卡尔曼滤波算法的局限性有哪些?
卡尔曼滤波在机器人导航等领域的应用存在显著局限性:1)线性系统和高斯噪声假设难以匹配实际非线性、时变噪声场景;2)高维系统计算复杂度高,初始参数敏感;3)缺乏异常数据检测机制,长期误差易累积。改进方案包括采用非线性滤波(EKF、UKF)、鲁棒滤波及多传感器融合等技术。这些局限性源于理论假设与实际复杂性的矛盾,需根据具体场景选择优化方法,以提升系统可靠性。
2025-06-30 07:30:00
974
原创 嵌入式开发之 SPI 通信的高级封装库实现
摘要:本文介绍了一个面向ARMCortex-M系列微控制器的嵌入式SPI总线高级封装库实现。该库提供面向对象的API接口,支持同步/异步传输模式,具备完善的错误处理机制和参数配置功能。主要特性包括:多设备管理、自动片选控制、可配置的SPI参数(模式/位宽/速率等)以及清晰的设备状态管理。该库采用分层设计,底层驱动需根据具体硬件平台实现,具有良好可移植性,适用于STM32、ESP32等多种嵌入式系统。代码结构包含设备配置、传输控制、状态查询等模块,通过设备句柄进行资源管理。
2025-06-29 12:13:29
12
原创 卡尔曼滤波在机器人里程计与惯导融合中的应用(python实现)
卡尔曼滤波融合机器人里程计与惯导数据,实现更准确的状态估计。里程计提供短期位置精度但累积误差大,惯导无累积误差但存在漂移。通过Python实现9维状态卡尔曼滤波器,融合两种传感器的位置和角速度信息。仿真测试显示,融合后的轨迹和航向角更接近真实值,有效克服了里程计误差和惯导零偏问题。该方法利用卡尔曼滤波的最优估计特性,显著提升了机器人定位精度。
2025-06-29 11:52:24
215
原创 机器人里程计与惯导的融合
机器人定位中,里程计与惯导(IMU)融合是提升精度的关键技术。里程计短期精度高但累积误差大,IMU响应快但存在漂移问题,二者特性互补。主要采用卡尔曼滤波系列算法(KF、EKF、UKF)及粒子滤波进行融合,通过预测-更新机制优化位姿估计。典型应用包括室内移动机器人(修正打滑误差)、无人机(无GPS环境定位)和水下机器人(应对湍流影响)。该技术有效解决了单一传感器的局限性,为复杂环境下的机器人导航提供了稳定可靠的定位方案。
2025-06-29 11:40:27
918
原创 机器人里程计原理详解
里程计(Odometry)是移动机器人用于估计自身位置和姿态的一种常用传感器系统,其核心原理是通过测量机器人移动的距离和角度,结合初始位置来推算当前位姿。应用场景:扫地机器人、工业巡检机器人、自动驾驶车辆等。关键作用:为机器人提供实时的位置反馈,是路径规划、导航控制的基础。里程计是移动机器人的基础定位工具,其原理基于 “测量 - 累积 - 推算”,但存在累积误差的固有缺陷。在实际应用中,通常需要与其他传感器(如视觉、激光、IMU)融合,通过算法优化实现更精准的定位。
2025-06-29 11:28:37
861
原创 嵌入式开发之如何在STM32上使用Modbus协议进行通信?
摘要:本文详细介绍了在STM32上实现Modbus RTU通信的完整方案。硬件方面需连接RS-485转换器,配置UART和GPIO引脚;软件实现包括STM32CubeMX配置、Modbus初始化、发送/接收接口函数编写及主函数任务处理。关键点包括RS-485方向控制、中断处理和错误检测机制。该方案支持标准Modbus功能码操作,如读写保持寄存器,并提供了性能优化建议和注意事项,为在STM32平台开发工业通信应用提供了实用指南。
2025-06-29 07:00:00
35
原创 嵌入式开发之stm32串口库封装开发
本文介绍了一个基于STM32 HAL库的串口通信库封装实现。该库采用面向对象设计,将每个串口抽象为独立对象,提供初始化、配置、读写等接口,支持多串口管理、中断接收和DMA发送功能。主要特性包括:模块化设计(串口设备管理、数据收发、错误处理等)、多种传输模式(同步/异步、中断/DMA)、完善的状态检查和错误处理机制。使用示例展示了初始化配置、数据收发操作和中断处理方法,并说明如何扩展支持多个串口设备。该设计灵活性强,适用于STM32全系列微控制器,可根据需求进一步扩展功能。
2025-06-28 07:15:00
14
原创 嵌入式开发之linux下串口库的开发案例分享
本文介绍了一个Linux环境下开发的串口通信库实现方案。该库采用面向对象设计,提供串口初始化、参数配置(波特率、数据位、校验位等)、数据读写和状态检查等功能。主要内容包括:1) 库的模块化设计和API接口定义;2) 完整的C语言实现代码(uart.h和uart.c);3) 使用示例程序展示库的基本操作流程;4) 提供Makefile编译方法和扩展建议。该库设计简洁,适用于嵌入式系统开发,支持基本的串口通信需求,并可通过添加线程安全、异步IO等机制进行功能扩展。
2025-06-28 07:00:00
11
原创 嵌入式开发之modbus库封装开发
Modbus 是一种串行通信协议,广泛应用于工业自动化领域。它定义了控制器之间如何通过串行链路通信,支持 RTU、ASCII 和 TCP 三种传输模式。下面为你分享一个基于 C 语言的 Modbus 库封装实现,支持 RTU 和 TCP 两种模式。
2025-06-27 07:30:00
337
原创 软件算法提升机器人定位导航精度的核心策略
机器人定位导航精度提升依赖多维度算法优化。在状态估计层面,卡尔曼滤波家族(EKF/UKF/粒子滤波)与图优化算法通过传感器数据融合和全局优化消除误差;多传感器融合策略采用紧/松耦合架构实现异构数据协同。环境建模方面,三维点云/网格地图结合闭环检测和语义信息增强定位精度。运动控制通过MPC和运动补偿抑制误差,深度学习则提供端到端定位新范式。典型应用如室内机器人采用激光SLAM+回环检测,自动驾驶通过多传感器融合实现厘米级定位。未来趋势包括神经符号融合和量子传感技术,推动定位精度向亚毫米级发展。
2025-06-27 07:15:00
824
原创 机器人轮式差速底盘控制原理与实现
轮式差速底盘是常见机器人移动机构,通过左右轮速差实现转向。文章介绍了其机械结构、运动学模型(包括线速度与角速度计算),以及开环/闭环控制方法,重点讲解了PID闭环控制的应用。同时探讨了运动规划算法、硬件实现方案(如Arduino、ROS平台)及优化挑战(如打滑补偿)。该底盘结构简单、成本低,适用于服务机器人、AGV等多种场景,但在高精度控制时需结合多传感器融合技术提升性能。
2025-06-27 07:15:00
512
原创 机器人常见的运动底盘介绍
机器人运动底盘类型多样,各有特点:轮式底盘(两轮差速、四轮驱动、麦克纳姆轮)适合平坦地面,灵活高效;履带式底盘越野能力强,适用于复杂地形;足式底盘(双足、四足、六足)仿生设计,适应极端环境;混合式底盘(轮履/轮足)结合多种优势;还有球形、蛇形等特殊底盘。选择时需考虑地形、负载、成本等因素,如家庭服务机器人多用轮式,救灾机器人更适合履带或足式。混合式和仿生设计正成为应对复杂环境的主流方案。
2025-06-27 07:00:00
783
原创 机器人运动控制之 PID 闭环:从原理到应用的深度解析
摘要:PID闭环控制是机器人运动控制的核心算法,通过比例(P)、积分(I)、微分(D)三分量协同工作实现精准控制。P分量快速响应误差,I分量消除静态误差,D分量抑制震荡。在机器人应用中,PID控制广泛应用于速度、位置和姿态控制场景,如电机转速调节、轨迹跟踪和平衡控制。参数调试采用分段法,需结合系统特性优化。虽然PID控制存在非线性适应差等局限,但通过自适应PID、串级控制等进阶方法可提升性能,是掌握高级运动控制的基础。
2025-06-26 23:57:52
569
原创 wifi5与wifi6的区别
WiFi 5(802.11ac)是第五代 WiFi 技术标准,发布于 2013 年;WiFi 6(802.11ax)是第六代 WiFi 技术标准,发布于 2019 年。
2025-06-26 23:36:36
409
原创 有哪些方法可以解决因设备问题引起的WiFi信号延时增大?
通过以上方法,可针对性解决设备层面导致的 WiFi 延时问题。若操作后仍无效,建议联系网络服务商检测宽带带宽,或请专业人员上门排查硬件故障。
2025-06-26 23:30:17
549
原创 IMU(惯性测量单元)在机器人定位导航中的应用
IMU(惯性测量单元)是机器人定位系统的核心传感器,通过加速度计和陀螺仪测量线性和角速度运动数据。其优势在于高频自主定位,但存在误差累积问题,需结合GPS、激光雷达等传感器进行数据融合。关键技术挑战包括零偏、噪声和温漂等误差的校准补偿,以及多传感器融合算法设计。典型应用涵盖室内机器人导航、无人机飞行控制和医疗手术机器人等场景。未来发展趋势聚焦MEMS精度提升、深度学习融合和异构传感器系统构建。合理选型和算法优化可充分发挥IMU在动态环境中的定位优势。
2025-06-26 07:15:00
674
原创 职业危机:人到中年,遇到岗位调整,该如何应对?
【摘要】中年职业危机是职场人普遍面临的挑战,面对岗位调整带来的压力,需从多维度积极应对:首先调整心态,正视焦虑并重构职业价值认知;其次通过能力评估绘制竞争力地图,结合行业趋势寻找机会;最后分场景采取行动策略,如同领域补短板、跨领域试错或灵活就业转型。长期应构建抗风险职业生态,持续技能迭代、拓展人脉,并接受非线性职业发展,将经验转化为不可替代的专业价值。核心在于把危机视为转型契机,用沉淀的经验应对变化。
2025-06-25 23:46:05
752
原创 嵌入式开发之如何测试和验证模块化设计?
摘要:嵌入式系统软件的模块化测试需要多层次方法,包括单元测试(隔离测试环境、Mock框架)、集成测试(验证模块接口)和系统级测试(硬件在环、压力测试)。关键要评估耦合度和内聚性,并考虑嵌入式环境特殊性(资源限制、硬件依赖)。推荐使用Unity、CMock等工具,结合持续集成实现自动化测试。案例表明,从传感器驱动单元测试到设备系统验证的全流程测试能有效保障模块化设计的可靠性和可维护性。测试覆盖率建议达80%以上,关键模块需100%覆盖。
2025-06-25 08:00:00
412
原创 嵌入式开发之模块化设计原则实现
嵌入式系统模块化设计方法:1.采用分层架构(HAL、驱动、应用层)分解功能,避免循环依赖;2.通过标准化接口(函数/消息/数据结构)实现低耦合,隐藏内部实现;3.遵循单一职责原则,最小化共享状态;4.统一资源管理和错误处理机制;5.提供模块独立测试能力,使用Mock对象替代硬件;6.规范代码组织与文档。该方法通过接口隔离变化、层次化解耦,有效提升了嵌入式系统的可维护性和可扩展性,适用于资源受限环境。典型应用包括智能家居控制器的多模块协同设计。
2025-06-25 07:00:00
193
原创 管理反思:如何解决公司管理混乱问题?
解决管理混乱的核心是 “系统化 + 人性化”:用制度和流程搭建框架,用工具和沟通提升效率,用文化和培训凝聚人心。这一过程需要管理层有决心、有耐心,从 “头痛医头、脚痛医脚” 的被动应对,转变为 “预防为主、持续优化” 的主动管理。只有这样,公司才能从 “混乱” 走向 “有序”,释放团队的真正潜力。
2025-06-25 07:00:00
942
原创 思考:机器人在实际场景中的复杂性体现在哪些方面?
机器人的复杂性本质上是 “技术理想” 与 “现实约束” 的冲突,其落地不仅需要突破硬件与算法瓶颈,更需协调社会、法律、经济等多维度挑战。未来,机器人技术的发展将从 “追求单一技术突破” 转向 “系统性解决方案设计”,在复杂性中寻找平衡,才能实现真正的场景化落地。
2025-06-24 23:12:55
749
原创 深度洞察:机器人场景化落地的关键思考
在科技飞速发展的当下,机器人产业正经历着前所未有的变革与扩张。从工业制造的精密产线,到医疗护理的精细场景,再到日常生活的便捷服务,机器人的身影愈发频繁。然而,机器人要真正实现广泛且深入的场景化落地,并非一蹴而就,其间涉及技术、市场、成本、用户接受度等多方面的复杂因素与关键挑战。
2025-06-24 23:06:24
1338
原创 高速处理器芯片降温方案解析
高速处理器芯片的散热问题日益突出,传统风冷、热管等散热方式面临局限。本文探讨了液冷散热(冷板式、浸没式)、新材料应用(金刚石热沉、铟基合金)及片上集成散热等高效方案,其中浸没式液冷可降低芯片温度30℃。智能温控系统通过实时监测和动态调节提升散热效率。案例显示,数据中心采用浸没式液冷后能耗显著降低,超级计算机结合片上散热使运算速度提升20%。未来趋势将向多技术融合、智能化和新材料研发方向发展,以应对芯片性能持续提升带来的散热挑战。
2025-06-24 22:55:06
820
【信息技术领域】常用技术类专业英语词汇表:计算机与网络相关术语汇总及解释
2025-06-14
WinHex.zip
2021-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人