You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Conception/drake-master/planning/trajectory_optimization/BUILD.bazel

184 lines
4.5 KiB

load(
"@drake//tools/skylark:drake_cc.bzl",
"drake_cc_googletest",
"drake_cc_library",
"drake_cc_package_library",
)
load("//tools/lint:lint.bzl", "add_lint_tests")
package(default_visibility = ["//visibility:public"])
drake_cc_package_library(
name = "trajectory_optimization",
visibility = ["//visibility:public"],
deps = [
":direct_collocation",
":direct_transcription",
":integration_constraint",
":kinematic_trajectory_optimization",
":multiple_shooting",
":sequential_expression_manager",
],
)
drake_cc_library(
name = "sequential_expression_manager",
srcs = ["sequential_expression_manager.cc"],
hdrs = [
"sequential_expression_manager.h",
],
deps = [
"//common:essential",
"//common:unused",
"//common/symbolic:expression",
],
)
drake_cc_library(
name = "multiple_shooting",
srcs = ["multiple_shooting.cc"],
hdrs = ["multiple_shooting.h"],
deps = [
":sequential_expression_manager",
"//common:essential",
"//common/trajectories:piecewise_polynomial",
"//solvers:ipopt_solver",
"//solvers:mathematical_program",
"//solvers:solve",
],
)
drake_cc_library(
name = "direct_collocation",
srcs = [
"direct_collocation.cc",
],
hdrs = [
"direct_collocation.h",
],
deps = [
":multiple_shooting",
"//math:autodiff",
"//math:gradient",
"//systems/framework",
],
)
drake_cc_library(
name = "direct_transcription",
srcs = [
"direct_transcription.cc",
],
hdrs = [
"direct_transcription.h",
],
deps = [
":multiple_shooting",
"//common/symbolic:polynomial",
"//common/trajectories:piecewise_polynomial",
"//math:autodiff",
"//math:gradient",
"//systems/analysis:explicit_euler_integrator",
"//systems/analysis:integrator_base",
"//systems/framework",
"//systems/primitives:linear_system",
],
)
drake_cc_library(
name = "kinematic_trajectory_optimization",
srcs = ["kinematic_trajectory_optimization.cc"],
hdrs = ["kinematic_trajectory_optimization.h"],
deps = [
"//common",
"//common/trajectories:bspline_trajectory",
"//math:bspline_basis",
"//math:gradient",
"//math:matrix_util",
"//solvers:mathematical_program",
"//solvers:mathematical_program_result",
],
)
drake_cc_library(
name = "integration_constraint",
srcs = ["integration_constraint.cc"],
hdrs = ["integration_constraint.h"],
deps = [
"//solvers:constraint",
],
)
# === test/ ===
drake_cc_googletest(
name = "multiple_shooting_test",
deps = [
":multiple_shooting",
"//common/test_utilities:eigen_matrix_compare",
"//solvers:osqp_solver",
"//solvers:solve",
],
)
drake_cc_googletest(
name = "direct_collocation_test",
deps = [
":direct_collocation",
"//common/test_utilities:eigen_matrix_compare",
"//common/test_utilities:expect_throws_message",
"//examples/rimless_wheel",
"//multibody/benchmarks/pendulum",
"//solvers:solve",
"//systems/primitives:linear_system",
],
)
drake_cc_googletest(
name = "direct_transcription_test",
data = ["//examples/pendulum:models"],
# This test has two duplicated long cases; run them in parallel.
shard_count = 4,
deps = [
":direct_transcription",
"//common/test_utilities:eigen_matrix_compare",
"//common/test_utilities:expect_throws_message",
"//multibody/parsing",
"//multibody/plant",
"//solvers:snopt_solver",
"//solvers:solve",
"//systems/primitives:symbolic_vector_system",
"//systems/primitives:trajectory_linear_system",
],
)
drake_cc_googletest(
name = "kinematic_trajectory_optimization_test",
deps = [
":kinematic_trajectory_optimization",
"//common/test_utilities:eigen_matrix_compare",
"//solvers:constraint",
"//solvers:solve",
],
)
drake_cc_googletest(
name = "sequential_expression_manager_test",
deps = [
":sequential_expression_manager",
"//common/test_utilities:expect_throws_message",
"@fmt",
],
)
drake_cc_googletest(
name = "integration_constraint_test",
deps = [
":integration_constraint",
"//common/test_utilities:eigen_matrix_compare",
"//math:gradient",
],
)
add_lint_tests()