当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 0 Fork 6

梁俊伍/使用kinodynamic RRTStar算法规划轨迹
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
optTraj.m 1.19 KB
一键复制 编辑 原始数据 按行查看 历史
function [tauStar,cStar,u,x] = optTraj(x0,x1,h,B,R)
%OPTTRAJ 此处显示有关此函数的摘要
% 输 出:
% x 最优轨迹,?X3矩阵
% u 控制量,?X3矩阵
% cStar 最优轨迹x的代价,标量
% t 时间,列向量
% 输 入:
% x0初始位置列向量,x1末端位置列向量,h时间步长标量,B是6X3输人矩阵,R是权3X3权重矩阵
% 使用函数tauStarSolve.m、rungeKutta4.m和dmdt.m
% 作 者:鲁 鹏(北京理工大学宇航学院)
% 版 本:1.0
% version 1.0 更新日志:
% x0 = [0 0 0 0 0 0]'; % 初始位置列向量
% x1 = [10 10 10 0 0 0]'; % 末端位置列向量
% h = 0.01; % 时间步长,四阶龙格库塔法等使用
[tauStar, cStar, xBarStar, GStar] = tauStarSolve(x0, x1, h);
dTauStar = GStar\(x1 - xBarStar);
hTauStar = [x1; dTauStar]; % 微分方程的终端状态
% 应为是从tauStar朝0积分,所以步长要是‘-h’
[~, m] = rungeKutta4(@dmdt, tauStar, 0 , hTauStar, -h);
% figure
% plot3(h(:, 1), h(:, 2), h(:, 3))
u = zeros(size(m,1), 3);
K = B / R';
for i = 1 : size(m,1)
u(i, :) = m(i,7:12)*K;
end
% 由于是反向求微分方程,所以要将输出结果上下颠倒
x = flipud(m(:,1:6));
u = flipud(u);
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Matlab
1
https://gitee.com/liang-junwu/kinodynamic-RRTStar-for-landing-on-small-body.git
git@gitee.com:liang-junwu/kinodynamic-RRTStar-for-landing-on-small-body.git
liang-junwu
kinodynamic-RRTStar-for-landing-on-small-body
使用kinodynamic RRTStar算法规划轨迹
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385