




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机器人控制系统设计与实践时间:主讲人:XXXXXX01机器人控制系统设计入门02机器人控制系统设计案例分析03机器人控制系统设计综合实践04目录PART01机器人控制系统设计入门4C语言复习1.数据类型关键字(基本类型&类型修饰符)基本数据类型:int,char,float,double,void类型修饰符:short,long,signed,unsigned2.存储类型关键字(存储类说明符)auto(自动变量,默认局部变量)register(寄存器变量)static(静态变量/函数)extern(外部变量/函数)typedef(类型定义)3.构造类型关键字(用户自定义类型)struct(结构体)union(联合体)enum(枚举)4.常量与特殊说明符const(只读变量/常量)volatile(易变变量,防止编译器优化)sizeof(计算对象所占内存大小)5.控制语句关键字条件语句:if,else,switch,case,default循环语句:for,while,do跳转语句:break,continue,goto,return一、C语言标准定义的32个关键字5C语言复习二、位运算:C语言提供了六种位运算符二元位运算真值表规律:&只有
全1才1|只要
有1就1^不同为1,相同为0a=6->二进制:00000110a<<2->00011000(24,相当于6×2²)a>>1->00000011(3,相当于6÷2¹)一元位运算真值表6C语言复习三、指针与数组1、地址(Address)内存单元编号=地址每个字节有唯一的编号在C语言中,地址就是指针的本质2、指针(Pointer)指针=存放地址的变量通过指针可以间接访问数据3、数组(Array)数组=一组连续内存单元元素(Element):数组中的每个数据长度(Length):数组元素的总个数4、
数组与指针的关系数组名a实际上是指向首元素的指针a[i]等价于*(a+i)指针可以像数组一样遍历数据7C语言复习四、变量作用域量的两个维度作用域(Scope)→空间范围代码中可以访问到该变量的区域生存期(Lifetime)→时间范围变量在内存中存在的时间1>作用域(Scope)块作用域(BlockScope)定义在{}内的局部变量仅在该块内有效退出作用域后变量不可见2.函数原型作用域(PrototypeScope)函数参数中的名字仅在函数声明时有效3.文件作用域(FileScope)定义在所有函数之外的变量在该文件的所有函数中可见作用域流程图8C语言复习五、头文件作用一般而言,每个C++/C程序通常由头文件(headerfiles)和定义文件(definitionfiles)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现(implementation)。C标准库
头文件9编程思想软件分层(SoftwareLayering)概念:将复杂软件系统按功能划分为若干层目的/优点:分散关注(关注单层即可)松散耦合(降低层间依赖)逻辑复用(复用已有层的功能)标准定义(便于规范化)嵌入式开发应用:多组人员、多阶段、多模块开发协作每层可以独立实现与替换易于标准化与逻辑复用各层作用及流程:10编程思想有限状态机(FiniteStateMachine,FSM)概念:系统在不同阶段呈现不同状态,状态有限且互不重叠特点:某一时刻只能处于一个状态接收部分允许输入产生部分可能响应转移到部分可能的新状态状态机四要素状态机流程图11固件库入门固件库的概念与作用固件库(FirmwareLibrary):类似API,封装了底层寄存器操作让开发者无需直接操作底层寄存器,也能编写程序作用:提高开发效率降低开发门槛提供统一接口,便于代码复用注意事项:建议熟悉芯片Datasheet和ReferenceManual了解底层原理,才能写出高效程序12固件库入门寄存器与外设MCU功能通过寄存器(Register)实现寄存器由
位(bit)构成,用于状态/控制外设(Peripheral)=一组寄存器常见外设:GPIO,IIC,SPI,UART,Timer寄存器层级关系13固件库入门地址映射1、MCS-51示例sfr:特殊功能寄存器,占用一个内存单元概念与STM32固件库类似,但STM32寄存器太多,不便逐一定义2、STM32寄存器地址映射示例GPIOA结构体定义(stm32f10x.h):3、宏定义GPIOA4、计算GPIOA基地址5、寄存器实际地址:
14软件工具MDK(KeilMDK-ARM)•概念:ARM公司基于uVision推出的嵌入式开发工具•支持处理器:ARM7/ARM9、Cortex-M0/M1/M2/M3/M4等•主要组件:1.uVision集成开发环境(IDE)2.RealView编译器(RVCT)3.KeilC编译器、宏汇编器、调试器4.实时内核、Flash烧写模块•功能特点:•自动配置启动代码•强大的仿真与性能分析•支持全流程嵌入式开发•MDK5是最新版本•适用对象:初学者到专业开发工程师15KeilMDK界面介绍打开CODE->base->Project->MDK->DCMotor.uvprojx工程文件编译按钮JLINK下载按钮工程名称菜单工具栏工程配置信息编辑窗口工程窗口信息窗口16KeilMDK工程文件介绍主函数,中断函数配置文件功能函数文件(自定义)STM32工程启动文件(不可删除)STM32f1系列库函数(可添加或者删除,一般不做更改)17固件库入门J-Link仿真器概念:SEGGER公司推出的ARM内核JTAG仿真器特点:支持ARM7/9/11、Cortex-M/A系列与IAR、Keil、RealView等IDE无缝连接操作方便,学习ARM开发必备规格:USB供电,整机电流<50mA支持目标板电压1.2~3.3V/5V兼容最大供电电流300mA,过流保护工作温度+5℃~+60℃优势:仿真速度和功能远超传统并口调试器18固件库入门串口调试助手概念:通过UART串口进行输入输出调试的工具特点:简单易用可设置COM口、波特率、起始位、停止位、校验位常用工具:串口调试助手、多功能调试助手用途:查看程序运行状态输入调试指令数据打印PART02机器人控制系统设计案例分析20整体结构框图[图片]21硬件装配22硬件装配23底层运动控制整体结构捡球装置的控制电机测速、电机PID转速控制电池电压测量蓝牙通信、ROS通信24底层运动控制关键原理串口通信实验全向轮控制和遥控运动学分析PWM与编码器原理PID电机驱动实验转速闭环控制实验串口通信无刷电机实验无刷电机原理25串口通信串口是绝大多数MCU中不可或缺的一个外设,同时也是我们开发中经常使用的一种调试手段。所谓串行通信就是,在一根数据线上,数据进行一位一位的发送或接收,从而实现双向通信,它适用于远距离数据传输,但缺点是传输速度较慢。在STM32中,我们使用的是通用同步异步收发器(USART),通信协议采用异步串行通信。什么又是异步串行通信呢?26串口通信我们可以看到它的数据帧示意图,它每次通信只传输一字节数据,也就是8位数据,由起始位、数据位、校验位、停止位组成,数据传输方式有单工、半双工、全双工3种。我们所使用的便是全双工模式,全双工就是发送方与接收方可以同时发送或接收数据,从而实现双向通信。在这里,我们在使用串口通信在STM32与app的通信中、与ROS系统的通信中、PC调试的过程中。异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。27主控模块UP派接口图28主控模块主控模块(UP派套装)平台:博创UP派套装(ROS模块处理器)核心处理器:恩智浦i.MX8MM架构:4×Cortex-A53+Cortex-M4主频:最高1.8GHz内置电源管理、安全单元、丰富互联接口GPU:3DGPU:GC7000-NanoUltra2DGPU:GC520l内存与存储:2GBLPDDR4,读写速率3000MT/s32GBTF卡存储板载模块:Wi-Fi/蓝牙、红外接收、LED40pinGPIO扩展接口:4×USB2.0、USBOTGMIPICSI摄像头接口、MIPIDSI液晶屏接口USB串口、千兆以太网、TF卡接口29视觉模块JetsonNano接口图30视觉模块视觉模块(JetsonNano)平台:NVIDIAJetsonNanoDeveloperKit核心处理器:四核ARMCortex-A57GPU:NVIDIAMaxwell,128CUDA核心内存:4GB64位LPDDR4操作系统:Ubuntu18.04LTS编程语言:Python、C、Java等接口:4×USB3.0、HDMI输出、DisplayPortSD卡插槽、GPIO接口I2C、SPI、UARTMIPICSI摄像头接口、直流5V电源扩展性:支持深度相机、激光雷达,适合人工智能嵌入式开发31机器人软件设计软件架构概览机器人软件采用四层架构:数据流:视觉模块↔ROS主控:话题通信ROS主控↔底层模块:串口通信32机器人软件设计ROS节点设计地图建立节点利用激光雷达扫描场地Rviz可视化,键盘控制机器人保存绘制好的地图供巡航使用2.巡航控制节点根据地图规划巡航路径支持定点巡航、地毯式巡航实时监控机器人坐标,判断是否到达终点3.避障控制节点利用激光雷达感知环境判断障碍物并控制机器人绕行4.目标识别节点使用USB摄像头识别乒乓球YOLOv5算法实时检测与定位发布坐标信息给捡球控制节点5.捡球控制节点控制机器人追球与电机转速PD算法控制转向角速度根据距离调整线速度和电机转速6.底盘控制节点接收捡球控制节点的速度指令控制麦克纳姆轮底盘移动发布底座传感器数据用于导航33机器人软件设计1>通信设计ROS话题通信(TopicCommunication)特点:分布式、松耦合、可扩展机制:发布者→ROSMaster→订阅者实验应用:image_process→发布ball_locationping_subs→订阅ball_location,发布cmd_velserial_node→订阅cmd_vel,串口发送到底盘话题通信模式34机器人软件设计2>串口通信(SerialCommunication)特点:基于ASCII码,最小传输单位为比特异步通信,仅需三根线(地线、发送线、接收线)可实现远距离通信(485总线可达1200m)流程:创建串口连接设置波特率、数据位、停止位、校验位打包数据→发送到底盘接收底盘传感器数据→发布到ROS数据格式:下行指令(发送到底盘):上行反馈(底盘上传数据):功能:将ROS指令转换为底盘电机指令将底盘传感器数据转为ROS里程计消息实现ROS↔STM32底盘的闭环通信35电机驱动实验1.PWM(1)脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。(2)PWM原理—专有名词占空比:是一个脉冲周期内,高电平的时间与整个周期时间的比例;频率:是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);假设周期T为1s那么频率就是1Hz那么高电平时间0.5s,低电平时间0.5s总的占空比就是0.5/1=50%。36电机驱动实验2.编码器编码器是一种将角位移或者角速度转换成一连串数字脉冲和旋转式传感器,我们可以通过编码器测量到底位移或者速度信息。常见的是光电编码器(光学式)和霍尔编码器(磁式)。霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或者数字量的传感器。霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一定直径的原版上等分的布置有不同的磁极,为判断转向,一般输出两组存在一定相位差的方波信号。因此使用的霍尔编码器旋转一圈触发的脉冲数为11x50=55037PID转速控制1.PID控制器偏差的比例(Proportion)、积分(Integral)和微分(Differential)通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称PID控制器,PID控制器结构框图如图1-1所示。PID控制又分为模拟PID控制和数字PID控制。其中数字PID控制又分为位置式PID算法和增量式PID算法。所谓增量式PID是指数字控制器的输出只是控制量的增量△u(k)。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式PID控制算法进行控制。
其中k为采样序号,u(k)为第k次采样时刻的计算机输出值,e(k)为第k次采样时刻输入的偏差值,e(k-1)为第(k-1)次采样时刻输入的偏差值,Kp为比例系数,Ki为积分系数,Kd为微分系数。38PID转速控制2.PID控制器的参数
Kp值的加大,闭环系统的超调量加大,系统响应速度加快,但是当增加到一定程度,系统会变得不稳定。Ki主要用于消除静差,提高系统的无差度。通常增大会导致超调量减小,系统的响应变慢。Kd微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。3.PID的程序实现我们使用的增量式PID程序,只使用了PI。39全向轮运动学分析1.麦克纳姆轮简介Mecanum轮最早是由瑞典MecanumAB公司的工程师BengtIlon在1973年提出的。麦克纳姆轮是瑞典麦克纳姆公司的专利。这种全方位移动方式是基于一个有许多位于机轮周边的轮轴的中心轮的原理上,这些成角度的周边轮轴把一部分的机轮转向力转化到一个机轮法向力上面。2.安装方式安装方式有多种,主要分为:X-正方形(X-square)、X-长方形(X-rectangle)、O-正方形(O-square)、O-长方形(O-rectangle)。其中X和O表示的是与四个轮子地面接触的辊子所形成的图形;正方形与长方形指的是四个轮子与地面接触点所围成的形状。最后一种O-长方形(O-rectangle)是最常见的安装方式,也是我们的车使用的安装方式。40全向轮运动学分析3.麦轮的运动控制小车前进小车后退顺时针旋转逆时针旋转图中红色实线箭头是车轮向前转产生的摩擦力,蓝色箭头是车轮向后转产生的摩擦力。向左平移向右平移斜向左上移动斜向右上移动41全向轮运动学分析4.麦轮的速度分解
42全向轮运动学分析4.麦轮的速度分解
43全向轮运动学分析4.麦轮的速度分解
无刷电机原理无刷直流电机主要由用永磁材料制造的转子、带有线圈绕组的定子组成。而这个换向的操作,就是需要驱动器去完成的。这也是无刷电机和有刷电机最大的区别,即不像有刷电机的机械换向,无刷电机是通过电子换向来驱动转子不断地转动,电机的电压和KV值决定了电机转速,而电机的转速就决定了换向的频率。FOC驱动板
磁场导向控制(矢量控制)Field-OrientedControl简称FOC。
它是一种利用变频器(VFD)控制三相电机的技术,利用调整变频器的输出频率、输出电压的大小及角度,来控制电机的输出。由于处理时会将三相输出电流及电压以矢量来表示,因此称为矢量控制。
磁编码器as5600芯片,可用于电机,电位器等场合,绝对值编码器0-5v模拟输出。磁编码器的物理工作原理是磁电阻效应。磁电阻效应的产生来源于通电导体或半导体内部载流子,而外部有洛伦磁力的作用,内部载流子运动轨迹就会发生偏转或产生螺旋运动,从而使导体或半导体内部的电位差发生变化,这个过程只是微观表现,宏观表现只要外磁场发生变化,磁阻阻值也会发生相应变化,FOC驱动板
磁场导向控制(矢量控制)Field-OrientedControl简称FOC。
它是一种利用变频器(VFD)控制三相电机的技术,利用调整变频器的输出频率、输出电压的大小及角度,来控制电机的输出。由于处理时会将三相输出电流及电压以矢量来表示,因此称为矢量控制。
磁编码器as5600芯片,可用于电机,电位器等场合,绝对值编码器0-5v模拟输出。磁编码器的物理工作原理是磁电阻效应。磁电阻效应的产生来源于通电导体或半导体内部载
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年美德防诈测试题及答案
- 2025年房地产估价师案例与分析考试真题及答案
- 2025广东广州市黄埔区龙湖街道招聘党建专职组织员、政府聘员3人考试参考题库附答案解析
- 节能知识宣传培训课件
- 2025年社区零售业态创新与数字化运营模式创新对社区公共服务效能提升实践研究报告
- 合作学习:革新高职高专英语课堂的有效路径
- 教师招聘之《幼儿教师招聘》考试押题卷附答案详解(考试直接用)
- 教师招聘之《小学教师招聘》通关模拟卷含完整答案详解(各地真题)
- 教师招聘之《小学教师招聘》题库汇编附答案详解
- 2025年教师招聘之《小学教师招聘》考前冲刺模拟题库及答案详解【真题汇编】
- 应知应会质量管理
- 营业执照模板
- 学前卫生学第一章
- 马克思主义的世界观和方法论
- 国家防灾科学城建设实施方案
- 国土空间规划-学习分享PPT幻灯片课件(PPT 37页)
- 食品物料的基本物理特征
- (高清版)轻骨料混凝土应用技术标准JGJ12-2019
- 危险货物道路运输规则jtt617-2018
- 输煤栈桥施工方案
- 碳纤维、钢板加固板计算表(根据2013版加固规范 编写)
评论
0/150
提交评论