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

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

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
is_input_free.m 1.67 KB
一键复制 编辑 原始数据 按行查看 历史
function [ ok ] = is_input_free( input, input_limits, time_range)
% IS_INPUT_FREE Summary of this function goes here
% Detailed explanation goes here
ok = true;
resolution = 50;
if isa(input,'sym')
dt = time_range(2)-time_range(1);
r = time_range(1):dt/resolution:time_range(2);
s = eval(subs(input,r));
for ii=1:size(input_limits, 1)
if sum(s(ii,:)<input_limits(ii, 1)) > 1 || sum(s(ii,:)>input_limits(ii, 2)) > 1
%if ~isAlways(state(ii) >= state_limits(ii, 1)) || ~isAlways(state(ii) <= state_limits(ii, 2))
ok = false;
return;
end
end
elseif isa(input, 'function_handle')
dt = time_range(2)-time_range(1);
r = time_range(1):dt/resolution:time_range(2);
for jj=1:length(r)
s = input(r(jj));
for ii=1:size(input_limits, 1)
if s(ii) < input_limits(ii, 1) || s(ii) > input_limits(ii, 2)
ok = false;
return;
end
end
end
% elseif size(input, 2) > 1 % 当input是不同时刻输入量组成的矩阵(每列是一个时刻的input)时,执行以下程序
%
% dt = time_range(2)-time_range(1);
% r = time_range(1):dt/resolution:time_range(2);
%
% for jj=1:length(r)
% s = input(:, floor(r(jj) / h) + 1);
% for ii=1:size(input_limits, 1)
% if s(ii) < input_limits(ii, 1) || s(ii) > input_limits(ii, 2)
% ok = false;
% return;
% end
% end
% end
else
for ii=1:size(input_limits, 1)
if input(ii) < input_limits(ii, 1) || input(ii) > input_limits(ii, 2)
ok = false;
return;
end
end
end
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