Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
6d5d5462
A
apollo
项目概览
Pinoxchio
/
apollo
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apollo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6d5d5462
编写于
9月 11, 2017
作者:
Z
Zhang Liangliang
提交者:
Jiangtao Hu
9月 11, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Planning: added monotonic constraint function implementations.
上级
d4c02398
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
57 addition
and
18 deletion
+57
-18
modules/planning/math/smoothing_spline/piecewise_linear_constraint.cc
...ning/math/smoothing_spline/piecewise_linear_constraint.cc
+49
-0
modules/planning/math/smoothing_spline/piecewise_linear_constraint.h
...nning/math/smoothing_spline/piecewise_linear_constraint.h
+8
-18
未找到文件。
modules/planning/math/smoothing_spline/piecewise_linear_constraint.cc
浏览文件 @
6d5d5462
...
...
@@ -26,9 +26,46 @@
namespace
apollo
{
namespace
planning
{
namespace
{
Eigen
::
MatrixXd
MergeMaxtrices
(
const
std
::
vector
<
Eigen
::
MatrixXd
>
matrices
)
{
int32_t
d
=
0
;
for
(
const
auto
&
mat
:
matrices
)
{
d
+=
mat
.
rows
();
}
int32_t
col
=
matrices
.
front
().
cols
();
Eigen
::
MatrixXd
res
=
Eigen
::
MatrixXd
::
Zero
(
d
,
col
);
int32_t
index
=
0
;
for
(
const
auto
&
mat
:
matrices
)
{
res
.
block
(
index
,
0
,
mat
.
rows
(),
mat
.
cols
())
=
mat
;
index
+=
mat
.
rows
();
}
return
res
;
}
}
PiecewiseLinearConstraint
::
PiecewiseLinearConstraint
(
const
uint32_t
dimension
)
:
dimension_
(
dimension
)
{}
Eigen
::
MatrixXd
PiecewiseLinearConstraint
::
inequality_constraint_matrix
()
const
{
return
MergeMaxtrices
(
inequality_matrices_
);
}
Eigen
::
MatrixXd
PiecewiseLinearConstraint
::
inequality_constraint_boundary
()
const
{
return
MergeMaxtrices
(
inequality_boundaries_
);
}
Eigen
::
MatrixXd
PiecewiseLinearConstraint
::
equality_constraint_matrix
()
const
{
return
MergeMaxtrices
(
equality_matrices_
);
}
Eigen
::
MatrixXd
PiecewiseLinearConstraint
::
equality_constraint_boundary
()
const
{
return
MergeMaxtrices
(
equality_boundaries_
);
}
bool
PiecewiseLinearConstraint
::
AddBoundary
(
const
std
::
vector
<
uint32_t
>&
index_list
,
const
std
::
vector
<
double
>&
lower_bound
,
...
...
@@ -87,6 +124,18 @@ bool PiecewiseLinearConstraint::AddPointThirdDerivativeConstraint(
bool
PiecewiseLinearConstraint
::
AddMonotoneInequalityConstraint
()
{
// TODO(Liangliang): implement this function
Eigen
::
MatrixXd
inequality_matrix
=
Eigen
::
MatrixXd
::
Zero
(
dimension_
-
1
,
dimension_
-
1
);
Eigen
::
MatrixXd
inequality_boundary
=
Eigen
::
MatrixXd
::
Zero
(
dimension_
-
1
,
1
);
for
(
uint32_t
i
=
1
;
i
<
dimension_
;
++
i
)
{
inequality_matrix
(
i
,
i
-
1
)
=
-
1.0
;
inequality_matrix
(
i
,
i
)
=
1.0
;
}
inequality_matrices_
.
push_back
(
inequality_matrix
);
inequality_boundaries_
.
push_back
(
inequality_boundary
);
return
true
;
}
...
...
modules/planning/math/smoothing_spline/piecewise_linear_constraint.h
浏览文件 @
6d5d5462
...
...
@@ -34,20 +34,10 @@ class PiecewiseLinearConstraint {
PiecewiseLinearConstraint
(
const
uint32_t
dimension
);
virtual
~
PiecewiseLinearConstraint
()
=
default
;
Eigen
::
MatrixXd
inequality_constraint_matrix
()
const
{
return
inequality_constraint_matrix_
;
}
Eigen
::
MatrixXd
inequality_constraint_boundary
()
const
{
return
inequality_constraint_boundary_
;
}
Eigen
::
MatrixXd
equality_constraint_matrix
()
const
{
return
equality_constraint_matrix_
;
}
Eigen
::
MatrixXd
equality_constraint_boundary
()
const
{
return
equality_constraint_boundary_
;
}
Eigen
::
MatrixXd
inequality_constraint_matrix
()
const
;
Eigen
::
MatrixXd
inequality_constraint_boundary
()
const
;
Eigen
::
MatrixXd
equality_constraint_matrix
()
const
;
Eigen
::
MatrixXd
equality_constraint_boundary
()
const
;
/**
* @brief: inequality boundary constraints
...
...
@@ -80,11 +70,11 @@ class PiecewiseLinearConstraint {
private:
const
uint32_t
dimension_
;
Eigen
::
MatrixXd
inequality_constraint_matrix
_
;
Eigen
::
MatrixXd
inequality_constraint_boundary
_
;
std
::
vector
<
Eigen
::
MatrixXd
>
inequality_matrices
_
;
std
::
vector
<
Eigen
::
MatrixXd
>
inequality_boundaries
_
;
Eigen
::
MatrixXd
equality_constraint_matrix
_
;
Eigen
::
MatrixXd
equality_constraint_boundary
_
;
std
::
vector
<
Eigen
::
MatrixXd
>
equality_matrices
_
;
std
::
vector
<
Eigen
::
MatrixXd
>
equality_boundaries
_
;
};
}
// namespace planning
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录