ROS实践(五)机器人自动导航(robot_navigation)
目录
一、知识点
1. 定位
2. 路径规划
(1)全局路径规划
(2)局部路径规划
3. 避障
二、常用工具和传感器
三、相关功能包
1. move_base(决策规划)
2. amcl(定位)
3. costmap_2d(代价地图)
4. global_planner(全局规划器)
5. local_planner(局部规划器)
6. map_server(地图)
四、导航流程框架
1. 前提准备
2. 实验步骤
六、附录(参数配置文件)
1. amcl_params.yaml(定位)
2. costmap_common_params.yaml(代价地图)
3. dwa_local_planner_params.yaml(dwz动态路径规划)
4. global_costmap_params.yaml (全局代价地图)
5. global_planner_params.yaml(全局规划器)
6. local_costmap_params.yaml (局部代价地图)
7. move_base_params.yaml(决策规划)
8. teb_local_planner_params.yaml (路径规划)
机器人导航是指机器人在环境中自主地从一个地点移动到另一个地点的过程。这个过程涉及到多个关键技术,包括定位、路径规划、避障等。机器人导航通常包括以下几个重要部分。
一、知识点
1. 定位
定位是机器人确定自己在环境中的位置的过程。常用的定位方法包括:
(1)GPS定位:适用于室外环境,利用卫星信号确定机器人的位置。
(2)里程计(Odometry):根据轮子的转动来估算机器人的位置,但容易受到误差累积的影响。
(3)激光雷达(Lidar)/传感器定位:利用激光扫描仪或其他传感器获取环境数据,进行位置修正。常用的方法有:①粒子滤波(Particle Filter):常用于基于激光雷达的定位。扩展②卡尔曼滤波(EKF):用于融合多个传感器数据。
(4)视觉定位(SLAM):通过相机和其他传感器(如激光雷达)进行同时定位与地图构建。
2. 路径规划
路径规划是机器人从起点到目标点之间寻找一条最佳路径的过程。路径规划可以分为以下几种:
(1)全局路径规划
全局路径规划是在已知整个环境地图的情况下进行的路径规划。它的目标是找到一条从起点到终点的最优路径,这条路径通常是在不考虑动态障碍物的情况下计算得出的。全局路径规划常用的算法包括:
① A*算法
A*算法是一种启发式搜索算法,它结合了最佳优先搜索的高效性和Dijkstra算法的完备性。A算法使用启发式函数来估计从当前节点到目标节点的代价,从而指导搜索过程。这个启发式函数通常基于欧几里得距离或曼哈顿距离等简单度量。A*算法广泛应用于静态障碍物环境中的路径规划,因为它能够高效地找到最短路径。② Dijkstra算法
Dijkstra算法是一种基于图的路径搜索算法,它适用于所有边的权重为正数的图。该算法从起点开始,逐步扩展最短路径树,直到包含终点。在每一步中,它选择具有最小累积权重的边来扩展树。虽然Dijkstra算法不直接考虑目标节点的启发式信息,但它保证了找到从起点到图中所有其他节点的最短路径。在全局路径规划中,Dijkstra算法可以用于在权重图中找到最短路径,其中权重可能代表距离、时间或其他相关成本。(2)局部路径规划
局部路径规划是在全局路径的基础上,考虑动态障碍物和环境变化进行的路径规划。它的目标是生成一条能够安全避开动态障碍物并沿全局路径前进的局部路径。常见的局部规划方法包括:
① 动态窗口法(DWA)
动态窗口法是一种基于采样的局部路径规划算法,它考虑了机器人的动力学约束(如速度和加速度限制)。DWA算法在速度空间中采样多个速度组合,并模拟这些速度组合在未来一段时间内的轨迹。然后,它根据这些轨迹的成本函数(通常考虑与障碍物的距离、与全局路径的偏差等因素)来选择最优速度。DWA算法能够实时响应动态环境的变化,并生成平滑且安全的局部路径。② 虚拟力场(VFH)
虚拟力场方法是一种基于势场的局部路径规划算法。它将环境表示为一个由吸引力和排斥力组成的力场。目标点产生吸引力,而障碍物产生排斥力。机器人根据这些力的合力来决定其运动方向。VFH方法的一个变种是基于当前环境的危险度图来生成避障路径。危险度图根据障碍物的位置、速度和形状等信息来评估环境中每个点的危险程度。机器人然后根据危险度图来选择安全的路径。需要注意的是,局部路径规划算法通常与全局路径规划算法结合使用。全局路径规划提供了一条大致的路径方向,而局部路径规划则负责在这条路径上安全地避开动态障碍物。这种结合使用的方法能够充分利用两种规划算法的优点,从而提高机器人的导航性能和安全性。
3. 避障
概念:在自动导航系统中,避障是保证机器人安全行驶的关键环节。避障技术的核心目标是在机器人行进过程中检测环境中的障碍物,并通过合理的路径调整或规划,使机器人能够绕过障碍物,安全抵达目标位置。
原理:机器人在执行导航任务时,会通过传感器(如激光雷达、深度相机、超声波传感器等)实时感知周围环境,并将数据输入到代价地图(costmap)中。代价地图会根据障碍物的距离和分布情况,为不同区域赋予不同的“代价”(cost),数值越高表示该区域的行进风险越大。在路径规划过程中,机器人会优先选择代价较低的区域前进,避免进入高代价区域,即避开障碍物。在某些情况下,如果机器人无法找到合适的避障路径,
move_base
会触发恢复行为(Recovery Behaviors),如原地旋转寻找可行路径或向后退避,以尝试重新规划路线。如果恢复行为仍然失败,机器人会进入导航失败状态,等待新的指令或外部干预。全局避障
在全局路径规划阶段(通常由
global_planner
组件完成),机器人基于静态地图计算一条从起点到目标点的最优路径,并尽可能避开已知障碍物。然而,由于环境可能发生变化,例如出现新的障碍物或动态物体,单纯的全局规划无法满足实时避障的需求。局部避障
在机器人行进过程中,局部规划器(如
DWAPlanner
)会持续接收传感器数据,检测行进路径上的动态障碍物,并进行路径调整。如果前方出现障碍物,局部规划器会尝试计算新的可行路径,使机器人绕开障碍物继续前进。
二、常用工具和传感器
1. 激光雷达(LiDAR)
通过发射激光束并测量返回时间来计算与障碍物的距离,能够提供高精度的2D或3D环境建模,广泛用于SLAM(同步定位与地图构建)、路径规划、避障、目标跟踪等。2D LiDAR常用于室内机器人,3D LiDAR适用于自动驾驶、无人机测绘等复杂环境,常见型号包括Velodyne VLP-16、Hokuyo UST-10LX等。
2. RGBD相机
结合RGB和彩色图像和深度信息,提供环境的3D感知能力,可用于地图构建、目标识别、障碍物检测、人脸识别、手势控制等。常见的RGBD相机有Intel RealSense、Microsoft Kinect、Orbbec Astra等,广泛应用于机器人视觉、AR/VR、自动化检测等领域。
3. 超声波传感器
通过发射超声波并测量回波时间计算与障碍物的距离,适用于短距离障碍物检测,常用于自动泊车、无人机避障、水下探测、工业自动化等领域。其成本低、体积小,但受噪声和材质影响较大,常见型号如HC-SR04、MaxBotix MB1040。
4. IMU(惯性测量单元)
由加速度计、陀螺仪(有时包含磁力计)组成,用于测量机器人姿态、角速度、加速度等信息,常用于惯性导航、姿态估计、运动跟踪等。IMU可单独使用,也可与GPS、LiDAR、里程计融合以提高定位精度,常见型号有MPU6050、BNO055、VectorNav VN-100等。
5. 轮式里程计(Odometry)
通过测量轮子的旋转角度计算机器人在平面上的运动轨迹,适用于短时间内的相对位置估计,但存在累积误差,因此常与IMU、LiDAR、视觉SLAM结合使用以提高定位精度,广泛应用于移动机器人、自主导航、AGV(自动导引车)等。
三、相关功能包
robot_navigation是一个基于ROS(Robot Operating System)的导航堆栈,设计用于处理复杂的室内和室外环境。robot_navigation是一个由第三方团队开发并开源的导航堆栈项目。它基于ROS系统构建,提供了全面的导航功能,并支持多种算法和应用场景。
该项目的目的是简化机器人系统的集成,通过提供一套全面的导航工具包,使得开发者可以专注于特定的应用需求而不是基础架构的构建。
下面这些组件虽然都是相对独立的功能包,但它们在ROS的导航堆栈中紧密协作,共同实现机器人的自主导航功能。robot_navigation并不是一个具体的软件包名,而是可能指代整个导航堆栈或相关软件包的集合。在ROS的官方文档和社区中,这些组件通常被归类为导航堆栈的一部分。相关功能包如下:
1. move_base(决策规划)
move_base是ROS导航栈中的核心节点,负责机器人自主导航过程中路径规划和避障的关键决策。它的主要作用是接收目标位置,并结合环境地图信息,计算一条从当前位置到目标点的可行路径,同时在机器人运动过程中不断调整路径以应对动态环境变化。
move_base包含多个关键组件:全局规划器、局部规划器、全局代价地图、局部代价地图以及恢复行为(recovery behaviors)。全局规划器(global planner)用于计算从当前机器人位置到目标点的整体路径,它通常基于静态地图,并在机器人首次规划或遇到较大障碍时重新计算路径。局部规划器(local planner)则负责机器人在实际行进过程中的路径微调,它结合局部代价地图(local costmap)来实时避障,确保机器人可以顺利绕开动态障碍物。
move_base通过action API(一个异步通信机制)与客户端交互,并订阅多个ROS话题来接收传感器数据、地图信息及机器人运动状态。例如,它会订阅里程计数据(odometry)、激光雷达数据(LaserScan)以及传感器生成的代价地图信息,从而实时评估行进环境,确保机器人能够避开障碍物,最终顺利抵达目标位置。
2. amcl(定位)
- 定义:amcl(Adaptive Monte Carlo Localization)是ROS中的一个软件包,专门用于机器人在已知的静态地图中进行自主定位。
- 功能:它基于自适应蒙特卡洛定位算法(AMCL),使用粒子滤波的方式结合激光雷达数据与地图信息,持续估算并优化机器人的位姿(位置和朝向)。在实际应用中,amcl可以帮助机器人在复杂环境中保持准确定位,使其能够基于自身位置进行路径规划和导航。由于该节点具有高度可配置性,用户可以根据具体应用需求调整参数,以适应不同类型的机器人平台和环境特征,提高定位的稳定性和精度。
- 应用场景:在已知地图中,机器人可以使用amcl进行定位,并根据当前位置进行路径规划。amcl节点高度可配置,可以根据实际需求调整参数。
3. costmap_2d(代价地图)
- 定义:costmap_2d是ROS中的一个功能包,专门用于构建代价地图,为机器人提供环境感知能力。
- 功能:代价地图表示环境中每个位置的“成本”,每个区域会根据障碍物的距离、机器人行驶的安全性等因素分配不同的代价。代价地图是一种栅格化的环境表示方式,其中每个单元格(栅格)都被赋予一个数值,以反映该区域的“代价”或通行风险。这个代价通常基于障碍物的距离、机器人行驶的安全性、动态环境因素等计算得出。例如,靠近障碍物的区域会被赋予较高的代价,而开阔、安全的区域代价较低,使得机器人在路径规划时更倾向于选择低代价区域行进。costmap_2d对于机器人导航至关重要,它帮助move_base等导航组件生成可行路径,确保机器人能够高效地避开障碍物,同时优化行进路线,以提高导航的稳定性和安全性。
4. global_planner(全局规划器)
全局规划器用于在已知的地图上规划从起点到目标点的最优路径。它通常使用A*、Dijkstra或其他基于图搜索的方法来计算路径,并生成一条全局轨迹。
全局规划的核心思想:是基于栅格地图或拓扑地图构建搜索空间,然后利用启发式搜索或动态规划算法,计算从起点到终点的最优路径。这条路径不考虑局部障碍物的动态变化,而是基于静态环境计算的。因此,全局规划器的主要目的是提供一个长距离的导航路径,供局部规划
相关文章:
ROS实践(五)机器人自动导航(robot_navigation)
目录 一、知识点 1. 定位 2. 路径规划 (1)全局路径规划 (2)局部路径规划 3. 避障 二、常用工具和传感器 三、相关功能包 1. move_base(决策规划) 2. amcl(定位) 3. costmap_2d(代价地图) 4. global_planner(全局规划器) 5. local_planner(局部规划器…...
【数学建模】层次分析法(AHP)详解及其应用
层次分析法(AHP)详解及其应用 引言 在现实生活和工作中,我们经常面临复杂的决策问题,这些问题通常涉及多个评价准则,且各准则之间可能存在相互影响。如何在这些复杂因素中做出合理的决策?层次分析法(Analytic Hierarchy Process…...
【大模型】Transformer、GPT1、GPT2、GPT3、BERT 的论文解析
前言 在自然语言处理(NLP)和深度学习的快速发展中,Transformer模型和 GPT系列模型扮演了至关重要的角色。本篇博客旨在对这些开创性的论文进行介绍,涵盖它们的提出时间、网络结构等关键信息,能够快速的理解这些模型的设…...
Android 手机启动过程
梳理 为了梳理思路,笔者画了一幅关于 Android 手机启动的过程图片内容纯属个人见解,如有错误,欢迎各位指正...
【redis】hash基本命令和内部编码
文章目录 表示形式命令HSET 和 HGET HEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSETNXHINCRBYHINCRBYFLOAT命令小结内部编码 表示形式 Redis 自身已经是键值对结构了 Redis 自身的键值对就是通过哈希的方式来组织的 把 key 这一层组织完成之后,到了 value 这一层&…...
统计数字字符个数(信息学奥赛一本通-1129)
【题目描述】 输入一行字符,统计出其中数字字符的个数。 【输入】 一行字符串,总长度不超过255。 【输出】 输出为1行,输出字符串里面数字字符的个数。 【输入样例】 Peking University is set up at 1898. 【输出样例】 4 【输出样例】 #in…...
基于javaweb的SSM+Maven网上选课管理系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...
算法及数据结构系列 - BFS算法
文章目录 框架思路经典题型111. 二叉树的最小深度752. 打开转盘锁 框架思路 BFS 的核心思想应该不难理解的,就是把一些问题抽象成图,从一个点开始,向四周开始扩散。一般来说,我们写 BFS 算法都是用队列这种数据结构,每…...
深入剖析 MetaSpace OOM 问题:根因分析与高效解决策略
目录 一、MetaSpace 区 OOM:概述 (一) MetaSpace的变革与挑战 (二)MetaSpace OOM的影响 (三) 为什么要关注MetaSpace OOM 二、MetaSpace 区 OOM的根本原因 (一)Met…...
java自带日志系统介绍(JUL)以及和Log4j 2、Logback、SLF4J不同日志工具的对比
Java 日志系统是开发中用于记录应用程序运行时信息的重要工具。以下是 Java 日志系统的核心组件及其使用场景、配置参数的详细介绍,以及不同日志系统的对比分析。 Java 日志系统核心组件 1. 日志记录器(Logger) 作用:负责生成日…...
Kubernetes 中metrics-server的采集周期,采集链路是什么样的?
0. 运维干货分享 软考高级系统架构设计师备考学习资料软考高级网络规划设计师备考学习资料Kubernetes CKA认证学习资料分享信息安全管理体系(ISMS)制度模板分享免费文档翻译工具(支持word、pdf、ppt、excel)PuTTY中文版安装包MobaXterm中文版安装包ping…...
一分钟了解深度学习
一分钟了解深度学习 A Minute to Know About Deep Learning By JacksonML 1. 什么是深度学习? 深度学习(Deep Learning) 是机器学习的一个子集,都属于人工智能的范畴;它使用多层神经网络(称为深度神经网络)来模拟人…...
Git LFS (Large File Storage) 简介
目录 Git LFS (Large File Storage) 简介 1. 什么是 Git LFS? 2. 为什么需要 Git LFS? 3. Git LFS 的工作原理 4. 如何使用 Git LFS? 4.1 安装 Git LFS 4.2 配置 Git LFS 5. Git LFS 的优缺点 优点 缺点 6. 适用场景 7. 结论 1. …...
前端权限系统
前端权限系统是为了确保用户只能访问他们有权限查看的资源而设计的。在现代前端开发中,权限控制不仅仅是简单的显示或隐藏元素,还涉及到对路由、组件、数据和操作权限的细致控制。下面是前端权限系统的常见设计方案和实现步骤。 前端权限系统的组成部分 …...
【蓝桥杯速成】| 4.递归
递归 题目一:最大公约数 问题描述 1979. 找出数组的最大公约数 - 力扣(LeetCode) 给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。 两个数的 最大公约数 是能够被两个数整除的最大正整数。 解题步骤 需要…...
QEMU源码全解析 —— 块设备虚拟化(4)
接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(3) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 类模板是创建类的模式_创建类是的模版-CSDN博客<...
92.HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质量应用
温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质量应用 文章目录 HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质…...
【004】deepseek本地化部署后,python的调用方式_#py
python调用本地deepseek 1 本地化部署deepseek2 python调用方式 1 本地化部署deepseek 已经有很多大佬们说了不少部署本地化部署deepseek的工作了,我就不过多重复了。 先安装Ollama软件,再通过Ollama获取deepseek的模型文件,大家根据电脑的配…...
基于Python+Flask+MySQL+HTML的爬取豆瓣电影top-250数据并进行可视化的数据可视化平台
FlaskMySQLHTML 项目采用前后端分离技术,包含完整的前端,以flask作为后端 Pyecharts、jieba进行前端图表展示 通过MySQL收集格列数据 通过Pyecharts制作数据图表 这是博主b站发布的详细讲解,感兴趣的可以去观看:【Python爬虫可…...
【Prometheus01】可观测性系统之Prometheus简介、优缺点对比、组件介绍、数据采集流程、TSDB简介
监控工具对比、黑盒监控与盒白盒监控、Kubernetes监控简介 监控简介: 监控的价值: 长期趋势分析:通过对监控样本数据的持续收集和统计,对监控指标进行长期趋势分析。例如,通过对磁盘空间增长率的判断,我们…...
Postman下载安装及简单入门
一.Postman简介 Postman是一款API测试工具,可以帮助开发、测试人员发送HTTP请求,与各种API进行交互,并分析响应 二.下载与安装 访问Postman官网(https://www.postman.com/),下载适…...
记第一次跟踪seatunnel的任务运行过程三——解析配置的具体方法getLogicalDag
前绪 记第一次跟踪seatunnel的任务运行过程二——ClientJobExecutionEnvironment的execture方法 从这里开始,就是使用seatunnel-2.3.9的源码了。前面部分没有变化,2.3.X版本都是通用的。 建议打开源码,边读文章,边阅读源码 正文…...
Maven 的核心包
由于前端项目不是核心,阅读 nexus-public 源代码似乎绕远路了。nexus-oss 社区版主要就是集成 maven 的上传包、认证、包解析、包存储这几个核心功能,前端实现重新可以使用新的现代前端工具来提高生产力。故重新疏理一下 maven 的核心机制,即…...
上位机数据可视化:使用QtCharts绘制波形图
工程配置 CMake文件 find_package(Qt5 COMPONENTS Charts REQUIRED)target_link_libraries(zhd-desktop PRIVATE Qt5::Charts)包含头文件以及名称空间(这个很重要,没有包含名称空间编译器会提示找不到相关的类型) #include <QtCharts&g…...
制造业数字化转型,汽车装备制造企业数字化转型案例,智能制造数字化传统制造业数字化制造业数字化转型案例
《某制造业企业信息化整体解决方案》PPT展示了一个汽车装备企业的整体信息化解决方案,阐述了该企业的业务特点和现状,主要包括按订单生产、多级计划和产品跟踪等,分析了信息化建设的主要困难,如信息管理手工化、过程数据追溯困难、…...
网络安全常识科普(百问百答)
汪乙己一到店,所有喝酒的人便都看着他笑,有的叫道,“汪乙己,你又监控员工隐私了!”他不回答,对柜里说,“来两个fofa。”便排出三个比特币。他们又故意的高声嚷道,“你一定又在电报群…...
P2512糖果传递 P4447分组 P1080国王游戏 P4053建筑抢修
P2512 [HAOI2008] 糖果传递 题目描述 有 n n n 个小朋友坐成一圈,每人有 a i a_i ai 个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 1 1 1。 输入格式 小朋友个数 n n n,下面 n n n 行 a i a_i ai。 输出格式 求使所…...
SpringMVC(七)数据校验+VO++脱敏
目录 一 基础原理 1 先将数据校验的依赖导入 2 在JavaBean中编写校验注解 3 使用Valid告诉SpringMVC进行校验(校验不通过,方法通知执行) 4 在Valid参数后面加上一个BindingResult参数,获取校验结果。 二 改进方案 1 没写全…...
使用OpenResty(基于Nginx和Lua)优化Web服务性能
引言 1.1 OpenResty简介 OpenResty 是一个基于 Nginx 和 Lua 的高性能 Web 应用平台。它通过将 Lua 脚本嵌入到 Nginx 中,提供了强大的动态处理能力,适用于构建高性能的 Web 服务、API 网关、动态内容生成等场景。 1.2 Nginx与Lua结合的优势 高性能:Nginx 本身就是一个高…...
32、构造函数
1、用构造函数反复创建多个相同结果的对象 问题 如果想反复创建多个相同结构,但是内容不同的对象时,用{}创建会代码重复,及其不便于维护! 解决 今后只要想反复创建同一类型的多个相同结构不同内容的对象时,都用构造函…...
蓝桥与力扣刷题(蓝桥 星期计算)
题目:已知今天是星期六,请问 20^22 天后是星期几? 注意用数字 1 到 7 表示星期一到星期日。 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 解题思路+代码: 代码࿱…...
【leetcode hot 100 230】二叉搜索树中第K小的元素
解法一:从小到大输出到list中,取list[k-1]就是第k小的元素 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val;…...
六种最新优化算法(TOC、MSO、AE、DOA、GOA、OX)求解多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码
一、算法简介 (一)阿尔法进化(Alpha Evolution,AE)算法 阿尔法进化(Alpha Evolution,AE)算法是2024年提出的一种新型进化算法,其核心在于通过自适应基向量和随机步长的…...
python离线安装
Python Releases for Windows | Python.org 下载包地址widows一般是64bit的包 下载完成后双击,在弹出的首个页面会看到下面的图 第一步:建议手动安装 第二步:一定要勾选把版本加入到Path路径 然后就是无脑下一步,到这一步就可…...
【每日学点HarmonyOS Next知识】状态栏字体、生命周期、自定义对话框屏幕中间、透明度、tab居中
1、HarmonyOS 单页面如何控制状态栏字体颜色? 状态栏字体颜色可通过设置statusBarContentColor修改,参考文档如下: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5 参考代码: import…...
C# GeneticSharp包
可以直接从nuget安装GeneticSharp包 GeneticSharp 遗传算法类库 GeneticSharp 是什么 GeneticSharp 是一个C#的遗传算法类库, 遗传算法Java著名的JMetal, Python也有JMetalPy和PyMoo, C#相对差一截, 稍微有名的是GeneticSharp库. GeneticSharp 的弱点: 不支持多目标优化没…...
大模型中的常用名词介绍八:【特征与数据处理、伦理与公平性等】【建议收藏】
本文总结了大模型领域有关特征与数据处理、伦理与公平性等其他部分的名词,并解释其含义。跳出浩如烟海的大模型知识圈层,从概念上理清大模型的基础脉络! 序号模块分组说明快捷访问1 模型架构与基础概念 介绍了【模型架构与基础概念】相关的常…...
HTML5 drag API实现列表拖拽排序
拖拽API(Drag and Drop API)是HTML5提供的一组功能,使得在网页上实现拖放操作变得更加简单和强大。这个API允许开发者为网页元素添加拖拽功能,用户可以通过鼠标将元素拖动并放置到指定的目标区域。 事件类型 dragstart࿱…...
HTTPS建立连接过程
一、混合加密 通过混合加密的方式可以保证信息的机密性,解决了窃听的风险。 HTTPS采用的是对称加密和非对称加密结合的混合加密方式: (1) 在通信建立前采用非对称加密的方式交换会话密钥,后续就不再使用非对称加密。 &…...
deepseek GRPO算法保姆级讲解(数学原理+源码解析+案例实战)
文章目录 什么是GRPO群组形成(Group Formation):让大模型创建多种解决方案偏好学习(Preference Learning):让大模型理解何为好的解答组内相对优势 优化(optimization): 让大模型从经验中学习(learning from experience)目标函数 GRPO算法的伪码表示GRPO算法的局限与…...
【WEB APIs】DOM-节点操作
1. 日期对象 1.1 实例化 <script>// 实例化// 1.得到当前时间const date new Date()console.log(date);// 2.得到指定时间const date1 new Date(2025-3-14)console.log((date1));</script> 1.2 日期对象方法 千万不要忘记加小括号 // 获得日期对象const date2 …...
VSTO(C#)Excel开发7:自定义任务窗格
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
Qemu 详解与 ARM 虚拟机搭建指南
1. Qemu 是什么? Qemu(Quick Emulator)是一款开源的机器模拟器和虚拟化工具,支持多种硬件架构(如 x86、ARM、PowerPC 等)。它的核心功能包括: 动态指令翻译:将不同架构的指令实时翻…...
Windows编译Flash-attention模块
博主的环境配置:windows11操作系统,cuda11.8.r11.8, cudnn8.9.7, git2.47.1,cmake4.0.0-rc4,ninja1.12.1, vs_buildTools17.4.21, cl19.34.31948, torch2.3.1 编译flash-attention的环境依赖如下图 #mermaid-svg-SZBhH41EsJGfu…...
《Python深度学习》第三讲:神经网络
在前面的课程里,我们已经了解了深度学习的数学基础,也用一个简单的例子展示了神经网络的强大能力。本讲我们要更深入地探讨神经网络的结构、训练过程,以及如何用它解决实际问题。 3.1 神经网络剖析 先来聊聊神经网络的核心组件:层…...
编程题《牛牛的链表删除》的python可以用非链表的方式
描述 牛牛从键盘输入了一个长度为 n 的数组,把这个数组转换成链表然后把链表中所有值是 x 的节点都删除。 输入描述: 第一行输入两个正整数 n 和 x 表示数组的长度和要删除的链表节点值 x 。 第二行输入 n 个正整数表示数组中每个元素的值。 输出描述&am…...
传统RAG vs 知识图谱:大模型时代的知识管理革命
引言:为什么需要突破传统RAG? 在大模型应用落地的浪潮中,检索增强生成(RAG)技术通过连接外部知识库,有效缓解了模型的幻觉问题。然而,当面对复杂关系推理、多文档关联分析等场景时,…...
【Go语言圣经2.6】
目标 概念 GOPATH模型 GOPATH:GOPATH 是一个环境变量,指明 Go 代码的工作区路径。工作区通常包含三个目录: src:存放源代码,按照导入路径组织。例如,包 gopl.io/ch2/tempconv 应存放在 $GOPATH/src/gopl.i…...
多时间尺度的配电网深度强化学习无功优化策略的Python示例代码框架
以下是一个简单的多时间尺度的配电网深度强化学习无功优化策略的Python示例代码框架,用于帮助你理解如何使用深度强化学习(以深度Q网络 DQN 为例)来处理配电网的无功优化问题。在实际应用中,你可能需要根据具体的配电网模型和需求…...
0CTF 2016 piapiapia 1
#源码泄露 #代码审计 #反序列化字符逃逸 #strlen长度过滤数组绕过 www.zip 得到源码 看到这里有flag ,猜测服务端docker的主机里,$flag变量应该存的就是我们要的flag。 于是,我们的目的就是读取config.php 利用思路 这里存在 任意文件读取…...