- 博客(275)
- 收藏
- 关注
原创 LLaMA-Factory 入门(二): 深入技术解析
大语言模型微调指南摘要 本文系统介绍了大语言模型(LLM)微调的核心内容:1) 基础概念:对比预训练与微调,阐述SFT、RLHF等微调阶段;2) 核心技术:详述全量微调与PEFT方法(LoRA、QLoRA等参数高效微调技术);3) 数据工程:说明Alpaca和ShareGPT两种数据格式及清洗要点;4) 硬件优化:分析显存占用组成,推荐混合精度训练、量化等优化方案;5) 训练参数:提供学习率、Epoch等关键超参数设置建议。全文聚焦如何通过高效微调使大模型适配特定任务,平衡效果与资源消耗。
2025-12-30 10:33:56
1006
原创 LLaMA-Factory 入门(一):Ubuntu20 下大模型微调与部署
LLaMA-Factory 是一个面向大语言模型(LLM)的高效训练与微调框架,专为简化 LLaMA 系列以及各类开源大模型的训练流程而设计。它以“开箱即用、灵活高效”为核心理念,提供从数据准备、参数高效微调(PEFT)、训练配置管理到模型部署的一站式解决方案。
2025-12-29 17:51:34
779
原创 局部规划器的两种尝试
本文介绍了两种ROS2 Galactic环境下的局部规划方案:基于Frenet坐标系的规划方法和基于时序栅格的局部规划。Frenet规划器采用五次多项式横向规划和四次多项式纵向规划,支持动态避障和轨迹优化,适用于结构化道路场景。时序栅格方案则利用STVL(时空体素层)代价地图处理感知数据,适合实车环境。两种方案均提供完整的ROS2实现,包括启动文件、参数配置和可视化工具。Frenet规划器通过订阅参考轨迹、速度信息和代价地图,发布最优路径;时序栅格方案则整合全局/局部代价地图进行导航决策。文中还提供了行为树
2025-12-19 15:44:50
644
原创 linux实用工具介绍
本文推荐了8款高效的终端工具:tmux用于后台程序管理;btop/glances/iotop用于系统监控;ncdu分析文件夹大小;dstat查看读写数据;nload/iftop监控网络流量;fd-find快速搜索文件。这些工具安装简单(多数通过apt/pip),功能强大,能显著提升终端工作效率,适合开发者和系统管理员使用。
2025-12-18 15:56:10
340
原创 ego_planner算法的仿真环境(主要是ros)-算法的解耦实现.
本文介绍了ego_planner_standalone项目,该项目将ROS EGO-Planner解耦为独立的C++规划算法模块和ROS桥接层。项目采用共享内存实现两者通信,包含完整的算法流程(前端路径搜索、B样条优化、时间重分配等),并提供了GUI界面简化启动流程。系统架构清晰划分为数据输入(定位、点云、航点)、核心算法处理和数据输出(轨迹、状态)三个部分,支持通过四个步骤启动完整系统。项目实现了算法与ROS的分离,提高了代码可移植性和模块化程度。
2025-12-18 15:44:29
1275
原创 slam一篇文章就够了——基于lio-sam的测试(3)
本文主要介绍了LIO-SAM系统的启动配置及参数设置。系统通过run.launch文件启动,依次加载参数配置文件、LOAM节点、TF变换、GPS融合节点和可视化界面。重点分析了params.yaml中的关键参数配置,包括传感器话题设置、坐标系定义、GPS参数、点云处理参数、IMU噪声参数、外参标定以及回环检测等。其中详细说明了激光雷达与IMU之间的外参变换矩阵配置,并提供了不同传感器类型的参数调整建议。这些配置参数直接影响系统的定位建图性能,需要根据实际传感器型号和使用场景进行相应调整。
2025-12-18 13:56:36
1071
原创 基础命令学习之ps 与 pkill 与 nohup 与 2>&1 &
本文介绍了Linux下进程管理和日志记录的关键命令。主要内容包括:1) 使用ps aux | grep查找进程,pkill精准终止程序;2) 通过nohup和&实现终端关闭后程序持续运行;3) 重定向操作符>和>>的区别,以及2>&1合并错误输出;4) 使用-u参数解决Python输出缓冲问题;5) 综合命令示例实现带时间戳的后台运行和日志记录;6) 使用tail -f实时查看日志文件。这些技巧对后台程序管理和日志监控非常实用。
2025-12-16 17:18:08
226
原创 linux中can,pcap数据录制与udp缓存空间配置
本文介绍了激光雷达数据采集与处理的实用方法:1)使用tcpdump录制点云数据,candump录制CAN报文;2)创建虚拟CAN接口并发送测试数据;3)优化Linux UDP缓冲区解决通信频率问题,通过修改sysctl配置提升雷达数据传输性能。文章提供了详细的命令行操作指南,包括数据录制、虚拟CAN配置和网络参数调优等实用技术。
2025-12-16 16:42:13
359
原创 git lfs更新的问题
摘要:在运行Habitat-Sim时出现Git LFS命令执行错误(exit status 127),原因是系统通过apt安装的Git LFS版本过低。解决方法是通过wget下载最新版(v3.4.0)的Git LFS,解压后运行install.sh脚本完成安装,最后通过git lfs --version验证安装成功。该方法有效解决了版本兼容性问题。
2025-12-16 16:27:17
94
原创 slam一篇文章就够了——基于lio-sam的测试(2)
本文介绍了使用evo工具进行KITTI格式轨迹对比的方法,以及通过ICP算法对齐两条轨迹的实现。主要内容包括:1) 使用evo_traj命令进行基本轨迹对比,但无法自动对齐;2) 提供Python脚本实现ICP对齐,包含读取KITTI格式数据、最近邻搜索、SVD变换计算等步骤;3) 展示对齐后的轨迹对比效果图和误差统计结果。该方法适用于没有时间戳的KITTI格式轨迹数据,通过ICP计算变换矩阵实现轨迹对齐,并输出RMSE和最大误差等评估指标。
2025-12-07 12:23:56
952
原创 slam一篇文章就够了——基于lio-sam的测试(1)
本文介绍了在Ubuntu 20.04和ROS Noetic环境下编译运行LIO-SAM时常见问题的解决方案。主要内容包括:GTSAM版本选择(推荐4.2-ros或4.0.0-alpha2)、Eigen3路径配置、OpenCV头文件修改(将opencv/cv.h替换为opencv2/imgproc.hpp)、将C++标准改为C++14解决PCL兼容性问题。运行时问题方面,提供了libmetis.so库路径修复方法、必要的ROS定位功能包安装建议,以及IMU-LiDAR外参标定注意事项。最后给出了数据集测试流程
2025-12-07 12:22:38
335
原创 深入调研分析——是先有鸡还是先有蛋?
摘要:演化生物学研究表明,先有蛋后有鸡。基因突变发生在受精卵阶段,第一只鸡是从"原鸡"产下的蛋中孵化的。羊膜卵的出现比鸟类早数亿年,支持"蛋先存在"的观点。虽然OC-17蛋白争议提出"先有鸡"的论点,但进化是渐进过程。定义上,若将"鸡蛋"定义为"孵出鸡的蛋",则蛋先于鸡存在;若定义为"鸡产的蛋",则鸡先存在。科学证据表明,物种演化通过蛋中的基因突变实现,因此先有蛋后有鸡。
2025-11-30 13:01:16
561
原创 Python 初学者 / 中级开发者常踩坑的 10 个坑 —— 要用好几年才能彻底搞清楚的
本文分享了10个容易被Python开发者忽视的基础概念,包括可变与不可变对象、参数传递机制、is与==的区别、迭代器与生成器、列表推导式与循环的选择、默认参数陷阱、深浅拷贝问题、闭包延迟绑定、多重继承MRO以及鸭子类型编程风格。这些看似基础实则关键的概念,往往是代码bug和性能问题的根源。作者建议开发者深入理解这些核心机制,而非盲目追求新特性,才能真正写出高效可靠的Python代码。掌握这些概念后,许多代码中的怪异行为将豁然开朗。
2025-11-28 22:52:08
978
原创 2025两院院士落选感言
《院士落选记:一位"量子沉默学"研究者的自嘲》 摘要:本文以幽默笔调记录了一位科研工作者落选院士的心路历程。作者自述在量子物理领域取得"突破性成果",如"用薛定谔的猫调控超导电性",却在院士评选中铩羽而归。文章通过"暗物质热饭""引力波省电费"等荒诞比喻,以学术黑话解构现实落差,展现科研人面对失败时的自嘲智慧。最终在"阳光相对论"的调侃中,完成对学术评价体系的温和反讽。
2025-11-28 22:35:43
494
原创 斯坦福可能“终结”Prompt Engineering?——几个字让 AI 写作重获创造力
斯坦福大学研究揭示:传统Prompt工程技巧(如角色扮演、思维链等)存在局限性,导致AI输出缺乏多样性。团队提出的"Verbalized Sampling"方法通过让模型展示多个候选答案及其概率分布,显著提升创意任务的多样性(提高1.6-2.1倍)。该方法适用于创意写作、头脑风暴等场景,但需注意在严谨任务中可能产生不准确内容。研究证明,释放模型的内部概率分布比复杂提示词更能激发创造力。
2025-11-27 22:33:24
911
原创 共享内存与ros通信--同时也聊聊slam-gps中的轨迹融合
本文探讨了在ROS2环境中运行ROS1算法的通信方案。针对大型传感器数据(如相机、雷达)无法直接通过话题传递的问题,提出了两种解决方案: ros1_bridge功能包:实现ROS1和ROS2之间的双向通信,但仅限于标准消息类型。其特点是"懒惰"机制,仅在ROS2侧有订阅请求时才转发数据。 共享内存方案:通过内存共享实现ROS1算法使用ROS2数据。具体实现分为: ROS2节点将激光雷达、IMU、GPS和TF数据写入共享内存 ROS1节点读取共享内存并发布相应话题 最终接入ROS1的LIO
2025-11-27 22:06:54
921
原创 稀疏奖励与强化学习以及约束处理
本文探讨强化学习中奖励设计的挑战与解决方案。针对稀疏奖励问题,提出四种主要方法:1) 逆强化学习(IRL)通过专家示范学习隐式奖励函数;2) 目标经验回放(HER)利用失败轨迹重标记目标;3) 课程式学习逐步提升任务难度;4) 奖励塑形与约束优化确保安全性和稳定性。文章通过流程图和案例说明各类技术的实现原理,强调奖励设计对强化学习性能的关键影响,并提供实践中的权衡建议与配置技巧。
2025-11-25 19:26:15
666
原创 gazebo栅格地图生成-直接生成而非二次建图
本文介绍了一种在Gazebo中快速生成标准化栅格地图的方法,通过pgm_map_creator工具替代传统SLAM建图流程。该工具支持从Gazebo world文件一键生成2D栅格地图、PNG预览、ROS元数据、点云及Octomap等多种格式。文章详细说明了项目架构、参数配置、工作流程及典型应用场景,并提供了编译和使用的具体步骤。该方法具有多格式同步输出、参数可控、易于集成等特点,适用于室内机器人导航、研究实验和教学演示等场景。使用时可选择仅生成2D地图以提高效率。
2025-11-25 18:46:15
1166
原创 RVC声音转换的使用
本文详细介绍了在Windows系统下使用RVC(Retrieval-based Voice Conversion)工具进行声音克隆与训练的完整配置流程。主要包括:1) 创建Python 3.8的conda环境;2) 安装CUDA 11.8和PyTorch GPU版本;3) 克隆RVC项目源码并解决依赖冲突;4) 下载必要的预训练模型和工具文件;5) 配置启动脚本。文章提供了详细的命令行操作步骤和配图说明,特别针对常见的依赖冲突问题给出了解决方案(降低pip版本),适合想要实现语音转换功能的开发者参考。
2025-11-23 14:26:08
122
原创 ubuntu系统反复停留在登录界面无法进入
摘要:解决Ubuntu登录界面循环问题,可通过tty创建新用户。步骤如下:1)执行sudo useradd -m -s /bin/bash newuser新建用户;2)用sudo passwd newuser设置密码;3)可选sudo usermod -aG sudo newuser授予管理员权限;4)通过id newuser验证用户创建成功。该方法能绕过原账户登录故障,新建账户带sudo权限可避免后续操作受限。(149字)
2025-11-07 10:45:59
150
原创 使用mujoco加载模型和控制、以及训练(二)
本文介绍了MuJoCo物理引擎的安装配置及常用机械臂模型的使用方法。主要内容包括:1) 下载最新版MuJoCo并配置环境变量;2) 测试安装效果并运行示例模型;3) 获取menagerie模型库中的常见机械臂模型;4) 展示多个机械臂模型的仿真效果图;5) 介绍Python环境下MuJoCo的基本使用方法,包括模型加载、仿真控制和可视化。特别演示了如何通过Python程序获取机械臂末端执行器的位置信息,并提供了完整的仿真控制代码框架。
2025-11-02 00:28:42
835
原创 使用mujoco加载模型和控制、以及训练(一)
本文介绍了在Windows系统下搭建MuJoCo强化学习训练环境的过程。首先下载并安装最新版MuJoCo,配置相关环境变量。接着安装CUDA 11.8和对应版本的cuDNN,完成GPU加速配置。然后通过conda创建虚拟环境,安装PyTorch GPU版本和stable_baselines3等必要依赖。最后启动训练脚本进行模型训练,训练完成后可进行模型测试。整个过程涵盖了从环境配置到模型训练的主要步骤,为基于MuJoCo的强化学习项目提供了完整的Windows环境搭建指导。
2025-11-01 17:20:15
679
原创 moveit使用最终章——tiago moveit环境配置过程(五)
本文介绍了在ROS Noetic环境下搭建Tiago机器人仿真环境的具体步骤。首先创建并配置工作空间,下载官方功能包源码。随后通过apt安装必要的依赖包,包括导航规划、传感器仿真、MoveIt运动规划等组件。接着使用rosdep解决剩余依赖关系,并跳过部分非必要依赖项。最后通过catkin build命令编译整个项目,编译完成后运行导航和任务测试launch文件验证环境配置正确性。整个过程涵盖了从源码获取、依赖安装到系统编译的完整流程,为Tiago机器人的仿真开发提供了基础环境支持。
2025-10-31 19:58:59
302
原创 moveit使用和机器人模型与状态--正向运动学和逆向运动学分析(四)
本文介绍了机器人模型中RobotModel和RobotState类的使用。RobotModel包含机器人关节与链接的关系信息,RobotState存储机器人的实时状态数据。通过MoveIt的C++ API,可以访问机器人的运动学信息,包括末端执行器的雅可比矩阵计算和笛卡尔轨迹规划。文中展示了如何加载Panda机器人模型、获取关节值、检测和处理关节限制,以及进行正向运动学计算。代码示例演示了从URDF/SRDF加载模型、设置关节位置、验证状态有效性,并计算特定末端执行器位置的变换矩阵。运行测试时输出包含模型框
2025-10-30 15:38:03
692
原创 moveit使用与命令行脚本(三)
摘要:本文介绍了如何使用moveit_commander的Python包实现机器人运动规划。通过命令行界面可执行控制命令,包括设置关节值、规划路径和执行动作。具体操作包括启动demo环境、记录当前状态、修改目标关节值(如goal[0]=0.2)、使用go或plan+execute命令控制运动,并支持在RViz中可视化运动计划。该工具提供类似Matlab的语法操作,可通过help查看支持命令,quit退出界面。
2025-10-30 14:48:39
196
原创 moveit使用与规划——python规划(二)
本文介绍了如何使用Python接口实现机械臂运动规划。通过MoveIt的Python移动组接口,用户可以设置关节或姿势目标、创建运动计划、移动机器人等操作。文章演示了运行环境启动命令和Python脚本的过程,展示了通过Enter键交互执行的多个功能步骤(包括关节状态目标运动、笛卡尔路径规划、物体添加/移除等)。同时解析了代码中核心类的初始化过程,包括RobotCommander、PlanningSceneInterface和MoveGroupCommander的创建,这些接口提供了机器人运动规划所需的运动学
2025-10-30 14:41:32
812
原创 moveit安装与测试(一)
本文介绍了在Ubuntu 20.04上安装ROS Noetic及MoveIt运动规划工具的过程,包括环境配置、依赖安装和源码编译。重点演示了通过RViz与MoveIt交互进行机器人运动规划的方法,展示了设置起始/目标状态、碰撞检测、冗余关节控制等关键功能。文章还介绍了MoveGroupInterface编程接口,为后续C++控制开发奠定基础。整个过程涵盖了从环境搭建到可视化交互的完整流程,为机器人运动规划研究提供了实用指南。
2025-10-29 15:04:24
1073
原创 leetcode 912.排序数组
基准元素要怎么变化!!!递归调用:对基准左侧(left 到 pivot_index-1)和右侧(pivot_index+1 到 right)的子数组递归排序,覆盖了所有元素,无遗漏。
2025-10-18 19:17:15
704
原创 深度相机仿真
最近发现其实真正的仿真的时候,用到激光的雷达的情况是很少的,主要还是使用的是深度相机,所以我们来学习一下深度相机仿真的使用.打开仿真,获得对应的图像信息:这里面的相机其实发布了四个话题,这里我们具体看一下代表的是什么内容的.在 ROS 中,/camera/color/
2025-10-17 18:33:33
894
原创 深度学习模型训练的一些常见指标
回归任务常用指标包括:MSE(平方误差均值,对大误差敏感)、MAE(绝对误差均值,抗异常值)、RMSE(MSE开方,单位一致)和R²(模型解释力)。分类任务主要指标有准确率、精确率(查准率)、召回率(查全率)和F1-Score(精确率与召回率的调和平均)。多分类任务中,每个类别可单独计算精确率和召回率,通过混淆矩阵分析预测结果。
2025-10-17 14:39:50
991
原创 leetcode 2073.买票需要的时间
对于简单题来说,它的题干内容是非常多的.我们只需要直到,一个人一次只能买一张,如果没有买完就得回到队尾,所以这个队列如果能存储位置以及剩余要买的票的话,这个问题就能很好的解答了。在最前面的人买完票后,队伍在第 1 秒变成 [3,2,1]。队伍一开始为 [2,3,2],第 k 个人以下划线标识。继续这个过程,队伍在第 2 秒变为[2,1,2]。继续这个过程,队伍在第 3 秒变为[1,2,1]。继续这个过程,队伍在第 4 秒变为[2,1]。继续这个过程,队伍在第 5 秒变为[1,1]。
2025-10-17 02:40:16
157
原创 leetcode 20.有效的括号
也是要注意一下哈希集合是怎么进行in的,如果找到了右括号后也是一样要弹出左括号的,然后看能否匹配,判断的条件必须是不能匹配,也就是maping[char]!易错点很多,比如判断的时候判断的都是false的情况,只有匹配完毕并且栈空了之后才能说都匹配,匹配的条件也需要注意不要写错了.给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。所以还有更加方便的方式,通过哈希表来写对应的匹配,此时需要右括号作为key,左括号作为value。输入:s = “()[]{}”
2025-10-17 02:33:17
212
原创 leetcode 136.只出现一次的数字
需要注意的就是如果key不存在的时候是很容易报错的,所以比较推荐的是使用defaultdict进行初始化,然后根据key的类型进行对应的初始化即可.比如defaultdict(int),defaultdict(str)很明显,是直接不允许你使用暴力搜索的方式解题,所以我们需要考虑其他的数据结构.这里明显是在统计出现的次数,也就是一个哈希表的问题,key为num,value为出现的次数.dict 用于存储键值对(key-value),核心操作围绕键的增删查改。输入:nums = [4,1,2,1,2]
2025-10-17 02:08:05
353
原创 leetcode 217.存在重复元素
给你一个整数数组 nums。如果任一值在数组中出现 至少两次 ,返回 true;如果数组中每个元素互不相同,返回 false。但是这种解法无法通过,原因是复杂度太高了.所以我们需要想办法规避一下.这里对于重复元素的判断,可以通过哈希集合.比较简单,同样根据时间复杂度(使用的数据结构)可以分为基础实现和进阶实现。输入:nums = [1,1,1,3,3,4,3,2,4,2]输入:nums = [1,2,3,1]输入:nums = [1,2,3,4]元素 1 在下标 0 和 3 出现。
2025-10-17 01:38:47
217
原创 leetcode 1.两数之和
这个复杂度很明显是O(n^2),因为嵌套了两个for,稍微修改一下使用的数据结构,通过O(n)来解决这个问题,此时我们可以想到哈希表。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。先说绝大多数的思路,就是两个for循环进行遍历,注意遍历的技巧即可.输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。作为最初的题目,经典无需多言。
2025-10-17 01:26:29
324
原创 leetcode 797所有可能的路径
这里唯一的注意点就是bfs找路,遍历的过程要用deque记录的是路径而不是节点,所以deque.popleft提取的是一条一条的路,直到这条路满足到达终点的硬性条件.输出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]输入:graph = [[4,3,1],[3,2,4],[3],[4],[]]输入:graph = [[1,2],[3],[3],[]]这个是一个典型的求路径的题,也是递归方法的实际应用。输出:[[0,1,3],[0,2,3]]
2025-10-17 01:08:31
143
原创 leetcode 2598 执行操作后最大MEX
乍一看完全不理解,怎么又是任意次数又是两个变量的,什么神奇的问题,但是我们做题还是要找一找规律最重要的.nums中的元素减value,这一点应该可以想到余数的意味,但是光想到取余还完全不够,因为我们首先要求MEX,而且还要的是最大MEX.value(共 k+1 个数)。检查的数 m m 的余数 r = m%5 m 是该余数的第几个数(k = m//5) 需要该余数的元素数量 ≥ k+1?加减任意次的意思不就是可以最终变为相同的元素值,也就是说1%5=1,可以覆盖1,6,11,16这些除以5余1的非负整数.
2025-10-17 00:06:55
678
原创 基于frenet坐标系的规划与避障
摘要 本文介绍了Frenet坐标系在自动驾驶路径规划中的应用。Frenet坐标系将二维路径规划分解为纵向(s)和横向(d)两个独立的一维问题,具有直观性强、约束简化等优势。文章详细阐述了笛卡尔坐标系与Frenet坐标系的相互转换方法,包括切线向量计算、法向量确定和投影变换等关键步骤。同时介绍了基于frenet坐标系的轨迹采样策略,包括横向偏移、目标速度和时间长度三个维度的采样方法。最后通过代码示例展示了坐标转换和采样生成的具体实现,为自动驾驶路径规划提供了理论基础和实用方法。
2025-10-13 22:49:50
832
原创 ubuntu中文字体使用与可视化
其实大家很容易就能发现,在ubuntu中通过matplotlib进行绘图时,经常是无法使用中文字体来绘制的,这里我们通过安装额外的中文字体可以解决这个问题。首先需要导出windows中的一些中文字体,打包为font.zip文件.放到主目录的font.zip中。这里面执行了一些创建工作和设置环境工作。就可以测试是否能够正常使用了。
2025-10-04 21:32:36
368
osqp 0.6.3 ubuntu20的cmake版本使用
2025-04-16
Practical Search Techniques in Path Planning for Auto D.pdf
2023-07-31
windows下使用issacsim使用问题
2025-10-30
google/protobuf/port_def.inc: 没有那个文件或目录
2023-06-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅