安装iis8 添加网站,网站设计的网站,公司网站制作要多少钱,做资源网站 文件能存储到云盘吗L5 运动学仿真
本节重点#xff1a; 如何理解推导出的运动学模型 回顾#xff1a;机器人运动学模型 正向#xff08;前向#xff09;运动学模型反向运动学模型 基于MatLab运动学仿真 本节重点#xff0c;如何利用matlab对运动学进行仿真
5.1 回顾运动学模型 [ x ˙ y …L5 运动学仿真
本节重点 如何理解推导出的运动学模型 回顾机器人运动学模型 正向前向运动学模型反向运动学模型 基于MatLab运动学仿真 本节重点如何利用matlab对运动学进行仿真
5.1 回顾运动学模型 [ x ˙ y ˙ ψ ˙ ] [ u ⋅ c o s ψ − v ⋅ s i n ψ u ⋅ s i n ψ v ⋅ c o s ψ r ] [ c o s ψ − s i n ψ 0 s i n ψ c o s ψ 0 0 0 1 ] [ u v r ] \left[ \begin{matrix} \dot{x}\\ \dot{y}\\ \dot{\psi} \end{matrix} \right] \left[ \begin{matrix} u\cdot cos\psi - v\cdot sin\psi\\ u\cdot sin\psi v\cdot cos\psi\\ r \end{matrix} \right] \left[ \begin{matrix} cos\psi -sin\psi 0\\ sin\psi cos\psi 0\\ 0 0 1 \end{matrix} \right]\left[ \begin{matrix} u\\ v\\ r \end{matrix} \right] x˙y˙ψ˙ u⋅cosψ−v⋅sinψu⋅sinψv⋅cosψr cosψsinψ0−sinψcosψ0001 uvr
前向运动学模型 η ˙ J ( ψ ) ξ \dot\eta J(\psi)\xi η˙J(ψ)ξ
反向运动学模型 ξ J − 1 ( ψ ) η ˙ \xi J^{-1}(\psi)\dot\eta ξJ−1(ψ)η˙
我们已知上述公式给出初始位置给出 ( u , v , r ) (u, v, r) (u,v,r) , 计算后续时刻的 ( x , y , ψ ) (x, y, \psi) (x,y,ψ)
5.2 运动学模型 MatLab 仿真
以前向运动学模型为例 η ˙ J ( ψ ) ξ \dot\eta J(\psi)\xi η˙J(ψ)ξ 。我们已知初始位置下的 η \eta η , 已知 ξ \xi ξ 计算后续时刻的 η \eta η 。 可以将其转化为常微分方程的求解问题常微分方程求解方法之一为 欧拉法Euler。 本节将利用 欧拉法Euler 对机器人位置信息进行近似计算。首先简要介绍欧拉法
Euler 法 注*这里只介绍显示 Euler 法(未按照视频中进行整理)。 ① 什么是解微分方程
我们给出一个微分方程 y ′ f ( x , y ) y f(x,y) y′f(x,y) 。一般的解法是根据给出的微分方程先获得 y ∫ f ( x , y ) d x a y \int f(x,y) dx a y∫f(x,y)dxa 上式为一般解通解。
若给出初始条件即 y ( x 0 ) y 0 y(x_0) y_0 y(x0)y0, 则可获得微分方程的特殊解特解。
② 欧拉法解微分方程 欧拉法是利用直线近似来求解微分方程。
上图中因 x x x 是时间 t t t 上的函数 x ′ ( t ) x(t) x′(t) 已知。
在图中曲线上对 t t t 及 t 1 t1 t1 时刻进行采样分别为 x i x_i xi 、 x i 1 x_{i1} xi1 t i 1 − t i δ t t_{i1}-t_i \delta_t ti1−tiδt此为步长即取值或采样的间隔是固定的均为 δ t \delta_t δt。
欧拉法的思想是将 t i 、 t i 1 t_i 、t_{i1} ti、ti1 区间的线段看作直线并利用此段的斜率来近似原微分方程中 t i t_i ti处的导数用公式表示为 x ′ ( i ) ≈ x i 1 − x i t i 1 − t i x i 1 − x i δ t 则 x i 1 − x i x ′ ( i ) δ t x i 1 x i x ′ ( i ) δ t x(i) \approx \frac{x_{i1}-x_i}{t_{i1}-t_i} \frac{x_{i1}-x_i}{\delta_t} \\ 则 x_{i1} - x_i x(i)\delta_t\\ x_{i1} x_ix(i)\delta_t x′(i)≈ti1−tixi1−xiδtxi1−xi则xi1−xix′(i)δtxi1xix′(i)δt 上式中 x i 1 x i x ′ ( i ) δ t x_{i1} x_ix(i)\delta_t xi1xix′(i)δt 即为欧拉公式这里要给出初始条件即 x ( t 0 ) x 0 x(t_0) x_0 x(t0)x0 利用迭代可计算 x t 1 x_{t1} xt1 的值。
利用Euler法对运动学模型进行仿真
%% Kinematic simulation of a land-based mobile robot
clear all; clc; close all;%% Simulation parameters
dt 0.1; % Step size 步长
ts 10; % Simulation time 模拟时间
t 0:dt:ts;% Time span 时间从0开始按步长0.1 变化到10%% Initial conditions
x0 0; % x初始位置
y0 0; % y初始位置
psi0 0; %\psi的初始位置eta0 [x0;y0;psi0]; % 对应[x y \psi]eta(:,1) eta0 % 将eta0赋值给eta矩阵的第一列%% Loop starts here
for i 1:length(t)psi eta(3,i); % current orientation in rad%fprintf(psi is %f\n, psi)%Jacobian matrixJ_psi [cos(psi),-sin(psi),0;sin(psi), cos(psi),0;0,0,1];u 0.1; % x-axis velocity W.r.t B framev 0.05; % y-axis velocity W.r.t B framer 0.0;% angular velocity W.r.t B framezeta(:,i)[u;v;r];eta_dot(:,i) J_psi * zeta(:,i);eta(:,i1)eta(:,i)dt*eta_dot(:,i); %Euler method
end%% Plotting functions
figure
plot(t, eta(1,1:i), r-);
set(gca, fontsize,24);
xlabel(t,[s]);
ylabel(x,[m]);下图为 t 0 t 0 t0时机器人位置 为 (0, 0, 0), 初始速度信息为 (0.1, 0.05, 0.1), t 10 t10 t10 内机器人的位置变化。 本节完