自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(256)
  • 收藏
  • 关注

原创 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 13

原创 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 116

原创 使用mujoco加载模型和控制、以及训练(二)

本文介绍了MuJoCo物理引擎的安装配置及常用机械臂模型的使用方法。主要内容包括:1) 下载最新版MuJoCo并配置环境变量;2) 测试安装效果并运行示例模型;3) 获取menagerie模型库中的常见机械臂模型;4) 展示多个机械臂模型的仿真效果图;5) 介绍Python环境下MuJoCo的基本使用方法,包括模型加载、仿真控制和可视化。特别演示了如何通过Python程序获取机械臂末端执行器的位置信息,并提供了完整的仿真控制代码框架。

2025-11-02 00:28:42 722

原创 使用mujoco加载模型和控制、以及训练(一)

本文介绍了在Windows系统下搭建MuJoCo强化学习训练环境的过程。首先下载并安装最新版MuJoCo,配置相关环境变量。接着安装CUDA 11.8和对应版本的cuDNN,完成GPU加速配置。然后通过conda创建虚拟环境,安装PyTorch GPU版本和stable_baselines3等必要依赖。最后启动训练脚本进行模型训练,训练完成后可进行模型测试。整个过程涵盖了从环境配置到模型训练的主要步骤,为基于MuJoCo的强化学习项目提供了完整的Windows环境搭建指导。

2025-11-01 17:20:15 585

原创 moveit使用最终章——tiago moveit环境配置过程(五)

本文介绍了在ROS Noetic环境下搭建Tiago机器人仿真环境的具体步骤。首先创建并配置工作空间,下载官方功能包源码。随后通过apt安装必要的依赖包,包括导航规划、传感器仿真、MoveIt运动规划等组件。接着使用rosdep解决剩余依赖关系,并跳过部分非必要依赖项。最后通过catkin build命令编译整个项目,编译完成后运行导航和任务测试launch文件验证环境配置正确性。整个过程涵盖了从源码获取、依赖安装到系统编译的完整流程,为Tiago机器人的仿真开发提供了基础环境支持。

2025-10-31 19:58:59 247

原创 moveit使用和机器人模型与状态--正向运动学和逆向运动学分析(四)

本文介绍了机器人模型中RobotModel和RobotState类的使用。RobotModel包含机器人关节与链接的关系信息,RobotState存储机器人的实时状态数据。通过MoveIt的C++ API,可以访问机器人的运动学信息,包括末端执行器的雅可比矩阵计算和笛卡尔轨迹规划。文中展示了如何加载Panda机器人模型、获取关节值、检测和处理关节限制,以及进行正向运动学计算。代码示例演示了从URDF/SRDF加载模型、设置关节位置、验证状态有效性,并计算特定末端执行器位置的变换矩阵。运行测试时输出包含模型框

2025-10-30 15:38:03 647

原创 moveit使用与命令行脚本(三)

摘要:本文介绍了如何使用moveit_commander的Python包实现机器人运动规划。通过命令行界面可执行控制命令,包括设置关节值、规划路径和执行动作。具体操作包括启动demo环境、记录当前状态、修改目标关节值(如goal[0]=0.2)、使用go或plan+execute命令控制运动,并支持在RViz中可视化运动计划。该工具提供类似Matlab的语法操作,可通过help查看支持命令,quit退出界面。

2025-10-30 14:48:39 176

原创 moveit使用与规划——python规划(二)

本文介绍了如何使用Python接口实现机械臂运动规划。通过MoveIt的Python移动组接口,用户可以设置关节或姿势目标、创建运动计划、移动机器人等操作。文章演示了运行环境启动命令和Python脚本的过程,展示了通过Enter键交互执行的多个功能步骤(包括关节状态目标运动、笛卡尔路径规划、物体添加/移除等)。同时解析了代码中核心类的初始化过程,包括RobotCommander、PlanningSceneInterface和MoveGroupCommander的创建,这些接口提供了机器人运动规划所需的运动学

2025-10-30 14:41:32 726

原创 moveit安装与测试(一)

本文介绍了在Ubuntu 20.04上安装ROS Noetic及MoveIt运动规划工具的过程,包括环境配置、依赖安装和源码编译。重点演示了通过RViz与MoveIt交互进行机器人运动规划的方法,展示了设置起始/目标状态、碰撞检测、冗余关节控制等关键功能。文章还介绍了MoveGroupInterface编程接口,为后续C++控制开发奠定基础。整个过程涵盖了从环境搭建到可视化交互的完整流程,为机器人运动规划研究提供了实用指南。

2025-10-29 15:04:24 987

原创 leetcode 912.排序数组

基准元素要怎么变化!!!递归调用:对基准左侧(left 到 pivot_index-1)和右侧(pivot_index+1 到 right)的子数组递归排序,覆盖了所有元素,无遗漏。

2025-10-18 19:17:15 695

原创 深度相机仿真

最近发现其实真正的仿真的时候,用到激光的雷达的情况是很少的,主要还是使用的是深度相机,所以我们来学习一下深度相机仿真的使用.打开仿真,获得对应的图像信息:这里面的相机其实发布了四个话题,这里我们具体看一下代表的是什么内容的.在 ROS 中,/camera/color/

2025-10-17 18:33:33 872

原创 深度学习模型训练的一些常见指标

回归任务常用指标包括:MSE(平方误差均值,对大误差敏感)、MAE(绝对误差均值,抗异常值)、RMSE(MSE开方,单位一致)和R²(模型解释力)。分类任务主要指标有准确率、精确率(查准率)、召回率(查全率)和F1-Score(精确率与召回率的调和平均)。多分类任务中,每个类别可单独计算精确率和召回率,通过混淆矩阵分析预测结果。

2025-10-17 14:39:50 972

原创 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 152

原创 leetcode 20.有效的括号

也是要注意一下哈希集合是怎么进行in的,如果找到了右括号后也是一样要弹出左括号的,然后看能否匹配,判断的条件必须是不能匹配,也就是maping[char]!易错点很多,比如判断的时候判断的都是false的情况,只有匹配完毕并且栈空了之后才能说都匹配,匹配的条件也需要注意不要写错了.给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。所以还有更加方便的方式,通过哈希表来写对应的匹配,此时需要右括号作为key,左括号作为value。输入:s = “()[]{}”

2025-10-17 02:33:17 208

原创 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 345

原创 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 209

原创 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 318

原创 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 136

原创 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 654

原创 基于frenet坐标系的规划与避障

摘要 本文介绍了Frenet坐标系在自动驾驶路径规划中的应用。Frenet坐标系将二维路径规划分解为纵向(s)和横向(d)两个独立的一维问题,具有直观性强、约束简化等优势。文章详细阐述了笛卡尔坐标系与Frenet坐标系的相互转换方法,包括切线向量计算、法向量确定和投影变换等关键步骤。同时介绍了基于frenet坐标系的轨迹采样策略,包括横向偏移、目标速度和时间长度三个维度的采样方法。最后通过代码示例展示了坐标转换和采样生成的具体实现,为自动驾驶路径规划提供了理论基础和实用方法。

2025-10-13 22:49:50 777

原创 ubuntu中文字体使用与可视化

其实大家很容易就能发现,在ubuntu中通过matplotlib进行绘图时,经常是无法使用中文字体来绘制的,这里我们通过安装额外的中文字体可以解决这个问题。首先需要导出windows中的一些中文字体,打包为font.zip文件.放到主目录的font.zip中。这里面执行了一些创建工作和设置环境工作。就可以测试是否能够正常使用了。

2025-10-04 21:32:36 356

原创 预瞄控制中的相关信息

本文介绍了纯跟踪算法中预瞄距离的调整方法,基于轴距2.75m的车辆给出了具体计算公式L=k×v+L₀,并针对不同速度区间(低速、中速、高速)分别推荐了参数取值。同时提出结合轨迹曲率的动态调整策略L'=L×(1-α×|κ|),确保弯道行驶稳定性。文章还提供了工程验证建议,包括直线和弯道测试方法,以及预瞄距离的安全边界设置(2.75-13.75m)。最后预告后续将探讨LQR控制在循迹中的应用,包括Python和C++实现方案。

2025-10-04 20:58:44 500

原创 ros时间戳机制剖析

ROS时间系统提供统一的时间管理机制,支持真实时间和仿真时间两种模式。通过use_sim_time参数控制时间模式切换,仿真模式下由/clock话题发布仿真时间。ROS时间系统在算法测试、数据回放等场景中尤为重要,确保所有节点使用统一的时间基准。时间获取通过rospy.Time.now()实现,其行为随use_sim_time参数变化而变化。仿真时间模式下,需由仿真器或rosbag发布/clock话题来驱动系统时间前进。

2025-09-23 14:12:15 720

原创 git永久存储凭证(可以不用经常输入git密钥)

本文介绍了解决GitHub每次推送都需要输入密码问题的方法。主要内容包括:1)配置Git用户信息(邮箱和用户名);2)通过安装libsecret工具实现凭证永久存储(Ubuntu/Debian系统);3)设置Git使用libsecret存储凭证。实现后只需首次输入密码,后续操作将自动验证,提升开发效率。方法适用于需要频繁提交代码的场景,但需在安全环境下使用。

2025-09-16 23:34:32 425

原创 GPS地理坐标与ros右手坐标系的转换

摘要:本文详细分析了地理方位角与数学角度的转换问题,地理方位角以北方为0°基准顺时针增长,而数学角度以东方为0°基准逆时针增长。通过转换公式math_angle=90°-geo_angle可实现两种系统的转换,该公式同时实现了坐标轴旋转和方向反转。文章提供了理论推导、可视化图表、几何变换原理及实际应用效果分析,并给出Python实现代码和性能优化建议,确保导航系统的准确性和可靠性。

2025-09-15 09:11:37 998

原创 ros2-tf树查看

本文介绍了在Ubuntu 20.04中使用ROS 2(Foxy/Noetic/Galactic)搭建阿克曼转向模型car_demo的方法,并重点讲解了ROS 2的TF系统。主要内容包括: 仿真环境部署:通过git克隆项目并编译 TF可视化工具:安装tf2-tools和rqt-tf-tree查看坐标系关系 坐标变换分析:使用tf2_echo获取坐标变换数据,详细解释平移向量和四元数旋转的数学原理 实际应用示例:展示了如何通过Python代码实现GPS到odom坐标系的转换 文章还提供了完整的坐标变换公式说明,

2025-09-14 21:43:36 1053

原创 SARSA和Q-learning示例

1.2 状态编码状态按行优先编码:3. SARSA算法详细执行3.1 初始化3.2 ε-贪心策略函数3.3 回合1详细执行步骤1当前状态: S₀ = 0 (起始状态)选择动作: A₀ = ε-贪心选择执行动作: 从(0,0)向右移动到(0,1)观察结果: R₁ = -1, S₁ = 1选择下一动作: A₁ = ε-贪心选择SARSA更新:更新后Q表:步骤2当前状态: S₁ = 1, A₁ = 1 (↓)执行动作: 从(0,1)向下移动到(1,1) - 但这是障碍物!实际结果

2025-08-29 02:31:03 917

原创 SARSA和Q-learning算法详细教程

马尔可夫决策过程是一个五元组SAPRγSAPRγSSS: 状态空间AAA: 动作空间PPP: 状态转移概率Ps′∣saP(s'|s,a)Ps′∣saRRR: 奖励函数Rsas′R(s,a,s')Rsas′γ\gammaγ: 折扣因子SARSA在策略算法,学习当前策略的价值Qsa←QsaαrγQs′a′−QsaQsa←QsaαrγQs′a′−Qsa。

2025-08-29 01:40:07 1707

原创 数据集数量与神经网络参数关系分析

神经网络的参数量与所需数据集大小之间存在重要的关系,这直接影响模型的泛化能力和训练效果。当前10,000样本的数据集对于这个网络结构来说是。:数据样本数量应至少为模型参数量的10倍。

2025-08-26 20:56:10 582

原创 神经网络参数量计算详解

权重(Weights):连接不同神经元之间的权重矩阵偏置(Bias):每个神经元的偏置项批归一化参数:BatchNorm层的缩放和平移参数其他可学习参数:如Dropout的参数等模型设计:合理的参数量设计数据需求:估算所需的数据量训练策略:选择合适的正则化和优化方法性能预期:预测模型的泛化能力短期:加强正则化,优化训练参数中期:收集更多高质量数据长期:探索更适合的模型架构通过合理的参数量控制和训练策略,即使在小数据集上也能训练出性能良好的模型。

2025-08-26 20:54:47 619

原创 vscode的使用

用于c++程序的调试,后面还需要对项目中的整个内容调试再出一篇

2025-08-16 20:47:04 450

原创 阶段整理-1窗口置顶2cuda报错3jupyter内核管理4终端代理

在虚拟环境中运行python -m ipykernel install --user --name=myenv --display-name “Python (myenv)”,–name=myenv指定内核名称(通常与虚拟环境名相同),–display-name "Python (myenv)"是在 Jupyter Notebook 中显示的名称。创建后用conda activate myenv激活该虚拟环境。窗口置顶是让某一个窗口能够始终保持在最顶层的方式,这个在需要有一个参考的窗口的时候是最为重要的。

2025-08-03 10:55:04 981

原创 wandb记录数据

Wandb是一款云端机器学习训练管理工具,能够替代TensorBoard等本地化工具,实现训练数据的实时上传和可视化。本文详细介绍了从注册到使用的完整流程:1)在官网注册账号并创建项目;2)本地安装wandb库并通过API密钥登录;3)调试时可设置离线模式;4)在代码中初始化项目、记录超参数和训练指标;5)支持日志、图片、模型等各类数据的上传。通过wandb.init()初始化项目、wandb.log()记录数据、wandb.save()保存模型,最后用wandb.finish()结束记录。该工具大大简化了

2025-08-03 10:37:13 923

原创 决策规划内容整理

本文整理了无人驾驶决策规划算法的实现方法,包括高精地图Dijkstra路径规划、栅格地图A*算法和Frenet最优轨迹规划三种方案。高精地图方案通过Python脚本直接解析地图数据并可视化;栅格地图方案采用模块化架构,包含环境建模和多种搜索算法;Frenet方法通过分解运动到纵向和横向维度,采用多项式拟合生成最优轨迹。此外还介绍了基于SMACH状态机的任务管理框架,包含系统初始化、任务执行等状态。这些方案适用于无人驾驶入门学习,配套代码和文档可通过视频评论区获取。

2025-07-22 21:58:50 833

原创 具身智能系列教程——(三)gazebo环境配置与训练

系列的最后一篇教程,我来到自己比较擅长的gazebo环境中训练自己的go2机器人,这个也是借鉴了开源资料,我们现在来复现一下。通过gazebo来进行仿真,训练强化学习的控制器完成相关任务.

2025-06-29 16:21:31 1401

原创 具身智能系列教程——(二)isaac ism环境配置与强化学习训练

这个之前也写过关于isaac sim安装的文章了,这里再归纳性的总结一下isaac sim相关的内容,并且通过宇树的go2机器狗来进行强化学习的仿真(注意:只说明环境配置过程,因为宇树那个训练需要的显存是大于8G的,我的笔记本还没有完全跑起来,但是环境配置算是非常熟悉了)这个库拓展了模板,更加直观的去训练宇树的机器人。

2025-06-29 15:52:11 1888 3

原创 从dbc到can解析(二)

通过python或者是c++来实现对can信号的解析过程.不依赖其他can的三方库实现

2025-06-29 15:21:01 987

原创 由dbc文件解析can消息(一)

本文介绍了DBC文件在CAN通信中的核心作用,详细解析了DBC文件的结构与内容。DBC作为协议的表达形式,定义了消息ID、信号布局、取值范围等关键参数。文章通过示例展示了DBC文件的文本格式,包含版本声明、节点定义、信号值表、消息帧(BO_)和信号(SG_)等组成部分,每个信号都详细标注了起始位、长度、缩放因子、单位等信息。最后强调DBC文件既是文本文件又是CAN通信的基础配置文件,对CAN消息解析和发送至关重要。

2025-06-29 14:38:06 764

原创 具身智能系列教程——(一)具身智能研究与发展

具身智能技术正通过人形机器人、机甲格斗等应用场景快速进入公众视野,但其发展仍面临硬件、软件和社会伦理等多重挑战。该技术是机器人通用智能与人工智能物理化需求的双向融合产物,涉及机械工程、认知科学等多学科交叉。目前学界对具身智能的界定存在两类观点:强调具身交互对智能发展的影响,或关注其对解决实际问题的效用。研究将围绕技术发展、Isaac Sim/Gazebo仿真环境搭建等方向展开,参考了信通院、高校学者等权威机构的研究成果。

2025-06-28 23:29:41 499

原创 navigation2学习笔记

ROS 2 Navigation2相比ROS 1进行了多项改进,保留了模块化导航思想,但引入了生命周期管理和行为树导航等新特性。通过TurtleBot3仿真体验发现,Nav2基本流程与ROS 1相似,包括AMCL定位和目标点导航。生命周期管理是ROS 2的核心特性,通过状态机控制节点从配置、激活到销毁的全过程。Nav2采用行为树(BT)导航框架替代有限状态机,使用BehaviorTree CPP V3库加载XML配置,实现更灵活的任务规划。该架构通过BT Navigator Server管理规划器、控制器和

2025-06-28 23:04:45 948

ms6111组合惯导相关软件,上位机

ms6111组合惯导相关软件,上位机

2025-08-15

多智能体协作的强化学习实现

多智能体协作的强化学习实现

2025-08-15

标定功能包,用于相机和雷达的静态标定过程

本资源主要是雷达、相机标定使用的功能包

2025-05-13

osqp 0.6.3 ubuntu20的cmake版本使用

ubuntu20适用的完整版本库,直接建立build文件夹执行cmake make和install三项方式就能安装到usr中了

2025-04-16

docker入门篇,docker镜像资源

docker入门篇,docker镜像资源

2025-03-16

拖拉机的三维模型,可以放到gazebo中加载

拖拉机的三维模型,可以放到gazebo中加载

2024-12-16

最小二乘融合gps与lidar定位的结果

对应的gps和lidar定位的数据

2024-12-16

红绿灯检测yolov5模型,输出4种类别

红绿灯检测yolov5模型,输出4种类别

2023-12-01

Practical Search Techniques in Path Planning for Auto D.pdf

Practical Search Techniques in Path Planning for Auto D.pdf

2023-07-31

华测620组合惯导使用说明及解析文件

配置说明,dbc文件,can解析程序

2023-07-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除