OriginBot
ROS探索总结
ROS2探索总结
ROS入门教程
ROS
智能车竞赛
建图导航
运动控制
自动驾驶
机器视觉
机器学习
建模仿真
机器人学
ROS2入门教程
硬件电路
创客DIY教程
智能机器人创意大赛
ROS史话36篇
学习笔记
ROS2
云实践平台
技术前沿
行业资讯
古月居社区
TogetheROS™·Bot
机械臂控制
目标检测
STM32
Linux
通过在分析控制问题的时候,第一步就是需要对被控对象进行数学模型的建立,这里我们不强调模型的复杂性,因为大多数都在低速情况行驶,所以可以只考虑
运动学模型
,如果您需要参加XXX智能车比赛,这类竞速类的项目,就必须考虑
动力学模型
,且需要通过大量的试验对模型进行参数估计和辨识。本次只谈论简易的运动学模型,并且进行Simulink环境的模型搭建,最后通过一个仿真环境来验证模型的可用性!
2.需要的软件与硬件
1.电脑一台
2.装有Matlab/Simulink的软件
本次只在仿真环境中建模,不需要小车的硬件和控制器硬件。
3. Car-like小车建模与仿真
3.1 模型推导
先给大家一个直观的印象,如在我的上一篇博客中的小车就属于Car-like 小车。您可以跳回上一篇文章进行查看小车图片。
那么对于小车研究运动学模型,是需要对其简化的,可以简化成如下图所示的模型。如果您不想看数学推导,可以直接看最后的推导结果。
当然您可以发现我们需要的距离
x
是在小车坐标系下的,而预瞄距离是在大地坐标系下的,所以在求出预瞄点坐标的时候,您需要将预瞄点坐标转换到小车的坐标系中,而坐标系按如下方法进行转换的:
(1)首先将预瞄点坐标平移到以小车坐标为原点的坐标系中。
(2)将平移后的坐标系旋转小车的方位角
θ
,得到最终的小车坐标系。
4.4 仿真环境搭建
参考轨迹按照上个模型的仿真环境不变,计算预瞄点距离的算法子系统不变,我们需要改变的是控制器子系统和车辆模型子系统。
这是差速小车,当然您可以将左轮速度和右轮速度输出看一下。总体来说弄懂原理十分简单。参数的具体值就不对比了。如果您有兴趣可以从头自己搭建一个您自己期望的参考轨迹,根据已经设计好的控制器进行仿真看一下效果。将x和y坐标接入
xyGraph
模块一样可以看到实际轨迹。
本次进行了两种常见的小车模型推导,建模与仿真,其中Tank-like小车您也可以沿用成履带式的小车,在低速有约束的情况下都是模型都是通用的。当您从某宝等电商平台购买回一台小车,我建议您从小车的构造本质进行入手,才能最其进行更好的控制,控制首先需要对被控对象进行深入的了解,无论是正向原则和数据驱动的方式建模,都需要对模型进行搭建,才能展开后续控制器的设计。
如果您使用的是Matlab2019b,那您可以在机器人工具箱中找到我今天做的两种小车模型和差速小车纯跟踪控制器,区别在于工具箱中的模块是基于面向对象编程的方法,没有用Simulink模块搭建,底层代码是不可见的。您可以验证下本次教程的模型搭建是否和官方的模型有出入。