SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定

摘要

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

1.stm32主控硬件设计

2.stm32主控软件设计

3.底盘通信协议

4.底盘ROS驱动开发

5.底盘PID控制参数整定

6.底盘里程计标



5.底盘PID控制参数整定

我们的miiboo机器人底盘的stm32控制板中已经内置了整定好的PID参数,如果选用我们提供的控制板和电机,一般情况下是不需要整定PID的。

对于想体验一下PID参数整定过程或将我们的miiboo机器人底盘的stm32控制板应用到其他地方的朋友,这里给出了整定PID的整个操作过程和思路,方便大家学习和更深层次的研究。首先,对PID三个参数定性的分析,先有个感性的认识,如图49。

(图49)PID参数定性分析

其次,由于我们的miiboo机器人底盘的stm32控制板中采用的是增量式PID,所以这里对增量式PID参数的特殊性进行一些说明,如图50。

(图50)离散域位置式PID与增量式PID数学表达式

位置型PID的参数整定过程一般是,先整定KP,然后整定KI,最后整定KD;对比位置型PID与增量型PID的数学表达式,可以发现位置型KP和增量型KI一样,位置型KI和增量型KD一样,位置型KD和增量型KP一样,如图51。这样,增量型PID应该先整定KI,然后整定KD,最后整定KP。这一点需要特别注意,弄错顺序的话会发现整定规律完全不适用的。

(图51)增量式PID参数特殊性说明

在机器人上进行具体PID整定操作之前,先对整定原理做一些讲解。下面的表述是针对增量型PID的,即KI为比例参数、KD为积分参数、KP为微分参数。这里使用试凑法对miiboo机器人底盘的增量PID参数进行整定:

第1步:

首先只整定比例部分。比例系数KI由小变大,观察相应的系统响应,直到得到反应快,超调小的响应曲线。系统若无静差或静差已小到允许范围内,并且响应效果良好,那么只须用比例调节器即可。

第2步:

若稳态误差不能满足设计要求,则需加入积分控制。整定时先置KD为较小值,并将经第1步整定得到的KI减小些( 如缩小为原值的0.8倍 ),然后增大KD,并使系统在保持良好动态响应的情况下,消除稳态误差。这种调整可根据响应曲线的状态,反复改变KI及KD,以期得到满意的控制过程。

第3步:

若使用比例-积分调节器消除了稳态误差,但动态过程仍不能满意,则可加入微分环节。在第2步整定的基础上,逐步增大KP,同时相应地改变KI和KD,逐步试凑以获得满意的调节效果。

原理了解后,就要到实际的miiboo机器人上进行整定了,首先需要将底盘的DATA-uart2与DEBUG-uart1串口连接到机器人的主板树莓派3中,并确保被树莓派识别的串口设备号为底盘驱动设置的值,如果串口号不匹配需要先进行匹配,关于这部分内容将在miiboo机器人SLAM导航中做更详细的展开。然后,需要启动底盘控制节点、底盘调试节点、键盘控制节点。

#打开终端,启动底盘控制节点
roslaunch miiboo_bringup minimal.launch 

#再打开一个终端,启动底盘调试节点,按提示输入命令
roslaunch miiboo_bringup pid_set.launch

#再打开一个终端,键盘控制节点
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

#再打开一个终端,用rqt_plot对底盘速度曲线进行绘制,指定曲线数据来源的topic
rosrun rqt_plot rqt_plot

键盘控制节点teleop_twist_keyboard需要通过apt-get命令来安装,rqt_plot是ROS提供的绘图工具,关于这些的具体使用方法将在miiboo机器人SLAM导航中做更详细的展开。

最后,就是通过观察速度曲线,按照试凑法的步骤,在底盘调试节点的终端中输入相应的kp、ki、kd参数,不断重复这个过程直到速度曲线达到一个比较满意的形状。rqt_plot速度曲线的样子如图52所示。

(图52)rqt_plot速度曲线

原文地址:https://www.cnblogs.com/hiram-zhang/p/10404267.html

时间: 2024-10-13 19:54:30

SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定的相关文章

SLAM+语音机器人DIY系列:(四)差分底盘设计——2.stm32主控软件设计

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

SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——3.ros-navigation机器人自主避障导航

摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障.巡航.监控等内容展开.本章内容: 1.在机器人上使用传感器 2.google-cartographer机器人SLAM建图 3.ros-navigation机器人自主避障导航 4.多目标点导航及任务调度 5.机器人巡航与现场监控 3.ros-navigation机器人自主避障导航 前面的学习教程打好

SLAM+语音机器人DIY系列:(七)语音交互与自然语言处理——2.机器人语音交互实现

摘要 这一章将进入机器人语音交互的学习,让机器人能跟人进行语音对话交流.这是一件很酷的事情,本章将涉及到语音识别.语音合成.自然语言处理方面的知识.本章内容: 1.语音交互相关技术 2.机器人语音交互实现 3.自然语言处理云计算引擎 2.机器人语音交互实现 其实要自己做一款语音对话机器人还是很容易的,我们只需要选择好语音识别.语音合成.自然语言处理的技术,就可以在一款树莓派3开发板上实现了.由于语音交互系统的核心技术是云端自然语言处理技术,所以我们可以选择网上免费提供的语音识别.语音合成等现有方

SLAM+语音机器人DIY系列:(八)高阶拓展——1.miiboo机器人安卓手机APP开发

android要与ROS通讯,一种是基于rosbridge,另一种是基于rosjava库. 相关参考例子工程 rosbridge例子: https://github.com/hibernate2011/RosClient rosbridge(rosbridge_suite)是ros官方为开发者提供的一个用于非ros系统和ros系统进行交互通信的功能包.包括话题的订阅,消息的发布,服务的调用,参数的设置和获取,图片信息的传递等等,都是JSON格式的字符串.获取JSON字符串并将命令发送到ros,反

SLAM+语音机器人DIY系列:(二)ROS入门——1.ROS是什么

摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用.本章节主要内容: 1.ROS是什么 2.ROS系统整体架构 3.在ubuntu16.04中安装ROS kinetic 4.如何编写ROS的第一个程序hello_world 5.编写简单的消息发布器和订阅器 6.编写简单的s

SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用

摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用.本章节主要内容: 1.ROS是什么 2.ROS系统整体架构 3.在ubuntu16.04中安装ROS kinetic 4.如何编写ROS的第一个程序hello_world 5.编写简单的消息发布器和订阅器 6.编写简单的s

SLAM+语音机器人DIY系列:(二)ROS入门——4.如何编写ROS的第一个程序hello_world

摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用.本章节主要内容: 1.ROS是什么 2.ROS系统整体架构 3.在ubuntu16.04中安装ROS kinetic 4.如何编写ROS的第一个程序hello_world 5.编写简单的消息发布器和订阅器 6.编写简单的s

【iOS与EV3混合机器人编程系列之一】iOS要干嘛?EV3可以更酷!

乐高Mindstorm EV3智能机器人(以下简称EV3)自从在2013年的CES(Consumer Electronics Show美国消费电子展)上展出之后,就吸引了全球广大机器人爱好者的眼球!EV3相比其上一代机器人NXT最大的提升就在于其硬件上.除了更强大的ARM处理器,并加载了Linux操作系统之外,EV3还配备了蓝牙,支持外接USB,外接WiFi.因为有了这么多的硬件提升,EV3最酷的特性在于EV3支持iOS设备!!!这使得我们可以使用iOS设备比如iPhone来控制EV3!乐高官方

Exchange Server 2013系列四:小企业邮件系统部署

Exchange Server 2013 SP1 系列四:小企业部署邮件服务器 杜飞 Exchange 服务器功能强大,不再只是一个邮件系统,还是一个复杂的消息传递平台,它通过相关组件协同工作以提供一个全面的解决方案,包括邮件传递.邮件访问.语音邮件.传真.联系人.日历等.今天咱们就看一下如何在小规模企业中部署Exchange Server2013 Sp1.一般小规模企业预算有限,本着经济实用的方针,会考虑多角色并存的部署方式,基本拓扑如下图所示: 硬件要求: 处理器:支持 Intel 64 位