- 博客(551)
- 资源 (14)
- 收藏
- 关注
原创 从零认识开源促进会OSI(Open Source Initiative)
OSI(Open Source Initiative,开源促进会)是国际公认的开源协议标准制定与认证组织,其核心使命是定义和维护“开源”的法定标准,确保开源软件的法律合规性和生态互信。
2025-08-11 15:07:11
451
原创 从零认识开源许可证
开源许可证(Open Source License)是一种法律许可,版权拥有人通过它明确允许,用户可以免费地使用、修改、共享版权软件。明确了用户的权利和义务,保障了开发者的权益。同时,开源许可证是一种具有法律性质的合同,目的在于规范受著作权保护的软件的使用或者分发行为,是开源软件的法律基础,规范了软件的使用、修改和分发行为,促进了软件的协同开发和共享。
2025-08-11 15:06:48
144
原创 MIT和OAuth协议的意义和区别
本质类型:网络授权协议标准(RFC 6749)目的:允许第三方应用在用户授权下安全地访问用户在另一服务上的资源核心理念:不共享密码,使用访问令牌(access token)代替工作原理用户想让应用A访问其在服务B上的数据应用A将用户重定向到服务B的授权服务器用户在服务B上登录并授权应用A的访问权限服务B返回授权码给应用A应用A用授权码换取访问令牌应用A使用访问令牌访问服务B的API应用场景社交登录:使用微信/Google/Facebook账号登录第三方应用。
2025-08-10 17:35:27
528
原创 github上最多的三个开源协议对比
特性MIT许可GPL系列Apache 2.0闭源商用✅ 允许❌ 禁止✅ 允许专利保护❌ 无⚠️ GPLv3有,v2无✅ 明确授权传染性无传染性强传染性(衍生作品开源)无传染性修改要求仅保留声明衍生作品强制开源标注修改+保留声明企业应用占比10.8%(第2位)9.5%(第4位)15.3%(第1位)典型场景个人工具库、前端框架操作系统、自由软件企业级中间件、AI模型。
2025-08-10 17:34:59
454
原创 当前开源协议概述及分类对比
开源协议是管理软件源代码使用、修改和分发规则的法律框架,旨在平衡开发者权利与社区自由。根据限制程度,主流协议可分为宽松型、强开源型(Copyleft型) 和混合型。
2025-08-09 18:23:02
820
原创 从零开始理解了卡尔曼滤波
通过这个基础框架,你可以扩展更复杂的模型(如加入加速度、多传感器融合等)。对于匀速运动的小车:(纯基于物理模型,没有考虑实际测量值,模型越准确,预测越可靠)Kₖ:卡尔曼增益(平衡预测值和测量值,决定信任预测还是测量)F:状态转移矩阵(描述状态如何变化,如位置+速度×时间)(zₖ - H x̂ₖ⁻):测量残差(预测与测量的差异)x̂ₖ⁻:当前时刻的预测状态(如预测的位置/速度)Pₖ:更新后的不确定性(比预测时更小)Pₖ⁻:预测状态的不确定性(协方差)H:观测矩阵(状态如何转换为测量值)
2025-08-08 09:39:57
778
原创 Cortex-M系列的TI(德州仪器)和ST(意法半导体)的芯片对比
对标ST系列:STM32L0/L4(低功耗),但MSP430FR的FRAM写入寿命(1亿次)优于ST的Flash/EEPROM。无直接ST对标:ST的高性能产品(如STM32F4/H7)需依赖Cortex-M核的FPU,实时性弱于C2000。非ARM架构(TI自有32位DSP核),主打高精度PWM(150ps)、硬件浮点加速,用于电机控制/数字电源9。对标ST系列:STM32WB(双核蓝牙MCU),但TI的协议栈集成度更高,开发更简化。ST:ST-Link性价比高,但多核调试(如H7)易卡死8。
2025-08-04 11:18:53
793
原创 TI(德州仪器)的芯片产品概述
德州仪器(TI)的芯片产品线覆盖微控制器(MCU)、数字信号处理器(DSP)、汽车专用芯片及边缘计算处理器等,各系列针对不同应用场景优化。
2025-08-04 11:18:06
594
原创 ARM处理器概述及对比
随着AIoT与自动驾驶发展,ARM通过异构架构(CPU+NPU+GPU)持续拓展边界,但需应对RISC-V开源生态的竞争挑战。开发者需结合实时性、能效、成本三要素,选择最优处理器方案。定位:汽车电子(ABS、引擎控制)、工业PLC实时控制、存储控制器等硬实时场景,要求μs级中断响应。定位:智能手机、平板、服务器等通用计算场景,支持复杂操作系统(如Linux、Android)。代表型号:Cortex-R52/R82(ARMv8-R架构)。定位:IoT设备、传感器、家电控制等电池供电场景。
2025-08-02 22:03:07
1040
1
原创 嵌入式系统的中断控制器(NVIC)
尽管NVIC是ARM Cortex-M内核标准组件,但各厂商会根据需求裁剪或扩展功能,不同芯片的NVIC实现差异本质是厂商对ARM标准的裁剪与扩展,开发时需查阅具体芯片手册,重点关注优先级位数、分组方式、唤醒源配置等。核心价值:NVIC通过硬件级中断管理、自动状态处理及低延迟优化,为实时系统提供确定性响应,是Cortex-M芯片实时性的基石。
2025-08-02 21:32:25
306
原创 嵌入式系统中常用通信协议
特性I2C (TWI)SPICAN同步/异步异步异步同步同步异步串行/并行串行串行串行串行串行双工方式全双工半双工 (通常)半双工全双工 (通常)半双工主从/对等点对点 (无主从)多节点 (主/从)主从 (多从)主从 (多从)多主/对等寻址方式无 (物理连接)无 (需软件)7/10位地址硬件片选 (SS/CS)消息 ID时钟线无无SCLSCLK无数据线数量总线拓扑点对点多点 (总线型)多点 (总线型)点对点 / 星型。
2025-08-01 18:15:23
942
原创 STM32芯片简述
STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器,常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。
2025-08-01 17:34:29
375
原创 常见存储卡类型及对比
常用存储卡可插拔存储卡主要用于相机、手机、无人机、行车记录仪等设备扩展存储,也有嵌入式存储 ,直接焊接在设备主板上,不可插拔。设备/需求推荐存储类型原因数码相机/无人机CFexpress 或 V90 SD 卡高带宽保障 4K/8K RAW 视频写入手机存储扩展A2 级 microSD 卡(如三星 EVO Plus)优化 App 运行速度,兼顾性价比笔记本电脑系统盘极速开机/加载软件/处理大文件监控录像/备份仓库机械硬盘(HDD)低成本实现 10TB+ 存储嵌入式设备(工控)
2025-07-30 17:43:41
1849
原创 从零开始运行ESP32的Helloworld程序
安装依赖库cd esp32# ESP工具# esp-idf# 切换到最新的稳定版本5.5cd esp-idf# 更新所有子模块到对应分支版本# 安装编译工具。
2025-07-28 14:01:13
141
原创 跑步有氧训练
跑步心率一般分为四个区间,各对应不同的能量代谢系统和训练目的,详细见区间强度范围生理特点训练目的典型体感恢复/热身区50-60%最大心率轻度有氧活动,主要动员慢肌纤维促进恢复、激活肌肉呼吸轻松,可完整对话有氧区60-80%最大心率脂肪供能为主,提升线粒体密度和毛细血管网络发展有氧耐力,增强心肺功能呼吸平稳,可说短句混氧区80-90%最大心率糖原消耗增加,乳酸开始积累提升抗乳酸能力和速度耐力呼吸急促,仅能说单词无氧区90-100%最大心率无氧代谢主导,乳酸快速堆积。
2025-07-24 16:17:40
1125
原创 在 TurtleBot3 上实现同步建图与导航(在线 SLAM)
修改navigation.launch文件(或创建一个新的融合launch文件),使其同时启动gmapping和move_base,并确保地图服务器使用gmapping实时发布的地图。通过同时运行gmapping(建图)和move_base(导航)来实现,但需要注意两者之间的协调,特别是地图的更新和共享。修改gmapping_demo.launch文件,使其发布的地图话题与导航使用的地图话题一致,并调整参数以适应动态地图。注意:在导航中使用动态地图时,需要配置move_base以订阅实时更新的地图。
2025-07-22 08:57:23
962
原创 ROS1和ROS2详细对比分析
从Ubuntu22.04或者2025年6月开始,官方基本不再升级支持ROS1,推荐切换到ROS2,ROS 2 在架构、实时性、安全性和生态扩展性上显著优于 ROS 1,如果是新项目开发建议直接使用ROS2,但如果迁移需权衡现有资源与长期收益。详细Ubuntu版本支持关系见链接。
2025-07-21 18:11:23
1224
原创 广播(Broadcast)和组播(Multicast)对比
广播(Broadcast)和组播(Multicast)是计算机网络中两种重要的一对多通信方式,用于高效地将数据同时分发给多个接收者,它们的核心区别在于目标接收者的范围和控制精度,基于业务对效率、规模和网络环境的要求选择哪种通信方式。广播是“强制全员接收”,简单但浪费资源,仅适合局域网;组播 是“精准投递给订阅者”,高效且可扩展,适合大规模分发场景。在ROS 2/DDS等分布式系统中,通过组播是实现去中心化节点发现的核心机制,而广播仅用于底层地址解析(如ARP)。
2025-07-21 18:10:35
858
原创 从零开始完成ROS2项目调试运行
VSCode 集成 :安装 ROS 2 插件后,可通过快捷命令(如 rl-colcon-build)直接在 VSCode 中编译项目。命令行补全 :安装 ros2cli 后,支持命令自动补全(如输入 ros2 launch 自动列出包名和 Launch 文件)。类似发布代码一样,编写监听代码(sub_node.py),配置setup.py后,重新编译包,最后启动测试。调试 :结合 ros2 node、ros2 topic、ros2 param 等工具实时监控系统状态。
2025-07-17 14:32:56
773
原创 ROS2中分布式通信原理详解
ROS2 的通信原理基于采用分布式架构的 DDS(Data Distribution Service) 中间件,是一种以数据为中心的发布-订阅模型,其核心原理是节点之间通过实现分布式通信,进行数据交换,无需中心节点(ROS1 的 Master)。
2025-07-17 14:32:13
772
原创 ubuntu24.04系统的Jazzy 和 Kilted 区别对比
特性JAZZY版本号第 8 个正式版本(LTS)第 11 个正式版本发布时间2024 年2025 年 5 月支持周期约 2-3 年(推测)至 2026 年 11 月核心特性安全性增强、Gazebo 集成优化新功能、开发流程改进适用场景生产环境、长期项目实验性项目、前沿技术验证推荐用户企业用户、工业应用开发者研究人员、技术尝鲜者。
2025-07-12 10:17:45
449
原创 从零开始使用global_planner全局规划
表示从障碍物向外扩展的“安全区域”范围(单位:米,表示用于计算的区域,区域外默认安全则不计算),在这个区域内,代价值会根据 cost_scaling_factor 计算,路径规划器会尽量避开高代价区域。turtlebot3_navigation.launch文件中,move_base_globalplanner.launch代替初始move_base.launch。是膨胀代价的衰减因子 ,控制代价值从障碍物向外递减的速度,数值越大代价衰减越快,数值越小代价衰减越慢路径可能更贴近障碍物。
2025-07-11 15:56:59
907
原创 slam全局路径规划算法详解(Dijkstra、A*)
核心思想 :贪心策略,始终选择当前状态下距离起点最近的顶点作为扩展方向,并更新其相邻顶点的最短路径。核心思想 :结合Dijkstra的全局代价g(n) 和启发式函数h(n) ,综合评估节点优先级。地图描述 :10x10网格,起点为左下角(0,0),终点为右上角(9,9),障碍物随机分布。A* 通过启发式优化大幅提高效率,但依赖 h(n) 的设计,适用于大规模地图的高效寻路。h(n) :当前节点到目标的启发式估计代价(如欧几里得距离)。g(n) :起点到当前节点的实际代价;确保找到全局最优解(最短路径)。
2025-07-11 15:56:32
954
原创 gazebo中多个机器人在rviz上显示激光点云及地图
laser.so发布到scan的话题的点云数据,由base_scan坐标系,增加对应不同机器人前缀空间(tb3_x/),变为tb3_x/base_scan坐标系。
2025-06-25 10:11:50
163
原创 gazebo中多个机器人在rviz上同时构建局部地图
使用slam_gmapping代替static_transform_publisher,通过动态发布tb3/map->tb3/odom的tf变换,实现各机器人局部地图构建。
2025-06-24 11:09:56
516
原创 路径规划器(局部dwa_local_planner、全局NavfnROS)
move_base节点调用两个规划器,NavfnROS全局规划器负责生成从起点到目标点的宏观路径(如 /move_base/NavfnROS/plan),dwa_local_planner 则跟踪该路径并实时调整局部轨迹(如 /move_base/DWAPlannerROS/local_plan)
2025-06-24 11:08:52
1093
原创 实现 TurtleBot3 多点轨迹跟踪导航
move_base本身不支持一次性发送多个目标点并自动按顺序导航,使用nav_msgs/Path消息类型发布多个路径点,然后让机器人按顺序依次到达每个路径点。使用 2D Pose Estimate 工具设置初始位置。
2025-06-23 15:20:32
324
原创 从零实现多机器人协同建图
为不同的机器人设置不同的命名空间,在各自的命名空间内,为各机器人配置仿真环境的初始位置后启动各自的建图(Gmapping)节点,最后通过新安装的multirobot_map_merge进行数据融合,在rviz中查看实时效果。map_merged (静态) -> robotX/map (由gmapping发布的map->odom变换) -> robotX/odom (静态) -> robotX/base_footprint -> … -> base_scan静态static_transform_publish
2025-06-23 11:22:39
1163
原创 gazebo中多个机器人在rviz上联合SLAM建图
引用multirobot_map_merge包的map_merge模块,采集各个机器人的局部地图并进行发布map地图话题。
2025-06-23 11:22:20
312
原创 ROS系统构建工具解释对比(catkin、colcon)
Catkin 是 ROS1 的构建系统框架,提供包管理、依赖解析和构建工具集成,catkin_make 和 catkin_make_isolated 是其具体实现工具,均通过封装 CMake 实现功能,Catkin 作为底层框架,为两者提供统一的构建逻辑和依赖解析能力作为底层框架,为两者提供统一的构建逻辑和依赖解析能力。Ament对标Catkin,是ROS2的系统框架,通过colcon进行构建,colcon对标catkin_make。
2025-06-20 15:11:12
904
原创 Turtlebot3实现自主导航
local_costmap_params.yaml:减小inflation_radius(膨胀半径)使机器人行走的路径可以更贴近障碍物。在RVIZ中:点击 2D Pose Estimate → 在地图上长按机器人初始位置并拖拽方向(箭头代表机器人朝向)。global_costmap_params.yaml:增大update_frequency(更新频率)提升实时性。关键提示:定位后AMCL粒子(绿色箭头)会围绕机器人聚合,表示定位成功。机器人自动规划路径(蓝色线)并移动,避开动态障碍物(实时更新红色区域)
2025-06-20 11:40:17
654
1
原创 ROS建图常用调试话题及解释
路径规划 :通过解析 x, y, yaw 可指导机器人沿目标路径移动。通过对比 TF 输出与预期值,可验证传感器数据融合或定位算法的准确性。导航定位 :map → base_link 的变换是Cartographer导航栈输出的核心数据,用于确定机器人在地图中的精确位置。
2025-06-19 10:48:31
715
C# 进程调度 管理,真操作系统中进程调度的原理和过程
2009-06-12
国外人形机器人产品及视频
2024-08-13
国内人形机器人产品及视频
2024-08-13
20个当前知名人形机器人公司的产品参数及介绍
2024-08-13
.NET环境下C#实现存储器管理
2009-06-12
通过网页服务器监控设备状态
2018-12-28
数据库中各个类的应用实例
2008-09-17
.net 下C#实现银行家算法
2009-06-12
数据库各个类的实例应用
2008-09-17
Collections的实例应用
2008-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人