机器人综合设计与实践 课件全套 第1-6章 绪论-机器人导航系统设计与实践_第1页
机器人综合设计与实践 课件全套 第1-6章 绪论-机器人导航系统设计与实践_第2页
机器人综合设计与实践 课件全套 第1-6章 绪论-机器人导航系统设计与实践_第3页
机器人综合设计与实践 课件全套 第1-6章 绪论-机器人导航系统设计与实践_第4页
机器人综合设计与实践 课件全套 第1-6章 绪论-机器人导航系统设计与实践_第5页
已阅读5页,还剩146页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论时间:主讲人:XXXXXX01机器人与机器人技术02机器人的组成03机器人系统设计内容与步骤04机器人系统设计的关键技术目录PART01机器人与机器人技术机器人是自动执行任务的机器系统,融合多学科知识,从简单机械装置到具备学习适应能力的智能实体,其定义随科技发展不断拓展。机器人的分类按应用领域分,有工业、服务、特种机器人;按自主程度分,有全自动、半自动、遥控机器人;按移动方式分,有轮式、履带式、足式、飞行机器人等。机器人的定义机器人概述巡检机器人采摘机器人移载机器人服务机器人物流机器人工业机器人萌芽期(20世纪40年代-50年代):随着电子计算机的问世和自动控制理论的发展,人们开始尝试将计算机技术应用于机器人控制中,为机器人技术的发展奠定了基础。机器人技术发展历程成长期(20世纪60年代-70年代):随着传感器技术、伺服驱动技术等关键技术的突破,机器人开始具备感知环境和执行复杂任务的能力。成熟期(20世纪80年代-90年代):机器人技术得到了广泛应用和推广,不仅在工业领域取得了显著成效,还逐渐渗透到服务、医疗、教育等领域。创新期(21世纪至今):随着人工智能、云计算、物联网等技术的飞速发展,机器人技术迎来了前所未有的创新机遇。机器人开始具备更高的自主性和适应性,能够完成更加复杂和多样化的任务。PART02机器人的组成基座与支撑基座为机器人提供稳定支撑平台,支撑结构连接基座与其他部件,形成机械骨架,确保机器人执行任务时稳定可靠。关节与传动关节是灵活运动关键部件,传动机构将动力传递到关节,常见传动机构有齿轮、皮带、链条、丝杠等,实现机器人多方向运动。末端执行器末端执行器是与环境交互部分,根据任务设计,如机械爪、吸盘、喷枪、焊枪等,用于抓取、搬运、加工等操作。机械结构位置传感器测量机器人或部件空间位置,如角度传感器、编码器等,为机器人运动控制和定位提供精准数据。01感知机器人与环境相互作用力,如力传感器、力矩传感器,在精确控制力度任务中不可或缺,保障操作安全性和准确性。02力觉传感器视觉传感器摄像头、图像传感器等捕捉环境图像,为机器人提供视觉信息,在物体识别、定位、导航等方面发挥关键作用,助力机器人智能化。03模拟人类皮肤触觉功能,感知物体形状、硬度、温度等属性,在操作柔软或易碎物体时,帮助机器人精准控制操作力度和方式。04触觉传感器传感器系统包括微处理器、控制板、通信接口等,微处理器执行控制算法和数据处理,控制板连接外部设备,通信接口实现信息交换,共同支撑机器人运行。硬件组成操作系统提供运行环境和资源管理,控制算法计算控制指令,应用程序实现特定功能,软件部分使机器人具备智能决策和任务执行能力。软件组成控制系统以电动机为动力源,电能转换为机械能驱动机器人,具有效率高、噪音低、控制精度高等优点,在多数机器人中广泛应用。电动系统以液体或气体为介质,压力能转换为机械能,具有传动平稳、功率密度大、过载保护性好等优点,适用于大扭矩或高功率输出机器人。液压与气压系统发条、弹簧等储能装置,太阳能、风能等可再生能源也可作为动力源,在特定应用场景下有独特优势,拓展机器人应用范围。其他动力系统动力系统01按钮、开关、指示灯、显示屏等物理设备,用户通过触摸或观察与机器人交互,直观便捷,适用于近距离操作和简单指令控制。物理界面02计算机程序、移动应用等软件平台,用户可远程控制机器人、设置参数、查看数据,实现复杂任务控制和数据管理,提升交互灵活性。软件界面03语音识别和手势识别技术使交互自然便捷,用户可通过语音指令或手势动作控制机器人,广泛应用于服务机器人和智能家居领域。语音与手势识别人机交互界面PART03机器人系统设计内容与步骤了解并遵守安全、环保、电磁兼容性等法规标准,确保机器人产品合法性和市场准入,保障用户使用安全。包括速度、精度、负载能力、续航能力、环境适应性等性能指标,作为设计重要参考,确保机器人满足实际使用需求。根据市场需求和用户购买力设定成本预算,有助于设计过程中成本控制和方案优化,提高产品市场竞争力。明确机器人需完成的具体任务,如搬运、装配、检测等,直接决定机器人形态、结构和控制系统设计,是设计基础。功能需求明确性能要求确定法规标准遵守成本预算设定01020403设计需求分析控制系统框架初步确定控制系统硬件和软件架构,支持运动控制和决策算法,实现与传感器和执行器有效连接通信,构建智能控制基础。形态设计根据功能和性能要求确定机器人外形、尺寸和重量,考虑运动灵活性和稳定性,为后续详细设计奠定基础。结构布局设计机器人内部结构和部件连接关系,合理布局传动机构、传感器和执行器,确保系统紧凑性和可靠性,优化整体性能。概念设计完成详细机械设计图纸和BOM表,考虑零件加工和装配精度可靠性,确保机器人机械结构性能满足设计要求。机械设计设计电气控制系统,包括电路图、接线图和元器件选型,确保电路安全性和可靠性,满足控制系统功能需求。电气设计编写软件代码和算法程序,实现运动控制和决策算法,具备良好人机交互界面和故障诊断功能,提升机器人智能化水平。软件设计编制制造工艺文件,规定零件加工工艺和装配流程,确保制造过程质量和效率,保障产品一致性。制造工艺文件详细设计、系统调试零件加工部件装配对机器人系统进行全面调试测试,涵盖机械运动、控制稳定性、传感器执行器性能等,解决存在问题,确保系统达标。采用机械加工、注塑成型、3D打印等工艺完成零件加工,严格控制精度和表面质量,符合设计要求。按装配工艺文件组装零件,确保连接牢固可靠,符合功能和性能要求,保障机器人整体性能。制造与装配测试机器人是否能完成预定功能任务,覆盖所有功能点,确保功能完整性和正确性,验证设计功能实现。功能测试测试速度、精度、负载能力等性能指标,结合实际使用场景,确保性能满足用户需求,保障机器人实用性。性能测试在长时间或恶劣环境下测试机器人可靠性和耐久性,模拟实际使用情况,评估稳定性,确保长期稳定运行。可靠性测试邀请用户参与测试,收集反馈意见,发现潜在问题和需求,为改进优化提供依据,提升用户满意度。用户评估测试与评估01根据测试评估结果,调整机械结构,优化性能和可靠性,提升机器人整体性能。机械结构调整02优化控制系统,提高控制精度和稳定性,增强机器人适应性和作业效率。控制系统优化03改进软件算法,提升智能化水平和交互体验,满足用户日益增长需求,推动机器人技术发展。软件算法改进改进与优化PART04机器人系统设计的关键技术多传感器融合融合不同类型传感器数据,弥补单一传感器不足,实现精准全面环境感知,提升机器人对复杂环境适应能力。计算机视觉利用视觉传感器捕捉图像,通过处理识别提取信息,助力机器人导航、物体识别、姿态估计,是智能化关键。激光雷达与SLAM激光雷达测距绘图,结合SLAM技术,使机器人在未知环境实时定位建图,为导航避障提供有力支持。感知技术01高级运动控制采用先进控制算法策略,实现复杂运动轨迹精确跟踪调整,应对不确定性干扰,提高运动稳定性和精度。02力控制通过力传感器和算法实现精确力控制,确保机器人在接触任务中保持适当接触力,避免损坏物体或自身。03多关节协同控制优化多关节运动关系,实现整体协调灵活运动,提高作业效率精度,使机器人完成复杂任务。控制技术构建深度神经网络模型,自动学习特征和决策规则,助力机器人视觉识别、语言处理、路径规划等智能化任务。深度学习让机器人在环境交互中试错优化策略,快速适应复杂环境,做出最优决策,提升自主性和适应性。强化学习构建知识图谱,利用语义分析理解指令和上下文,使机器人理解复杂任务意图逻辑,实现高效自然人机交互。知识图谱与语义分析010302人工智能与机器学习自然语言处理使机器人理解生成自然语言文本语音,实现自然语言交互,提高交互便捷性和自然性,拉近人机距离。虚拟现实与增强现实提供丰富交互环境工具,让用户沉浸虚拟增强环境中与机器人交互,提升真实感和沉浸感,拓展交互维度。可穿戴设备与手势识别利用可穿戴设备和手势识别技术,捕捉肢体动作手势指令,实现非接触式交互,提高交互灵活性和准确性。人机交互技术谢谢大家时间:主讲人:XXXXXX机器人机械结构设计与实践时间:主讲人:XXXXXX01机器人机械结构设计的一般流程02机器人机械结构设计案例分析03机器人机械结构设计综合实践04目录PART01机器人机械结构设计的一般流程明确应用场景和功能需求,选择移动方式,考虑移动效率和地形适应性。确定机器人类型与功能设计电源系统,选择电池类型和容量;设计动力系统,确保持续稳定运行。电源与动力系统设计设计底盘结构,确保稳定性、承载能力和灵活性;设计车身形状和布局。底盘与车身设计根据任务需求设计机械臂结构和自由度;设计夹持机构,确保稳定抓取。机械臂与夹持机构设计设计移动机构的具体结构,选择材料和驱动方式,设计传动系统。移动机构设计选择传感器,设计控制系统硬件和软件,实现自主导航、避障等功能。传感器与控制系统设计设计内容详细设计仿真与验证对各个部件进行详细设计,绘制详细的设计图纸和装配图。使用CAD软件进行三维建模和仿真分析,进行必要的实验验证。明确应用场景、功能需求和性能指标。需求分析概念设计提出初步设计方案,进行方案评估,选择最优方案。维护与升级设计维护方案,根据用户反馈和技术发展进行产品升级和改进。根据仿真和实验结果对设计方案进行优化和改进。优化与改进生产与测试编制生产工艺文件,进行成品测试,确保产品质量和性能符合设计要求。设计步骤PART02机器人机械结构设计案例分析采集室内图像数据并预处理,实现乒乓球检测识别和定位的实时性、有效性和可靠性。功能需求根据检测到的乒乓球数据,自主规划最短路径,实现机器人的自主运动,提高捡球效率。性能需求在捡球时合理避障,确保机器人工作时的安全性,适应复杂环境。可靠性需求智能捡乒乓球机器人需求分析

智能捡球机器人底板部分如图所示,基本成矩形设计,预留车轮和控制器安装孔。底盘部分设计智能捡乒乓球机器人方案设计电机按照工作电源可分为直流电动机和交流电动机两种。在机器人上使用的是直流电动机,而直流电动机的种类也有很多,本机器人选择的是编码器电机。编码器电机为减速电机,扭矩较大。在电机的尾部有霍尔传感器,能够实时检测电机的速度,由速度经过一定的计算可以得到机器人的姿态,另外,路径规划部分也需要编码器提供里程计信息。控制器容器设计智能捡乒乓球机器人方案设计

控制器容器如左图所示,包含控制器外壳和散热版,使用时先将控制器固定在散热上,再将散热版用铜柱与底板相连。控制器容器在前后及右侧均有开口,用于电机走线和电池的取出放入。

控制器容器安装于底盘下部,即与四个轮子在同一侧,目的在于方便电机引线、节约车体内部空间和进一步压低车体重心,提高车体稳定性,使用八颗螺丝安装,安装如右图所示。控制器容器控制器与底盘捡球机构设计智能捡乒乓球机器人方案设计

本机器人拾取乒乓球的原理为采用两个摩擦轮,以相同的转速相向转动,利用转动时产生的摩擦力将乒乓球卷进储球筐。捡球机构主要由前端斜面、聚拢装置、摩擦轮构成,其中摩擦轮为捡球机构的关键,与地面成一定角度的摩擦轮对侧安装,将地上的乒乓球卷起上抛到后面的储球框中,而聚拢装置则起到将前方的乒乓球聚拢到摩擦轮前方的作用,提高捡球效率。捡乒乓球原理图捡球机构捡球机构与底盘储球机构设计智能捡乒乓球机器人方案设计

储球机构由储球筐本体和储球筐支架构成,其中储球筐支架通过螺丝与底盘直接相连,起到将麦克纳姆轮的裸露部分支撑起来的作用,避免储球筐与麦克纳姆轮相接触,同时起到固定储球筐的作用。储球筐为异形结构,壁上有和支架相对应的卡扣。支架安装完毕后直接将其与异形开槽对齐即可。储球筐本体和支架均由3D打印材料制成,有一定韧性,因此储球筐内部有筋支撑,用来保护其不形变。安装图如左图所示。储球机构安装外壳部分设计智能捡乒乓球机器人方案设计

外壳部分均由钣金件制作完成,具有强度高、容易拆卸的特点。主体主要由三部分构成,其中最大的中间部分提供了搭载传感器、连接其他部件的作用,它的前面有半圆形开口。

外壳的两侧部件如中间图所示,安装时,要将两侧部件放在外壳主体的内侧,即从外向内来看,外壳主体在外,两侧部件在内。

引导面如右图所示,其作用为将捡球机构捡到的乒乓球传到储球筐之中,引导面的设计为下宽上窄的簸箕形状。外壳主体两侧部分安装引导斜面外壳部分设计智能捡乒乓球机器人方案设计

引导面将通过两个螺丝与外壳主体相连接,安装时要将引导斜面的平面放于车体的上面,即从侧面看,车体与引导斜面成交叉形态。

在完成前文所述的底盘部分和外壳部分后,可将外壳部分整体通过螺丝安装到底盘上,构成捡乒乓球机器人的主体,并可安装开关与数码管,如右图所示。引导斜面安装捡乒乓球机器人的主体传感器部分设计智能捡乒乓球机器人方案设计

机器人使用的传感器包括视觉传感器单目摄像头和激光雷达,通过USB线与主控制器相连接。摄像头通过四颗螺丝与外壳相连接,并且有两种不同的安装位置,可自行选择合适的位置安装。传感器的安装PART03机器人机械结构设计综合实践实验描述使用SOLIDWORKS软件进行机器人零件图绘制,掌握软件基本操作。实验目的熟悉SOLIDWORKS软件,掌握常用绘图命令,绘制三维零件图。实验内容绘制机器人外壳等零件图,掌握草图、特征等操作。实验步骤通过具体操作步骤,完成零件图绘制,包括草图绘制、特征添加等。实验一:SOLIDWORKS绘零件图01使用SOLIDWORKS软件进行机器人装配图绘制,掌握装配关系添加。实验描述03将绘制好的零件图进行装配,形成完整的机器人结构。实验内容02掌握并理解常用的配合命令,熟练运用常用命令将给定的零件图装配成一个机器。实验目的04通过添加配合关系,完成机器人的装配,包括重合、平行、垂直等配合。实验步骤实验二:SOLIDWORKS绘装配图SOLIDWORKS基础知识下拉菜单:在下拉菜单中包括软件所有的功能,帮助我们执行某些命令或操作;工具栏按钮区:包括针对文件的操作常用的按钮;功能选项卡:包含针对三维建模的常用命令;设计树:体现出当前模型是怎么一步一步创建出来的;任务窗格:1.提供一些帮助文件,帮助使用者查找所需功能;2.内含现有的标准件帮助使用者方便建模;3.对零件添加颜色属性简单渲染;状态栏:1.提供一些提示性信息。如当选择某一特征时在状态栏会提示使用者下一步该做什么;2.告诉使用者当前环境,如当前处在草图环境、零件环境等;图形区:显示当前模型三维图;SOLIDWORKS基础知识

在标准配合命令中的选项中有重合、平行、垂直、相切、同轴心、距离、锁定、角度命令。

重合:用于所选对象之间实现重合。

平行:用于所选对象之间实现平行。

垂直:用于使所选对象之间实现90°相互垂直定位。相切:用于使对象之间实现相切。同轴心:用于使所选对象实现同轴。锁定:用于将两个零件实现锁定,即使两个零件之间相对位置固定,但与其他的零件之间可以相互运动。距离:用于使所选对象之间实现距离定位。角度:用于使所选对象之间实现角度定位。

配合就是为零部件与零部件直接添加一定的关系,如平行关系,重合关系等,在SolidWorks的配合命令中可分为三类,最常用的标准配合、较少用的高级配合以及专业机械人员使用较多的机械配合。(1)标准配合SOLIDWORKS基础知识

在高级配合命令中的选项有轮廓中心、对称、宽度、路径配合、线性/线性耦合、距离和角度命令。

轮廓中心:用于将所选轮廓的中心重合。对

称:用于将选择的面(一般两个面)相对对某基准面对称。宽

度:用于使所选平面处于某两个平面的中间位置。路径配合:用于将所选实体能够沿着某路径移动。线性/线性耦合:用于在一个零部件的平移和另一个零部件的平移之间建立几何关系。距离(线性耦合下一个):用于使所选的实体在某一最大距离和最小距离之间移动。角度(距离下一个):用于使所选的实体在某一最大角度和最小角度之间旋转。

配合就是为零部件与零部件直接添加一定的关系,如平行关系,重合关系等,在SolidWorks的配合命令中可分为三类,最常用的标准配合、较少用的高级配合以及专业机械人员使用较多的机械配合。(2)高级配合SOLIDWORKS基础知识

机械配合中的命令一般不是专业人员很少能够用到,同学们只需了解即可,在机械配合命令中包括凸轮、槽口、铰链、齿轮、齿条小齿轮、螺旋和万向节命令。

凸轮:用于凸轮间的配合槽口:用于槽与孔之间的配合。铰链:用于铰链间的配合如链轮与链条。齿轮:用于齿轮间的配合。齿条小齿轮:用于齿轮与齿条间的配合。螺旋:用于螺丝与螺丝孔间的配合。万向节:用于万向节的配合。

配合就是为零部件与零部件直接添加一定的关系,如平行关系,重合关系等,在SolidWorks的配合命令中可分为三类,最常用的标准配合、较少用的高级配合以及专业机械人员使用较多的机械配合。(3)机械配合谢谢大家时间:主讲人:XXXXXX机器人控制系统设计与实践时间:主讲人:XXXXXX01机器人控制系统设计入门02机器人控制系统设计案例分析03机器人控制系统设计综合实践04目录PART01机器人控制系统设计入门50C语言复习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个关键字51C语言复习二、位运算:C语言提供了六种位运算符二元位运算真值表规律:&只有

全1才1|只要

有1就1^不同为1,相同为0a=6->二进制:00000110a<<2->00011000(24,相当于6×2²)a>>1->00000011(3,相当于6÷2¹)一元位运算真值表52C语言复习三、指针与数组1、地址(Address)内存单元编号=地址每个字节有唯一的编号在C语言中,地址就是指针的本质2、指针(Pointer)指针=存放地址的变量通过指针可以间接访问数据3、数组(Array)数组=一组连续内存单元元素(Element):数组中的每个数据长度(Length):数组元素的总个数4、

数组与指针的关系数组名a实际上是指向首元素的指针a[i]等价于*(a+i)指针可以像数组一样遍历数据53C语言复习四、变量作用域量的两个维度作用域(Scope)→空间范围代码中可以访问到该变量的区域生存期(Lifetime)→时间范围变量在内存中存在的时间1>作用域(Scope)块作用域(BlockScope)定义在{}内的局部变量仅在该块内有效退出作用域后变量不可见2.函数原型作用域(PrototypeScope)函数参数中的名字仅在函数声明时有效3.文件作用域(FileScope)定义在所有函数之外的变量在该文件的所有函数中可见作用域流程图54C语言复习五、头文件作用一般而言,每个C++/C程序通常由头文件(headerfiles)和定义文件(definitionfiles)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现(implementation)。C标准库

头文件55编程思想软件分层(SoftwareLayering)概念:将复杂软件系统按功能划分为若干层目的/优点:分散关注(关注单层即可)松散耦合(降低层间依赖)逻辑复用(复用已有层的功能)标准定义(便于规范化)嵌入式开发应用:多组人员、多阶段、多模块开发协作每层可以独立实现与替换易于标准化与逻辑复用各层作用及流程:56编程思想有限状态机(FiniteStateMachine,FSM)概念:系统在不同阶段呈现不同状态,状态有限且互不重叠特点:某一时刻只能处于一个状态接收部分允许输入产生部分可能响应转移到部分可能的新状态状态机四要素状态机流程图57固件库入门固件库的概念与作用固件库(FirmwareLibrary):类似API,封装了底层寄存器操作让开发者无需直接操作底层寄存器,也能编写程序作用:提高开发效率降低开发门槛提供统一接口,便于代码复用注意事项:建议熟悉芯片Datasheet和ReferenceManual了解底层原理,才能写出高效程序58固件库入门寄存器与外设MCU功能通过寄存器(Register)实现寄存器由

位(bit)构成,用于状态/控制外设(Peripheral)=一组寄存器常见外设:GPIO,IIC,SPI,UART,Timer寄存器层级关系59固件库入门地址映射1、MCS-51示例sfr:特殊功能寄存器,占用一个内存单元概念与STM32固件库类似,但STM32寄存器太多,不便逐一定义2、STM32寄存器地址映射示例GPIOA结构体定义(stm32f10x.h):3、宏定义GPIOA4、计算GPIOA基地址5、寄存器实际地址:

60软件工具MDK(KeilMDK-ARM)•概念:ARM公司基于uVision推出的嵌入式开发工具•支持处理器:ARM7/ARM9、Cortex-M0/M1/M2/M3/M4等•主要组件:1.uVision集成开发环境(IDE)2.RealView编译器(RVCT)3.KeilC编译器、宏汇编器、调试器4.实时内核、Flash烧写模块•功能特点:•自动配置启动代码•强大的仿真与性能分析•支持全流程嵌入式开发•MDK5是最新版本•适用对象:初学者到专业开发工程师61KeilMDK界面介绍打开CODE->base->Project->MDK->DCMotor.uvprojx工程文件编译按钮JLINK下载按钮工程名称菜单工具栏工程配置信息编辑窗口工程窗口信息窗口62KeilMDK工程文件介绍主函数,中断函数配置文件功能函数文件(自定义)STM32工程启动文件(不可删除)STM32f1系列库函数(可添加或者删除,一般不做更改)63固件库入门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℃优势:仿真速度和功能远超传统并口调试器64固件库入门串口调试助手概念:通过UART串口进行输入输出调试的工具特点:简单易用可设置COM口、波特率、起始位、停止位、校验位常用工具:串口调试助手、多功能调试助手用途:查看程序运行状态输入调试指令数据打印PART02机器人控制系统设计案例分析66整体结构框图[图片]67硬件装配68硬件装配69底层运动控制整体结构捡球装置的控制电机测速、电机PID转速控制电池电压测量蓝牙通信、ROS通信70底层运动控制关键原理串口通信实验全向轮控制和遥控运动学分析PWM与编码器原理PID电机驱动实验转速闭环控制实验串口通信无刷电机实验无刷电机原理71串口通信串口是绝大多数MCU中不可或缺的一个外设,同时也是我们开发中经常使用的一种调试手段。所谓串行通信就是,在一根数据线上,数据进行一位一位的发送或接收,从而实现双向通信,它适用于远距离数据传输,但缺点是传输速度较慢。在STM32中,我们使用的是通用同步异步收发器(USART),通信协议采用异步串行通信。什么又是异步串行通信呢?72串口通信我们可以看到它的数据帧示意图,它每次通信只传输一字节数据,也就是8位数据,由起始位、数据位、校验位、停止位组成,数据传输方式有单工、半双工、全双工3种。我们所使用的便是全双工模式,全双工就是发送方与接收方可以同时发送或接收数据,从而实现双向通信。在这里,我们在使用串口通信在STM32与app的通信中、与ROS系统的通信中、PC调试的过程中。异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。73主控模块UP派接口图74主控模块主控模块(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卡接口75视觉模块JetsonNano接口图76视觉模块视觉模块(JetsonNano)平台:NVIDIAJetsonNanoDeveloperKit核心处理器:四核ARMCortex-A57GPU:NVIDIAMaxwell,128CUDA核心内存:4GB64位LPDDR4操作系统:Ubuntu18.04LTS编程语言:Python、C、Java等接口:4×USB3.0、HDMI输出、DisplayPortSD卡插槽、GPIO接口I2C、SPI、UARTMIPICSI摄像头接口、直流5V电源扩展性:支持深度相机、激光雷达,适合人工智能嵌入式开发77机器人软件设计软件架构概览机器人软件采用四层架构:数据流:视觉模块↔ROS主控:话题通信ROS主控↔底层模块:串口通信78机器人软件设计ROS节点设计地图建立节点利用激光雷达扫描场地Rviz可视化,键盘控制机器人保存绘制好的地图供巡航使用2.巡航控制节点根据地图规划巡航路径支持定点巡航、地毯式巡航实时监控机器人坐标,判断是否到达终点3.避障控制节点利用激光雷达感知环境判断障碍物并控制机器人绕行4.目标识别节点使用USB摄像头识别乒乓球YOLOv5算法实时检测与定位发布坐标信息给捡球控制节点5.捡球控制节点控制机器人追球与电机转速PD算法控制转向角速度根据距离调整线速度和电机转速6.底盘控制节点接收捡球控制节点的速度指令控制麦克纳姆轮底盘移动发布底座传感器数据用于导航79机器人软件设计1>通信设计ROS话题通信(TopicCommunication)特点:分布式、松耦合、可扩展机制:发布者→ROSMaster→订阅者实验应用:image_process→发布ball_locationping_subs→订阅ball_location,发布cmd_velserial_node→订阅cmd_vel,串口发送到底盘话题通信模式80机器人软件设计2>串口通信(SerialCommunication)特点:基于ASCII码,最小传输单位为比特异步通信,仅需三根线(地线、发送线、接收线)可实现远距离通信(485总线可达1200m)流程:创建串口连接设置波特率、数据位、停止位、校验位打包数据→发送到底盘接收底盘传感器数据→发布到ROS数据格式:下行指令(发送到底盘):上行反馈(底盘上传数据):功能:将ROS指令转换为底盘电机指令将底盘传感器数据转为ROS里程计消息实现ROS↔STM32底盘的闭环通信81电机驱动实验1.PWM(1)脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。(2)PWM原理—专有名词占空比:是一个脉冲周期内,高电平的时间与整个周期时间的比例;频率:是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);假设周期T为1s那么频率就是1Hz那么高电平时间0.5s,低电平时间0.5s总的占空比就是0.5/1=50%。82电机驱动实验2.编码器编码器是一种将角位移或者角速度转换成一连串数字脉冲和旋转式传感器,我们可以通过编码器测量到底位移或者速度信息。常见的是光电编码器(光学式)和霍尔编码器(磁式)。霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或者数字量的传感器。霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一定直径的原版上等分的布置有不同的磁极,为判断转向,一般输出两组存在一定相位差的方波信号。因此使用的霍尔编码器旋转一圈触发的脉冲数为11x50=55083PID转速控制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为微分系数。84PID转速控制2.PID控制器的参数

Kp值的加大,闭环系统的超调量加大,系统响应速度加快,但是当增加到一定程度,系统会变得不稳定。Ki主要用于消除静差,提高系统的无差度。通常增大会导致超调量减小,系统的响应变慢。Kd微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。3.PID的程序实现我们使用的增量式PID程序,只使用了PI。85全向轮运动学分析1.麦克纳姆轮简介Mecanum轮最早是由瑞典MecanumAB公司的工程师BengtIlon在1973年提出的。麦克纳姆轮是瑞典麦克纳姆公司的专利。这种全方位移动方式是基于一个有许多位于机轮周边的轮轴的中心轮的原理上,这些成角度的周边轮轴把一部分的机轮转向力转化到一个机轮法向力上面。2.安装方式安装方式有多种,主要分为:X-正方形(X-square)、X-长方形(X-rectangle)、O-正方形(O-square)、O-长方形(O-rectangle)。其中X和O表示的是与四个轮子地面接触的辊子所形成的图形;正方形与长方形指的是四个轮子与地面接触点所围成的形状。最后一种O-长方形(O-rectangle)是最常见的安装方式,也是我们的车使用的安装方式。86全向轮运动学分析3.麦轮的运动控制小车前进小车后退顺时针旋转逆时针旋转图中红色实线箭头是车轮向前转产生的摩擦力,蓝色箭头是车轮向后转产生的摩擦力。向左平移向右平移斜向左上移动斜向右上移动87全向轮运动学分析4.麦轮的速度分解

88全向轮运动学分析4.麦轮的速度分解

89全向轮运动学分析4.麦轮的速度分解

无刷电机原理无刷直流电机主要由用永磁材料制造的转子、带有线圈绕组的定子组成。而这个换向的操作,就是需要驱动器去完成的。这也是无刷电机和有刷电机最大的区别,即不像有刷电机的机械换向,无刷电机是通过电子换向来驱动转子不断地转动,电机的电压和KV值决定了电机转速,而电机的转速就决定了换向的频率。FOC驱动板

磁场导向控制(矢量控制)Field-OrientedControl简称FOC。

它是一种利用变频器(VFD)控制三相电机的技术,利用调整变频器的输出频率、输出电压的大小及角度,来控制电机的输出。由于处理时会将三相输出电流及电压以矢量来表示,因此称为矢量控制。

磁编码器as5600芯片,可用于电机,电位器等场合,绝对值编码器0-5v模拟输出。磁编码器的物理工作原理是磁电阻效应。磁电阻效应的产生来源于通电导体或半导体内部载流子,而外部有洛伦磁力的作用,内部载流子运动轨迹就会发生偏转或产生螺旋运动,从而使导体或半导体内部的电位差发生变化,这个过程只是微观表现,宏观表现只要外磁场发生变化,磁阻阻值也会发生相应变化,FOC驱动板

磁场导向控制(矢量控制)Field-OrientedControl简称FOC。

它是一种利用变频器(VFD)控制三相电机的技术,利用调整变频器的输出频率、输出电压的大小及角度,来控制电机的输出。由于处理时会将三相输出电流及电压以矢量来表示,因此称为矢量控制。

磁编码器as5600芯片,可用于电机,电位器等场合,绝对值编码器0-5v模拟输出。磁编码器的物理工作原理是磁电阻效应。磁电阻效应的产生来源于通电导体或半导体内部载流子,而外部有洛伦磁力的作用,内部载流子运动轨迹就会发生偏转或产生螺旋运动,从而使导体或半导体内部的电位差发生变化,这个过程只是微观表现,宏观表现只要外磁场发生变化,磁阻阻值也会发生相应变化,FOC原理航模电池S数:指的是电池的电芯数量。每节电芯是3.7V,2s的电池总共是7.4v,充满电在8.2v在左右,3S的电池电压总共是11.1V,充满电的话一般在12.6V。BB响连接时从数码管面朝自己,电池的第一个黑色引脚为第一个引脚,连接成功后数码管会亮起,会显示相应的每个电池的电压,ALL后显示的数字为电池的总电压。PART03机器人控制系统设计综合实践实验一:电机驱动1.实验描述核心功能:电机转速控制+转向控制。实现方式:PWM输出控制电机速度GPIO输出控制电机方向电机型号:JGB37-520,带增量式编码器(霍尔传感器+磁环)2.硬件接口电机驱动芯片:TB6612FNG两通道,H桥结构,支持正转、反转、制动、自由停止PWM调速,最高100kHz编码器引脚定义:A相/B相→测速VCC/GND→编码器供电电机引脚:M1/M2→电机动力线PWM控制→转速调节3.STM32控制原理定时器TIM2/TIM3产生PWM信号向上计数模式:TIM_CounterMode_UpPWM占空比由比较寄存器TIMx_CCR设置,公式:实验二:电机控制(PID闭环)PID控制算法增量式PID公式:数字PID实现位置式PID输出绝对值,适合位置控制。增量式PID输出增量Δu(k),适合速度控制。实验三:底盘控制(麦克纳姆轮)麦克纳姆轮运动原理4轮倾斜滚子,可实现前/后、左右、斜线、旋转全向运动。正运动学模型:Vx、Vy为平移速度,ω为旋转速度。通过PID控制各轮速度,实现机器人精确移动。请同学们提问!机器人视觉系统设计与实践时间:主讲人:XXXXXX01图像处理知识02机器人视觉系统设计案例分析03机器人视觉系统设计综合实践目录PART01图像处理知识图像处理基础知识一幅图像可以定义为一个二维函数

f(x,y),x,y是空间坐标,而在任意坐标(x,y)处的幅值f被称为这一坐标位置的亮度或者灰度RGB图像在RGB彩色模型中表示图像的每个像素点由3个分量组成,分量的幅值用于表示每个像素的像素深度。灰度图像灰度图像又称为单通道图,灰度图像的矩阵元素的取值范围通常为[0,255]。这就是人们常提到的256灰度图像,“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。分量法

02最大值最小值平均法

灰度化最大值最小值平均法

最大值最小值平均法

均值滤波从频域观点来看均值滤波是一种低通滤波器,高频信号将会被去除,因此均值滤波可以消除图像尖锐噪声,实现图像平滑,模糊等功能。均值滤波就是用每个像素和它周围像素的平均值替代图像中的像素。中值滤波中值滤波是消除图像噪声效果较好的一种方法,特别是对椒盐噪声滤波效果较好,均值滤波是将窗口中的元素的灰度幅值进行排序,选取中间值代替图像像素的灰度值,和均值有相同的地方,不同之处是均值为9个像素幅值的平均值。高斯滤波高斯滤波也是一种平均值滤波,即对整幅图像进行加权平均。用一个模板扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。高斯分布是一种钟形曲线,越接近中心,取值越大,越远离中心,取值越小。图像滤波二值图像二值图像(BinaryImage)是数字图像处理中的一个重要概念,它指的是图像上的每一个像素只有两种可能的取值或灰度等级状态,通常人们用黑白、B&W、单色图像来表示二值图像。具体来说,二值图像中的任何像素点的灰度值均为0或者255,分别代表黑色和白色。虽然二值图像也可以用来表示每个像素只有一个采样值的任何图像(如灰度图像),但二者在本质上是不同的。灰度图像包含更多的灰度等级(通常是0-255),能够表现更丰富的图像细节和纹理特征;而二值图像则只能表现简单的黑白两种颜色,适用于需要简化图像或突出特定特征的场合。彩色图像经过灰度化后得到灰度图像,对灰度图像进行二值化便得到了二值图像。二值化的通常使用的方法如下:当f(x,y)>=T时,f(x,y)=1;当f(x,y)<T时,f(x,y)=0.Roberts算子这是一种利用局部差分寻找边缘的算子,它使用2x2的卷积核来计算梯度。Roberts算子对边缘定位较准,但对噪声非常敏感。Prewitt算子与Sobel算子类似,但其在计算梯度时采用的是不同的卷积核。Prewitt算子对噪声的平滑作用较弱,但边缘检测效果较为明显。Sobel算子是一种一阶微分算子,它利用像素邻近区域的梯度值来计算中心像素的梯度,并根据梯度幅值来判断边缘。Sobel算子对噪声具有一定的平滑作用,但边缘定位精度不是很高。边缘检测PART02机器人视觉系统设计案例分析整体设计捡乒乓球机器人能够通过摄像头识别并锁定乒乓球的位置,搭建视觉系统的硬件平台和软件环境,并进行视觉系统的程序设计。硬件实验平台以Jetsonnano为主控模块,搭配其他模块共同组成捡乒乓球机器视觉系统的硬件平台。软件环境主要包括PC端的软件环境和基于Jetsonnano的软件环境,以及所配置的ROS系统,最后使用Python语言对视觉系统的程序进行设计和编写。PART03机器人视觉系统设计综合实践机器人视觉系统设计综合实践国产版Jetsonnano烧录系统Nano系统的环境搭建样本采集与标注Yolov5实现训练自己的数据集模型优化与部署谢谢大家时间:主讲人:XXXXXX汇报人:XXXX汇报日期:2025/01/01第五章机器人操作系统设计与实践ROS的架构与特点ROS环境搭建移植通讯模块实验机器人硬件实验目录CONTENTS01.什么是ROS02.03.04.05.01什么是ROSROS定义与核心功能ROS的定义ROS(RobotOperatingSystem)是专为机器人开发设计的元操作系统,运行在Linux之上,是一个分布式软件框架。ROS主要为机器人开发提供硬件抽象、底层驱动、消息传递、程序管理、应用原型等功能和机制,帮助用户快速完成机器人应用的建立、编写和多机整合。核心功能其核心功能是提升软件复用率,实现模块化、松耦合、可扩展的系统开发,降低机器人开发的复杂性和成本。所以它被设计成为一种分布式结构,使得框架中的每个功能模块都可以被单独设计、编译,并且在运行时以松散耦合的方式结合在一起。123ROS演进时间线2007年,ROS起源于斯坦福大学AI实验室与WillowGarage的PR2项目,最初作为机器人研究的内部工具。起源2010年,ROS正式开源,迅速引发全球研究热潮,吸引了众多科研机构和企业的关注与参与。各大机器人平台几乎都支持ROS框架,如Pioneer、AldebaranNao、TurtleBot、LegoNXT、AscTecQuadrotor等。开源如今,ROS已成为机器人领域的事实标准,在工业、服务、科研、航天等多个领域得到广泛应用。广泛应用工业机器人在工业领域,ROS被广泛应用于UR、ABB等工业机器人的开发与控制,提高生产效率和灵活性。服务机器人在服务机器人领域,如TurtleBot、Pepper等,ROS为机器人提供了强大的感知与交互能力。自动驾驶在自动驾驶领域,Autoware基于ROS开发,为自动驾驶车辆提供了从感知到决策的完整解决方案。航天探测在航天领域,NASA的Robonaut项目利用ROS实现了太空机器人的复杂操作与控制,拓展了人类在太空的活动范围。ROS跨领域应用图谱02ROS架构与特点ROS系统设计本实验选用JetsonNano作为感知模块的处理器,其外接有深度相机和激光雷达,i.MX8作为ROS主控的处理器,负责运行ROS和各个节点程序,STM32作为底层模块的处理器,其接有蓝牙模块、IMU模块、捡球装置和移动底盘。各个处理器之间可以通过串口等多种方式通信。第一层由Linux操作系统的OS层组成,第二层由ROS内核通讯体系和相关的服务库组成;第三层是应用层,运行着ROSMASTER和目标识别节点、底层控制节点、巡航控制节点、避障控制节点、地图建立节点、捡球控制节点这六个功能节点;第四层是决策层,负责实现机器人从感知、规划等。目标识别节点和巡航控制节点分别发送乒乓球位置数据、雷达扫描数据到底层控制节点中,运动控制节点对乒乓球位置信息、机器人四周障碍信息进行分析,然后发送运动控制指令到串口通信节点,串口通信节点发送速度控制指令到底层运动控制模块来控制机器人运动。感知模块主控设计运动控制策略点对点与多语言支持ROS采用点对点设计,独立节点通过发布/订阅模式通信,无中心瓶颈,可弹性扩展,适合分布式机器人系统。点对点设计ROS支持C++、Python、Java等多种语言,通过.msg/.srv接口实现跨语言通信,降低团队语言栈锁定风险。多语言支持开发者可以自由选择适合的语言进行开发,不同语言编写的节点可以无缝协作,提高开发效率。语言无感模块化与开源生态模块化与组件化ROS的功能封装为Package,支持独立编译与复用,开发者可以像搭积木一样构建复杂的机器人系统。丰富的工具生态ROS提供了RVIZ、Gazebo、rqt、rosbag等丰富的工具,覆盖了从开发到调试的全流程,极大地提高了开发效率。010203ROS环境搭建移植Ubuntu与ROS版本选型使用国内镜像源如清华大学、中国科技大学镜像,可加速软件包下载,避免网络问题导致的安装失败。镜像加速安装ROSMelodic桌面完整版,包含仿真与可视化工具,一次性安装减少后续依赖烦恼,适合新手快速上手。桌面完整版推荐使用Ubuntu18.04LTS搭配ROSMelodic,LTS版本维护周期长,社区支持稳定,适合长期开发。推荐版本04030102初始化rosdep运行'sudorosdepinit'和'rosdepupdate'初始化rosdep,用于自动解决系统依赖问题。配置bashrc将'source/opt/ros/melodic/setup.bash'添加到~/.bashrc文件中,确保ROS环境变量在终端中自动加载。启动roscore运行'roscore'启动ROSMaster,验证安装成功,若提示缺少包,可使用'rosdepinstall'一键修复。安装命令使用命令'sudoaptinstallros-melodic-desktop-full'一键安装ROSMelodic桌面完整版,包含所有核心组件。一键安装与初始化流程跨平台移植要点对于ARM板如香橙派、JetsonNano,需切换至ROSArmhf或源码编译,安装交叉编译工具链并配置CMakeLists.txt。ARM板移植注意文件系统路径大小写敏感、OpenCV与PCL第三方库版本差异等常见问题,提前评估硬件与维护成本。常见问题Catkin工作空间与包管理Catkin工作空间包含src、build、devel、install四目录,src存放源码,devel存放可执行文件与setup脚本。工作空间结构使用catkin_create_pkg命令生成ROS包骨架,自动填写依赖,简化包创建流程。包管理package.xml中的<depend>标签与CMakeLists.txt中的find_package、catkin_package必须同步更新,否则会导致链接失败。依赖同步01030204通讯模块实验话题服务动作三维对比话题是单向异步流,适合传感器高频发布数据,如激光雷达扫描数据,可实时传输大量信息。话题1服务是同步请求/响应机制,适合配置读取与短时计算,如获取机器人状态或设置参数,确保操作的即时性。服务2动作是目标导向的异步协议,支持取消、反馈与结果,适合长时间任务如机械臂抓取,可实时监控任务进度。动作3节点通过XMLRPC向ROSMaster注册,形成全局命名空间,使用'rosnodelist'和'rosnodeinfo'可查看节点状态。节点启动与图结构观测节点启动使用rqt_graph可视化工具可直观呈现节点间的话题流向与边界,帮助开发者快速定位通信问题。图结构观测自定义消息通过.msg文件定义自定义消息类型,如传感器数据结构,满足特定业务需求。序列化自定义消息需经过序列化与反序列化,确保数据在不同节点间正确传输与解析。编译流程修改CMakeLists.txt与package.xml后重新编译,生成可执行文件与消息头文件。跨语言兼容自定义消息字段需使用ROS原生标量类型,以保证跨语言兼容性,支持多种语言的节点无缝通信。自定义消息与序列化05ROS节点参数实验Catkin工作空间与包管理Catkin工作空间包含src、build、devel、install四目录,src存放源码,devel存放可执行文件与setup脚本。工作空间结构使用catkin_create_pkg命令生成ROS包骨架,自动填写依赖,简化包创建流程。包管理package.xml中的<depend>标签与CMakeLists.txt中的find_package、catkin_package必须同步更新,否则会导致链接失败。依赖同步010302Launch文件与参数服务器Launch文件使用roslaunch批量管理多节点启动,通过<node>、<param>、<arg>标签指定节点参数与依赖,简化系统启动流程。参数服务器参数服务器支持节点在运行时动态获取配置,通过API读写参数,实现同一份代码适配不同机器人。调试与数据回放工具实时观测使用rostopicecho实时查看话题数据,验证传感器是否正常发布数据,快速定位问题。可视化分析rqt_plot用于曲线观测,直观展示数据变化趋势;rqt_console用于日志分级过滤,快速发现错误堆栈。数据回放rosbagrecord/play可在不重新运行节点的前提下复现现场数据,节省调试时间,便于问题复现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论