![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器人项目相关
文章平均质量分 85
Odin_Hua
这个作者很懒,什么都没留下…
展开
-
浅谈模块化编程
一. 分层思想与模块化编程分层是基于代码的特性,例如对于一般的嵌入式系统来说,代码的最底层是与硬件相关的,这一层需要根据MCU数据手册以及板载外设编写硬件驱动程序,这一层称为硬件驱动层;而代码的最顶层是应用层,这一层是用来实现具体任务的;而应用层和硬件驱动层之间则可以根据实际合理分层,如下图,则是将其分为了一层,包括FreeRTOS内核以及一些特定功能模块,并且层级内部也可以按照实际情况进行分层。分层时严格规定:只有高层级可以调用其下一层级,但不能跨层级调用,层级内部分层也需准守这一点;同一层原创 2021-03-08 17:43:39 · 2215 阅读 · 0 评论 -
工程机器人项目介绍
一.方案介绍根据机器人制作规范以及比赛规则,工程机器人主要承担两项重要的任务,即补给功能—夹取弹药箱获取弹丸,高效救援机器人功能—用电磁铁拖拽至指定区域救援与救援卡原地救援。针对弹药箱的夹取方面做了可进行双排双列自动夹取的机械设计,配合多个传感器数据、闭环控制算法(详情请点击 浅谈PID闭环控制)以及电机的协调运作,可进行快速全自动夹取。针对全向移动时运动轨迹的正确性,采用六轴传感器解算出欧拉角(详情请点击 浅谈卡尔曼滤波器)作为绝对角度,用正确轨迹下绝对角度与移动时实时绝对角度的偏差作为原创 2021-03-08 22:18:29 · 1899 阅读 · 0 评论 -
浅谈设计模式之状态机模式
一. 为什么要引入状态机模式?系统状态的变化引起实际行为的改变,因此我们需要在系统的主任务中判断他们处于哪一个状态,使用if-else if-else或者switch-case分支结构可以很好的解决。但是如果在某个每个状态在不同场景都有多个分支、并且需要频繁切换状态且状态繁多的系统中,如果仍然使用if-else if-else或者switch-case分支结构,会降低代码的可阅读性以及可维护性。引入状态机模式,即是把所有的状态分隔为一层,将每个状态下遇到实际场景的行为分隔为一层,并将所有状态列出到一个原创 2021-03-09 12:24:51 · 5350 阅读 · 0 评论 -
浅谈卡尔曼滤波器
一. 状态观测器当只知道原系统的输入矩阵U | k和输出矩阵Y | k,但是无法得知某些状态X | k时,可以采用状态观测器的方法。状态观测器即是将原系统模拟成一个观测器系统,观测器的输入矩阵为原系统的 U | k。若观测器完全复现了原系统,即观测器输出输出矩阵Ŷ | k将与原系统相等,这时即可认为原系统待观测状态矩阵X | k与观测器状态矩阵X^ | k相等;然而事实上观测器总是不能完全拟合原系统,因此引入了负反馈调节。数学分析X|k = A * X|k-1 + B * U|k + W|k原创 2021-03-10 16:55:40 · 5726 阅读 · 0 评论 -
CRC校验(个人小结)
前言之前曾经在通信原理课程学习过、也在项目中使用过CRC校验。但是仍然有许多困惑的地方,在网上找的资料也是零零散散,于是自己根据课程学习、项目实践以及网上的资料,做一个总结。不当之处请在评论区指出。推荐一个CRC在线校验工具。一. CRC校验CRC校验数字通信系统中的一种检错方法,主要利用除法和余数的原理来进行错误检测,并且实现简单,生成的检错码占用空间小。因为CRC校验码是通过整组信息序列和校验序列得出的,即用待发送的信息序列多项式除以生成多项式,将最后的余数作为CRC校验码,所以检原创 2021-11-14 17:52:44 · 5569 阅读 · 2 评论