智能车学习(十二)——智能车原理

一、直立行走任务分解

1、任务分解

(1) 控制车模平衡:通过控制两个电机正反向运动保持车模直立平衡状态

(2) 控制车模速度:通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成通过控制电机的转速来实现车轮速度的控制。
(3) 控制车模方向:通过控制两个电机之间的转动差速实现车模转向控制。

三个分解后的任务各自独立进行控制。由于最终都是对同一个控制对象(车模的电机)进行控制,所以它们之间存在着耦合。为了方便分析,在分析其中之一时假设其它控制对象都已经达到稳定。

二、车模平衡控制

1、平衡控制方法:

车模平衡控制也是通过负反馈来实现的,与上面保持木棒直立比较则相对简单。因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。

2、车模等效模型

当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物回复平衡位置。这个力称之为回复力,其大小为

时间: 2024-10-05 05:45:53

智能车学习(十二)——智能车原理的相关文章

springMVC3学习(十二)--文件上传优化CommonsMultipartResolver

基于上一篇文件上传发现效率很慢,我们应该对它进行优化  使用springMVC对文件上传的解析器 来处理文件上传的时候需要在spring的applicationContext里面加上springMVC提供的MultipartResolver的申明 这样客户端请求的时候 springMVC会检查request里面是否包含多媒体信息 如果包含了就会使用MultipartResolver进行解析, springMVC会使用一个支持文件  处理的MultipartHttpServletRequest来包

SpringMVC学习(十二)——SpringMVC中的拦截器

SpringMVC学习(十二)--SpringMVC中的拦截器 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下SpringMVC中拦截器是如何定义的,以及测试拦截器的执行情况和使用方法. SpringMVC中拦截器的定义和配置 SpringMVC中拦截器的定义 在SpringMVC中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的三个方法,如下: public class Inter

智能车学习(二十二)——浅谈速度控制

一.经典PID控制       使用遇限反向PID会比较适合有加减速的车子,使用变速积分适合跑匀速的车子.然后这种方法的条件下,一定要尽可能缩短控制周期..   二.PID加棒棒控制       针对C车,因为电机太弱了.所以可以使用棒棒进行加减速可以有效的提升车子性能.一般推荐控制周期10ms   三.模糊控制

智能车学习(二十)——浅谈C车硬连接与软连接

一.为何要追求软连接?       车子进行软连接之后,可以达到一种效果,就是在高速过程中,车子如果快要发生侧翻的时候,只会跳一个后轮,且只是轻微,而前轮如果进行的内倾,就可以让前轮最大面积接触,增大摩擦力,在这种调节下,可以保持高速而不会翻车,且不会减速,增加过弯速度.然后还有在过陂的时候,可以有减震的作用(说到底就是C车电机太差了 = = ).       但存在一种情况..电机过分差的时候..速度无法过高,否则的话直接翻车,比赛结束.       经过个人的分析比对,参考上届的国特学长,以

智能车学习(二十四)——舵机学习

一.舵机基础知识 1.定义 舵机简单的说就是集成了直流电机.电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元.能够利用简单的输入信号比较精确的转动给定角度的电机系统. 舵机安装了一个电位器(或其它角度传感器)检测输出轴转动角度,控制板根据电位器的信息能比较精确的控制和保持输出轴的角度.这样的直流电机控制方式叫闭环控制,所以舵机更准确的说是伺服马达,英文servo. 2.舵机组成 3.工作原理 控制电路接收信号源的控制信号,并驱动电机转动:齿轮组将电机的速度成大倍数缩小,并将电机的输出

智能车学习(二十三)——浅谈心得体会

      因为毕竟是竞赛,跟学校挂钩,没办法开源代码和算法完成思路,所以不能详细写太多,如果可以等价交换的话,应该还是可以向领导申请一下的.       在厦大信科通信系,参加这个比赛,大家都觉得性价比太低,毕竟这个系,学霸太多,能力太强,课程多,分数还必须要高,如果参加这种要花大半年的时间来准备,但是却只能抱着不确定性拿奖的比赛,对于那些拼保研名额的同学简直有点太过于奢侈.所以基本上选择了创客类比赛,电子设计竞赛,ACM,数学建模,这些短周期的比赛.其实我也纠结了很久,其实,本来我也就是简简

智能车学习(二十一)——K60单片机ftm学习

一.头文件: #ifndef _FTM_H_ #define _FTM_H_ #include "common.h" extern volatile struct FTM_MemMap *FTMx[3]; typedef enum FTMn { FTM0, FTM1, FTM2 } FTMn; typedef enum CHn { // --FTM0-- --FTM1-- --FTM2-- CH0, // PTC1 PTA8 PTB18 CH1, // PTC2 PTA9 PTB19

智能车学习(二十三)——K60单片机注册中断函数

一.头文件: #ifndef __ISR_H #define __ISR_H 1 #include "include.h" /* 重新定义中断向量表 * 先取消默认的中断向量元素宏定义 #undef VECTOR_xxx * 在重新定义到自己编写的中断函数 #define VECTOR_xxx xxx_IRQHandler * 例如: * #undef VECTOR_003 * #define VECTOR_003 HardFault_Handler 重新定义硬件上访中断服务函数 *

C++ template —— 智能指针(十二)

在管理动态分配的内存时,一个最棘手的问题就是决定何时释放这些内存,而智能指针就是用来简化内存管理的编程方式.智能指针一般有独占和共享两种所有权模型.------------------------------------------------------------------------------------------------------------20.1 holder和trule本节将介绍两种智能指针类型:holder类型独占一个对象:而trule可以使对象的拥有者从一个hold

javaweb学习(十二)—— Session

本文整理自孤傲苍狼大大的博客,,, 一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况 下).因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用 户的session中取出该用户的数据,为用户服务. 二.Session和Cookie的主要区别 Cookie是把用户的数据写给用户的浏览器. Sessio