Car-Like小车移动机器人控制实验(Car-Like)+matlab代码

Car-Like小车移动机器人控制实验Car-Like

实验目的:把移动机器人运动看成单纯控制问题,提升学生的移动机器人基础理论水平和专业技能。在构建Car-Like小车运动曲线规划、运动学、动力学、控制器模型的基础上,完成Car-Like小车跟踪曲线仿真

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图1

Car-Like小车,由直流电机通过减速齿轮带动后轮旋 转驱动小车以速度V前进;由舵机驱动前轮转向,转向角为𝜙

实验要求

在理解基本原理基础上,使用Matlab和Simulink,编制各功能模块,实现移动机器人运动控制仿真,包括路径曲线规划、运动学模型、动力学模型、控制算法设计

平面曲线规划:N控制点的B样条曲线

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图2

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图3

规划一条由起点到终点,合乎要求光滑曲线。给定一组控制点而得到一条曲线,曲线大致形状由这些 点予以控制。一般用得多是三次B样条曲线

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图4

小车移库问题:规划一条由起点出发 到达终点的光滑曲线

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图5   Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图6

控制点的B样条曲线

平面曲线规划,机器人位置可以用其二维组坐标(x,y)的参数方程描述。

给定四个控制点[C1,C2,C3,C4],则样条曲线为P(s),参数s满足0≤s≤1,可以看成是归一化路程。

(1)四个控制点Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图7

四个样条函数f1 (s), f2 (s), f3 (s), f4 (s)

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图8

给定四个控制点[C1,C2,C3,C4],则样条曲线为P(s),参数s满足0≤s≤1,可以看成是归一化的路程。

P(s) =f1(s)C1 +f2(s)C2 +f3(s)C3 +f4(s)C4

Matlab程序文件:demomooc1.m

(2)五个控制点的B样条曲线

如果给定五个控制点[C1,C2,C3,C4,C5],则决定了两条样条曲线为P1(s),P2(s)。

P1(s)=f1 (s)C1 +f2 (s)C2 +f3 (s)C3 +f4 (s)C4 0≤s≤1)

P2(s) =f1 (s)C2 +f2 (s )C3 +f3 (s)C4 +f4 (s)C5 (0≤s≤1)

控制点:Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图9

程序片段:

P1s=C(:,1)*f1s+C(:,2)*f2s+C(:,3)*f3s+C(:,4)*f4s;

P2s=C(:,2)*f1s+C(:,3)*f2s+C(:,4)*f3s+C(:,5)*f4s;

%绘制控制点及B样条曲线

figure(1)

plot(C(1,:),C(2,:),'r*',P1s(1,:),P1s(2,:),'b',P2s(1,:),P2s(2,:),'c');

legend('控制点','第一段','第二段')

(3)N控制点的B样条曲线

如果给定N 控制点[C1,C2,C3,…,CN],则决定了(N-3)条样条曲线为P1(s),P2(s),…,P(N-3)(s)

P1(s)=f1 (s)C1 +f2 (s)C2 +f3 (s)C3 +f4 (s)C4

P2(s) =f1 (s)C2 +f2 (s )C3 +f3 (s)C4 +f4 (s)C5

PN -3 (s) =f1 (s)CN -3+f2 (s)CN -2 +f3 (s)CN -1+ f4 (s)CN

Matlab程序文件:demomooc3.m


(4)过起点和终点的B样条曲线


过起点的B样条曲线通过增加额外控制点来保证P(s)过起点C1

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图10   Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图11

过终点的B样条曲线通过增加额外控制点来保证P(s)过终点CN

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图12   Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图13

V1VN表示小车过C1CN速度方向的单位向量L为合适正常数,可以取为小车车长一半。

原来的控制点:Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图14

增广后的控制点:Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图15

Matlab程序文件:demomooc4.m


5轨迹曲线的曲率

曲线曲率K是曲线弯曲程度一种度量,曲率K越大曲线 越弯曲,小车跟踪更为困难可以用曲线曲率K评价轨迹曲线的好坏

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图16

fmax前轮的最大转向角轨迹曲率越大,表示小车轨迹越弯曲,跟踪更为困难

实验:demoexp7.m改变控制点减小曲线曲率,鼠标左键改变控制点,鼠标右键退出得到新控制点P,得到合理的曲线规划。


二、Car-Like小车运动学仿真

1Car-Like小车运动学模型

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图17

a为重心到前轮中心距离,b为重心到后轮中心距离,L为前轮中心与后轮中心的距离,显然L=a+b设小车重心坐标为(x,y),则后轮中心坐标为(x1,y1),前轮中心坐标为(x2,y2)。

后轮位置、速度关系:Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图18  Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图19

轮子运动特性,后轮没有侧滑

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图20

推理出重心运动约束公式Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图211

前轮位置、速度关系:Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图22  Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图23

轮子运动特性,前轮没有侧滑

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图24

推理出重心运动约束公式Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图252

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图26

定义小车中轴线为u轴,其法向为w轴。则小车 质心法向速度为vw,小车质心轴向速度为vu则X、Y方向速度为

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图27 3

3)代入(1)得:Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图28

3代入(2)得:Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图29

小车质心运动学模型为:

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图30

用后轮中心(x1,y1)表示小车位置,运动学方程更简单

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图31

后轮中心表示的小车运动学模型为:(x,y)为表示小车后轮中心坐标,v 前面的轴向速度vu

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图32

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图33

2根据运动学模型,编制小车运动学Simulink模块

输入:vΦ

输出:xyƟ

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图34

运动学Simulink模块实现:

Car-Like小车移动机器人控制实验(Car-Like)+matlab代码的图35


需要技术服务联系qq2386317960

程序下载见付费内容

以下内容为付费内容,请购买后观看

   1人购买

程序源文件

App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP