Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
c462dbb2
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,发现更多精彩内容 >>
提交
c462dbb2
编写于
10月 10, 2017
作者:
Z
Zhang Liangliang
提交者:
Yifei Jiang
10月 10, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Planning: added 2d boundary test for spline_2d_constraint.
上级
42da2e98
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
126 addition
and
0 deletion
+126
-0
modules/planning/math/smoothing_spline/BUILD
modules/planning/math/smoothing_spline/BUILD
+12
-0
modules/planning/math/smoothing_spline/spline_2d_constraint_test.cc
...anning/math/smoothing_spline/spline_2d_constraint_test.cc
+114
-0
未找到文件。
modules/planning/math/smoothing_spline/BUILD
浏览文件 @
c462dbb2
...
...
@@ -320,4 +320,16 @@ cc_test(
],
)
cc_test
(
name
=
"spline_2d_constraint_test"
,
size
=
"small"
,
srcs
=
[
"spline_2d_constraint_test.cc"
,
],
deps
=
[
":spline_2d_constraint"
,
"@gtest//:main"
,
],
)
cpplint
()
modules/planning/math/smoothing_spline/spline_2d_constraint_test.cc
0 → 100644
浏览文件 @
c462dbb2
/******************************************************************************
* Copyright 2017 The Apollo Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*****************************************************************************/
/**
* @file
**/
#include "modules/planning/math/smoothing_spline/spline_2d_constraint.h"
#include "glog/logging.h"
#include "gtest/gtest.h"
namespace
apollo
{
namespace
planning
{
using
apollo
::
common
::
math
::
Vec2d
;
TEST
(
Spline2dConstraint
,
add_boundary_01
)
{
std
::
vector
<
double
>
x_knots
=
{
0.0
,
1.0
};
int32_t
spline_order
=
4
;
Spline2dConstraint
constraint
(
x_knots
,
spline_order
);
std
::
vector
<
double
>
t_coord
=
{
0.0
};
std
::
vector
<
double
>
angle
=
{
0.0
};
std
::
vector
<
Vec2d
>
ref_point
;
ref_point
.
emplace_back
(
Vec2d
(
0.0
,
0.0
));
std
::
vector
<
double
>
longitidinal_bound
=
{
1.0
};
std
::
vector
<
double
>
lateral_bound
=
{
2.0
};
constraint
.
Add2dBoundary
(
t_coord
,
angle
,
ref_point
,
longitidinal_bound
,
lateral_bound
);
const
auto
mat
=
constraint
.
inequality_constraint
().
constraint_matrix
();
const
auto
boundary
=
constraint
.
inequality_constraint
().
constraint_boundary
();
// clang-format off
Eigen
::
MatrixXd
ref_mat
=
Eigen
::
MatrixXd
::
Zero
(
4
,
8
);
ref_mat
<<
-
0
,
-
0
,
-
0
,
-
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
-
1
,
-
0
,
-
0
,
-
0
,
1
,
0
,
0
,
0
,
6.12323e-17
,
0
,
0
,
0
,
-
1
,
-
0
,
-
0
,
-
0
,
-
6.12323e-17
,
-
0
,
-
0
,
-
0
;
// clang-format on
for
(
int
i
=
0
;
i
<
mat
.
rows
();
++
i
)
{
for
(
int
j
=
0
;
j
<
mat
.
cols
();
++
j
)
{
EXPECT_NEAR
(
mat
(
i
,
j
),
ref_mat
(
i
,
j
),
1e-6
);
}
}
Eigen
::
MatrixXd
ref_boundary
=
Eigen
::
MatrixXd
::
Zero
(
4
,
1
);
ref_boundary
<<
-
1.0
,
-
1.0
,
-
2.0
,
-
2.0
;
for
(
int
i
=
0
;
i
<
ref_boundary
.
rows
();
++
i
)
{
EXPECT_NEAR
(
boundary
(
i
,
0
),
ref_boundary
(
i
,
0
),
1e-5
);
}
}
// test add boundary with non-zero angle
TEST
(
Spline2dConstraint
,
add_boundary_02
)
{
std
::
vector
<
double
>
x_knots
=
{
0.0
,
1.0
};
int32_t
spline_order
=
4
;
Spline2dConstraint
constraint
(
x_knots
,
spline_order
);
std
::
vector
<
double
>
t_coord
=
{
0.0
};
std
::
vector
<
double
>
angle
=
{
0.2
};
std
::
vector
<
Vec2d
>
ref_point
;
ref_point
.
emplace_back
(
Vec2d
(
0.0
,
0.0
));
std
::
vector
<
double
>
longitidinal_bound
=
{
1.0
};
std
::
vector
<
double
>
lateral_bound
=
{
2.0
};
constraint
.
Add2dBoundary
(
t_coord
,
angle
,
ref_point
,
longitidinal_bound
,
lateral_bound
);
const
auto
mat
=
constraint
.
inequality_constraint
().
constraint_matrix
();
const
auto
boundary
=
constraint
.
inequality_constraint
().
constraint_boundary
();
// clang-format off
Eigen
::
MatrixXd
ref_mat
=
Eigen
::
MatrixXd
::
Zero
(
4
,
8
);
ref_mat
<<
-
0.198669
,
-
0
,
-
0
,
-
0
,
0.980067
,
0
,
0
,
0
,
0.198669
,
0
,
0
,
0
,
-
0.980067
,
-
0
,
-
0
,
-
0
,
0.980067
,
0
,
0
,
0
,
0.198669
,
0
,
0
,
0
,
-
0.980067
,
-
0
,
-
0
,
-
0
,
-
0.198669
,
-
0
,
-
0
,
-
0
;
// clang-format on
for
(
int
i
=
0
;
i
<
mat
.
rows
();
++
i
)
{
for
(
int
j
=
0
;
j
<
mat
.
cols
();
++
j
)
{
EXPECT_NEAR
(
mat
(
i
,
j
),
ref_mat
(
i
,
j
),
1e-6
);
}
}
Eigen
::
MatrixXd
ref_boundary
=
Eigen
::
MatrixXd
::
Zero
(
4
,
1
);
ref_boundary
<<
-
1.0
,
-
1.0
,
-
2.0
,
-
2.0
;
for
(
int
i
=
0
;
i
<
ref_boundary
.
rows
();
++
i
)
{
EXPECT_NEAR
(
boundary
(
i
,
0
),
ref_boundary
(
i
,
0
),
1e-5
);
}
}
}
// namespace planning
}
// namespace apollo
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录