forked from pz4kybsvg/Conception
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.
184 lines
4.5 KiB
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()
|