语音机器人系列:(四)差分底盘设计——底盘驱动开发小虎哥哥爱学习

运动底盘是移动机器人的重要组成部分,不像激光雷达、IMU、麦克风、音响、摄像头这些通用部件可以直接买到,很难买到通用的底盘。一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的;另一方面是因为底盘包含软硬件整套解决方案,是很多机器人公司的核心技术,一般不会随便公开。出于强烈的求知欲与学习热情,我想自己DIY一整套两轮差分底盘,并且将完整的设计过程公开出去供大家学习。说干就干,本章节主要内容:

对于做纯SLAM算法、机器人导航避障、或者别的需要用到移动底盘的应用,根据底盘的通信协议,直接使用底盘ROS驱动实现跟底盘的交互。miiboo机器人底盘的ROS驱动代码组织如图36。

(图36)miiboo机器人底盘的ROS驱动代码组织

接口:

底盘控制节点对下与底盘DATA-uart2串口通信,对上开放ROS接口为应用层提功能数据发布与订阅,便于SLAM导航等功能的开发。

(图37)底盘控制节点接口

节点实现源码解析:

首先,程序订阅/cmd_vel作为用户的控制输入,将控制输入的速度信息转换为通信协议中DATA-uart2规定的格式,然后通过串口下发给底盘,实现对底盘的运动控制。订阅/cmd_vel的回调函数和串口下发函数分别如图38和图39所示。

(图38)订阅/cmd_vel的回调函数

(图39)串口下发函数

然后,程序从串口获取底盘的速度反馈,并将速度反馈数据放入航迹推演算法中进行解算,得到里程计,将反馈回来的左轮速度、右轮速度值分别发布到/wheel_left_speed和/wheel_right_speed主题,将解算出来的里程计分别发布到/odom和/tf主题。由于不同的算法对里程计的格式要求不一样,所以将里程计同时发布到/odom和/tf主题,便于不同的算法使用。从串口获取速度反馈并求解里程计和发布反馈速度与里程计到topic

分别如图40和图41所示。

(图40)从串口获取速度反馈并求解里程计

(图41)发布反馈速度与里程计到topic

基于航迹推演算法的里程计解算:

首先,我们需要了解一下ROS下的机器人坐标系为右手坐标系,如图42,机器人底盘的正前方为x轴正方向、机器人底盘的正上方为z轴正方向、机器人底盘的正左方向为y轴正方向、机器人航向角theta坐标轴以x轴为0度角并逆时针方向增大。一般以机器人底盘上电时刻,机器人底盘的位置建立里程计坐标系,也就是说机器人底盘的起始位姿为原点O,机器人底盘在运动过程中,通过前一时刻的位置和左、右轮位移可以推算出机器人底盘的下一时刻位姿,这就是航迹推演算法。

(图42)机器人右手坐标系与航迹推演

我们这里值讨论两轮差分底盘的情况,分析如图41,通过前一时刻的位置和左、右轮位移可以推算出机器人底盘的下一时刻位姿。航迹推演的数学模型如图43。

(图43)航迹推演的数学模型

在很短的时间间隔里,前后两个机器人位姿满足一定的关系,具体看图44的推导。

(图44)短时间内两个机器人位姿的约束关系

这样,经过进一步的化简,可以得到我们解算里程计的核心公式,如图45。

(图45)解算里程计核心公式

不难发现,上面程序中解算里程计部分的代码就是这个核心公式的具体编程实现。关于航迹推演算法更详细的推导,请参考:

接口:

底盘调试节点对下与底盘DEBUG-uart1串口通信,对上通过命令行终端指令交互方式。

(图46)底盘调试节点接口

节点实现源码解析:

首先,程序从终端获取调试命令,用户可输入数字1,2,3,如果用户输入3会再要求输入kp,ki,kd这三个数,将调试命令转换为通信协议中DEBUG-uart1规定的格式,然后通过串口下发给底盘,实现对底盘的调试。调试命令获取与下发如图47。

(图47)调试命令获取与下发

然后,程序从串口获取底盘的应答信息,这里就比较简单了,直接将获取的应答数据原样打印到终端就行了,如图48。

(图48)应答数据原样打印

------SLAM+语音机器人DIY系列【目录】快速导览------

THE END
0.“优秀教材建设奖”获奖人员名单及获奖理由2021年度全国高校人工智能大为了深入贯彻落实习近平总书记关于教材建设的重要指示批示精神,为了进一步调动高校教师及社会力量共同参与人工智能、大数据、区块链等新兴专业教材编写工作的积极性,促进我国高校人工智能专业、智能科学与技术专业、数据科学与大数据技术专业、区块链工程专业、机器人工程专业、智能制造工程专业、智能医学工程专业等新兴智能专业和新兴学科jvzquC41f{428<3eqo5bt}neng5HTBVO59Y17<7P4WH/j}rn
1.大数据在智能医疗远程手术机器人控制与数据传输中的技术支持今日双榜榜首青云交推荐:Java 大数据在智能医疗远程手术机器人控制与数据传输中的技术支持 https://blog.csdn.net/atgfg/article/details/154576975 福利社群入口直达(技术圈零粉变现,体面轻松搞钱【一笔5-200米不等】):https://bbs.csdn.net/topics/619481201(New)jvzquC41ddy/e|ip0pku1}trkey08;52259:5
2.工业机器人应用编程一体化教学创新平台9)机器人安装:任意角度 10)防护等级:IP30 11)机器人控制系统:机器人配有控制系统及控制柜;控制硬件:多处理器系统:PCI 总线,奔腾CPU,大容量闪存,20sUPS 备份电源。控制软件:BaseWare 机器人操作系统,强大的RAPID编程语言:PC-DOS文本格式。 12)示教器具有彩色触摸屏,操纵杆,可以紧急停,可惯用左/右手切换,支持U盘jvzquC41yy}/dsqi0eun1wjyu1nzf}46567/j}rn
3.喷漆机器人应用技术研究与发展趋势相关资料介绍了一种用于汽车车身喷涂的仿形喷涂机器人,该机器人模仿汽车车身的形状,同时在顶部与侧面各安装喷枪,喷枪固定在机架上,喷枪与车身的距离、角度可以调解,以满足不同型号的车身的喷涂需要。机器人采用PLC控制方式,整个系统可靠性高,组态可灵活调整,编程方便,调试维护简单,对不同车型的车身通过编程即可达到仿jvzquC41yy}/ovxqpnoog7hqo0io1rshq1848>;70unuou
4.多功能模块化机器人科教实训平台简介今日头条支持在不启动操作臂的情况下进行算法的离线仿真验证。支持虚拟机器人显示,保证了控制效果的可观察。 2.3开源开放 在机器人可视化集成开发环境中,通过抽象化通讯协议模型,统一控制代码与物理仿真的软件模型,在机器人系统设计层面隐藏不必要的细节,实现机器人系统应用的一体化建模与管理。用户可以开发自定义模型库,用于机器jvzquC41yy}/gujehctt0lto1pkxu86:4;6877mvon
5.专业介绍芜湖职业技术大学主要课程:工程数学、电机与电气控制技术、单片机原理及应用、电子线路CAD、传感器原理及应用、可编程控制器原理及应用、电力电子技术、自动控制理论、计算机控制技术、液压与气动技术、DSP与嵌入式系统原理及应用、过程控制系统、智能控制基础、工业机器人技术等。 3.电气自动化技术 培养目标:学制三年。培养德、智、体、美、 jvzquC41fsmd0€mkv0kew7hp1|ku8{lu4ivv
6.工业机器人课程1、请为工业机器人和智能机器人给出定义。 答:工业机器人是一种用于移动各种材料、零件、工具或专用装置,通过可编程动作来完成各种任务并具有编程能力的多功能机械手。 智能机器人是一种自动化的机器,所不同的是这种机器具备一些与人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,是一种具有高度jvzquC41o0972mteu0tfv8iqe191:B=:;74ivvq
7.现代机器人学机械、规划和控制|Coursera您将能够在三维空间中表示运动和力(扳手);对开链式和闭链式机器人的正向、反向和速度运动学进行数学建模;规划机器人在障碍物中的无碰撞运动;分析刚体与摩擦接触的机器人操纵任务;推导轮式移动机器人的运动规划器和反馈控制器。 您将能够编写支持所有这些活动的软件,并在最先进的机器人模拟器上验证您的软件。 您所开jvzquC41yy}/exztugxb0xwi1uvferfnk|gukxsu1oueg{stqduuklxAcwziOxig?nuhkw+gskj>gB:ed9942958c386295222678=j63gj5
8.人形机器人控制器前景展望控制器:人形机器人之“大脑&小脑人 机交互:工作人员使用示教器、操作面板,对机器人进行编程等; 外部感知:部分场景 需要工业机器人对视觉、力觉、触觉等有关信息进行测量感知,有时需要与其他设备交换 信息和协调工作。 工业机器人控制器通常是 PC-Based 控制,由硬件和软件组成: 硬件:硬件由工控计算机和示教器(示教编程使用)/电脑面板(离线编程使用jvzquC41zwkrk~3eqo55:?;24394687;65?72?;
9.工业机器人应用编程实训装置,工业机器人循环生产线二、设备结构与组成 智能工业机器人实训平台采用ABB六自由度工业机器人系统、传送系统、可编程控制器(PLC)系统、视觉检验系统、分拣系统、供料单元、加工系统、装配系统、仓库单元、各类工件、电气控制柜、型材实训桌、型材电脑桌等组成。 1、六轴机器人(ABB) jvzquC41yy}/crfx0eun0ls1tg5229690jznn
10.详情项目公示对蓝莓进行精确识别、定位与采收,减少采收时间,降低采摘成本,避免野蛮采摘,实现安全采摘;基于硬件Jetson TX1平台实现了蓝莓分级检测,滤除缺陷蓝莓,保证蓝莓品质,提高采收效率与经济效益。 (1)基于STM32单片机及ROS,搭建蓝莓采摘机器人整体框架与控制系统。 (2)应用SLAM技术及ROS操作系统实现机器人的定位导航。 (3)采用jvzq<84pcwysv7slcw4ff~3ep1IYEb4PLC[0K}jo1Fkucrq1g8643?67/391e69:d;3::jj/3fg53k6fg88e
11.工业机器人操作与编程(第2版)(豆瓣)《工业机器人操作与编程(第2版)》以ABBIRB120型工业机器人为对象,分7个项目详细讲解工业机器人的系统结构、坐标系、启动与关闭、手动运行方法、I/O通信设置、编程与调试、参数设定、程序管理方法、基础示教编程与调试、高级示教编程与调试、日常维护等内容。各任务后均附有思考题,方便知识的温习。 《工业机器人操作与编程( jvzquC41dqul0mtwdct/exr1uwhkgly157>32;=:1
12.学习编程计划范文汇编语言是一门面向处理器的低级语言。该课程一方面配合“计算机组成原理”、“微机原理及接口技术”和“嵌入式系统”等课程,为自动控制等与硬件相关的应用领域提供基础知识;另一方面作为“操作系统”及“编译原理”等课程的程序设计基础,从软件角度理解计算机的工作原理,加强学生的高级语言编程能力。 jvzquC41yy}/i€~qq0ipo8mcqyko1A=5744ivvq
13.机器人技术资料大合集系列二:从理论到应用以上内容展示了机械手设计原理及在不同领域的应用,下一章节将继续深入探讨机器人工程学的全面解析。 3. 机器人工程学的全面解析 机器人工程学是机器人科学和应用的核心领域,它涵盖了机器人的设计、制造、控制、编程、测试和维护等各个方面。这一章节将深入解析机器人工程学的关键概念,并探讨技术实现的路径。 jvzquC41dnuh0lxfp0tfv8|gkzooa=7798>168ftvkimg8igvcomu86722;36B<
14.2021届计算机科学方向毕业设计(论文)阶段性汇报下一阶段将重点关注和其他传统主流算法的比较实验,以及包括现实路口场景在内的多路口交通信号灯控制拓展研究。 徐清瑶 3D多人体姿态耦合估计算法研究 目前已经基本完成算法的实现。为了更好地学习多人体之间的交互关系和作用强度,本课题实现了一种新的交互图卷积操作,该操作能捕捉人与人之间可能存在交互关系的关jvzquC41|jozwjs0ulzv0niw0et0j}rn1|nj{~fp1ctoq~segokovh{kgy4qjyDkf?9:6<
15.工业机器人加盟工业机器人加盟费多少钱?工业机器人,即面向工业领域的机器人。工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置,具有一定的自动性,可依靠自身的动力能源和控制能力实现各种工业加工制造功能。工业机器人被广泛应用于电子、物流、化工等各个工业领域之中。 工业机器人发展历史 20世纪50年代末,工业机器人最早开始投入使用。约瑟夫jvzquC41yy}/lrfogpmggr3eqo5yo8653:99
16.中信建投:“AI+机器人”2025年投资机遇展望机器人新浪财经免示教智能焊接机器人融合智能感知、智能规划、智能控制等技术,构成以知识和 推理为核心的智能焊接系统,通过与智能技术、工艺数字化技术等先进技术融合,实现了面向不同作业场景、作业任务、作业工艺,与钢构行业焊接需求高度契合。 柏楚智能焊接解决方案:柏楚已形成集合离线编程软件、智能焊缝跟踪系统、智能焊接控制系统、jvzq<84hkpgoen3ukpg/exr0ep5xo8724632466;1fud/rse|z€zc97:56650|mvon
17.ST工智2023年年度董事会经营评述根据中国证监会《2021年3季度上市公司行业分类结果》,公司所属的行业为专用设备制造业(C35),具体细分领域则为工业机器人行业。工业机器人产业链分为上游工业机器人关键结构部件、中游工业机器人本体制造以及下游的系统集成、销售及售后服务。工业机器人关键结构部件包括减速器、伺服电机、控制器、传感器等;工业机器人本体制jvzq<84{wctdj~fpi071lzpc0eun0ls142852=821e<69=86;98/uqyon