- 博客(34)
- 收藏
- 关注
原创 【Gen6D】位姿估计部署日志
算法和代码框架均来自港大的课题组gen6d介绍页面我只是拿来做一个本科毕设,答辩结束后会遵循GPL协议开放所有代码这篇博客仅作为开发日志,记录一下部署过程中的各种问题。
2025-03-19 13:33:29
254
原创 【vscode】Windows环境下,一键编译c/c++工程
Windows下默认使用的是基于vs的nmake,而不是cmake,需要在launch和task两个json文件之外,在创建一个CMakePresets.json,在其中选定mingw作为编译器,并通过cmake …/ --preset=mingw正确生成编译文件。在linux下使用make编译工程,但是Windows下需要使用ninja 或 MSBuild,为了避免这一问题,需要使用cmake --build .命令编译,解决平台问题。
2025-03-18 20:56:08
217
原创 【深度学习】Adam(Adaptive Moment Estimation)优化算法
Adam算法结合了动量法(Momentum)和RMSProp的思想,能够自适应调整每个参数的学习率。通过动态调整每个参数的学习率,在非平稳目标(如深度神经网络的损失函数)中表现优异。
2025-03-06 21:53:10
827
原创 【vscode】Linux环境下一键编译运行c/c++程序
虽然我这里使用CMake,但是它只是一个用于编译生成可执行文件的工具,完全不影响将工具换成g++,gcc等,这套配置是完全通用的右上角一键编译运行的内部流程task.json格式概述launch.json格式概述CMake格式概述攒起来,组合成通用开发环境举例},},task.json中,在方括号中的,每一组用{ }括起来“东西”,都是一个task,也是这个文件真正要去执行的事。
2025-03-06 21:35:50
937
原创 【Python】将不规则凸多边形映射到单位正方形
在机器学习领域常需要将数据归一化后才能进行训练等操作,一维数据很容易处理,但对于二维的不规则数据,则需要一些手段,本文就是用来解决这个问题此外,有时候希望可以用循环遍历一个不规则的二维平面,显然难以直接实现,此时将该平面映射到一个规则的矩形范围内,就能轻松实现这个目标。
2025-02-07 16:30:26
805
原创 【深度学习】基于MXNet的多层感知机的实现
大致由三层组成:输入层-隐藏层-输出层,其中隐藏层大于等于一层其中,隐藏层和输出层都是全连接隐藏层的层数和神经元个数也是超参数多层隐藏层,在本质上仍等价于单层神经网络(可从输出方程简单推得),但是增加网络的深度可以更加有效地提高网络对深层抽象概念的理解,降低训练难度。
2025-02-06 22:11:56
755
原创 Python调用C++程序实现
由于C++的执行速度快、控制粒度细,Python上层开发方便、迭代速度快,故经常可以遇到C++写好接口供Python调用的情况,但是其中bug还不少(尤其是动态链接库一个链接另一个,就会产生比较复杂的关系)link_directories用于告知CMake,依赖的库需要去哪里调用,我这里图方便,直接在target_link_libraries里就写了绝对地址。target_link_libraries用于告知CMake,生成动态链接库时,需要依赖什么库。add_library用于生成动态链接库。
2025-02-05 23:21:40
316
原创 vscode+CMake+Debug实现 及权限不足等诸多问题汇总
我喜欢一站式开发,更喜欢通用环境,vscode+cmake是一个不错的选择,但是我还想debug,此时就会产生环境问题,这篇文章就是用于解决这个问题的
2025-02-05 23:08:17
806
1
原创 【Python】树莓派5的GPIO控制
【基于python】方法不唯一尝试了单独使用RPi.GPIO和lgpio库的方法,但都存在环境问题个人对于设备树了解不深,内核与驱动亦了解不多,写出该方法只是因为它直接可用,不构成指导意见。
2025-01-12 15:08:53
339
原创 【c++双线程】通过读取键盘输入,控制主程序的运行
主程序持续打印“Value of shared_var after modification: 0”,直到输入1(回车)在终端,”Value of shared_var after modification: 42”,然后程序终止。主程序有刚需执行的任务,且不方便暂停,又希望可以有一些交互方式,可以控制主程序的运行。然后看到打印信息“用户输入 ‘1’!
2025-01-09 16:57:05
406
原创 Shell脚本的学习
常用系统变量$HOME, $PWD, $SHELL, $USER等((表达式))用来扩展Shell中的算术运算,以及赋值运算,扩展for,while,if条件测试运算.支持C语言表达变量加不加$都行四则运算、逻辑运算符合C语言习惯(Shell原来的运算十分奇特,所见即所得)没有了空格的要求。
2025-01-09 13:11:54
735
原创 基于VSCode&CMake的开发环境
各种语法前提:指令(函数)大小写不敏感,变量和参数大小写敏感变量的创建与赋值使用set函数:set(HELLO hello.cpp)即创建变量HELLO,并赋值为hello.cpp变量的调用用和花括号表明调用变量,注意,变量大小写敏感:{HELLO}if语句调用变量时,直接用变量名即可,禁止使用${}的形式需要调用大量源文件时,通常会用set()创建一个变量,对所有需要的源文件进行打包,然后调用这个变量,调用时记得添加${}目录(地址)的表示。
2025-01-06 21:00:32
960
原创 git学习日记
记录一下从单片机开发转向Linux开发,第一步是学习git,学习管理自己的项目我纯粹是把这里当网盘了,学一点写一点,预防自己忘记,
2024-11-30 22:23:30
405
1
原创 【嵌入式开发】从标准库到HAL库的学习(二)——HAL_Delay()详解——滴答定时器的使用
上述提到的变量uwTickFreq(值来自宏HAL_TICK_FREQ_1KHZ==1),即让SysTick每1ms溢出一次。各种算法需要的采样时间、外设模块需要的延时时间、测试所需的延时时间等,都可以使用SysTick。我们也可以直接调用SysTick->LOAD和SysTick->VAL,来。使滴答定时器正好1s把SystemCoreClock计完,然后溢出。HAL_Delay()函数会调用滴答定时器的溢出情况(中断)来计时。(第16位为定时器溢出标志,读一次清空)(定时器重装载值)、
2024-07-14 01:16:12
850
原创 【嵌入式开发】从标准库到HAL库的学习(一)——通俗理解HAL库
总而言之,我们的开发,从亲自调用螺丝铝杆电动机造车,变成了找一个机械员工,告诉他需求,然后让他完成整个任务,当你需要知晓该任务的信息时,问他就完事了(狠狠地鞭策机械!这也是为什么现在火爆的开发语言基本是面向对象的,而不是面向过程的,这也在很大程度上降低了开发门槛。较少的寄存器,让初学者更好地把握与单片机交互的感觉,要和纯软件的“黑窗口”交互区别开来。换句话说,整个串口的功能都被整合到了一个“结构体”中,而不是散落在库的各个角落。标准库,虽然有各种民间的标准库版本,但是终究不是“正道”
2024-07-11 00:09:08
908
原创 【嵌入式开发】从标准库到HAL库的学习(目录)(持续更新)
由于ST的新款单片机不再支持标准库,且HAL的开发环境逐渐优于标准库,故趁此次机会,全面转向HAL库开发。为了让熟悉标准库开发的工程师更好的转向HAL库开发,而不是从零学起,故撰写此系列博客。
2024-07-10 23:24:56
366
原创 C语言关于float类型的使用
因此,依个人拙见,将浮点类型保留16位二进制有效数字,并转化成整型数据,不失为一种处理浮点数据的好方法。但是,对于工程师来说,应该能够把握自己的数据在什么范围内浮动。该方法同时实现了节省空间、减少通信开支、避免比较错误。据此对程序进行特化改动,还是比较容易的。
2024-01-04 10:50:47
444
原创 双环PID高精度的调参思路
PID的理论很简单,但是在落地的时候经常会碰到很多意料之外的问题,故此根据调参经验分享一些文本,来和大家交流讨论
2023-09-18 20:45:20
3324
4
原创 【NLADRC】非线性自抗扰控制的具体实践及参数整定(一)
Author:辰尘Brief: 由于NLADRC包涵了很多动态系统分析的内容,这里不做具体展开,只是介绍各个参数变化时,会对系统控制产生怎样的影响我将按照NLADRC的运行流程来逐步讲述各个功能块的使用。
2023-07-05 13:30:34
773
4
原创 USB虚拟串口移植————基于STM32标准库 & FreeRTOS
为了解决普通串口硬件层面的不稳定、低效,通信上容易丢包等问题,引入USB虚拟串口
2023-06-27 16:25:21
2790
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人