-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathMODULE.bazel
More file actions
117 lines (98 loc) · 3.54 KB
/
MODULE.bazel
File metadata and controls
117 lines (98 loc) · 3.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
module(name = "drake_franka_driver")
bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "rules_cc", version = "0.2.9")
bazel_dep(name = "rules_python", version = "1.6.3")
bazel_dep(name = "gflags", version = "2.2.2")
bazel_dep(name = "rules_shell", version = "0.6.1")
bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2", dev_dependency = True)
# Pinocchio is required for libfranka v5 (FR3 robots) dynamics computations.
# Version 2.6.21 provides the rigid body dynamics needed by the modern libfranka API.
bazel_dep(name = "pinocchio", version = "2.6.21.bcr.4")
# LCM (Lightweight Communications and Marshalling) for inter-process communication.
# Using a specific commit from the main branch for latest features.
LCM_COMMIT = "4f9f586e9fda1ab2d5e12427386226519f65b6de"
bazel_dep(name = "lcm")
archive_override(
module_name = "lcm",
sha256 = "d2de73ea17993d3586eb9559b48ac3e35dd68064ad6abbdd3e0d4081e5b90685",
strip_prefix = "lcm-{}".format(LCM_COMMIT.lstrip("v")),
urls = [x.format(LCM_COMMIT) for x in [
"https://github.com/lcm-proj/lcm/archive/{}.tar.gz",
]],
)
bazel_dep(name = "drake")
# Drake version configuration.
DRAKE_COMMIT = "v1.45.0"
DRAKE_CHECKSUM = "fd70210cbbe233b78bb6df2d8f42c7334ea15fca8833865322d788ab4eaf0c16"
archive_override(
module_name = "drake",
sha256 = DRAKE_CHECKSUM,
strip_prefix = "drake-{}".format(DRAKE_COMMIT.lstrip("v")),
urls = [x.format(DRAKE_COMMIT) for x in [
"https://github.com/RobotLocomotion/drake/archive/{}.tar.gz",
]],
)
# Use the host system /usr/bin/python3.
python_repository = use_repo_rule(
"@drake//tools/workspace/python:repository.bzl",
"python_repository",
)
python_repository(
name = "python",
linux_interpreter_path = "/usr/bin/python3",
requirements_flavor = "build",
)
register_toolchains("@python//:all")
# Import Drake's public dependencies (deprecated pycodestyle, buildifier).
drake_dep_repositories = use_extension(
"@drake//tools/workspace:default.bzl",
"drake_dep_repositories",
)
use_repo(
drake_dep_repositories,
"buildifier",
"pycodestyle",
)
# Import Drake's internal dependencies for linting tools.
internal_repositories = use_extension(
"@drake//tools/workspace:default.bzl",
"internal_repositories",
)
use_repo(
internal_repositories,
"cpplint_internal",
"pycodestyle_internal",
"styleguide_internal",
)
# Create aliases for Drake dependencies that libfranka needs to access.
# Drake uses a flag-based system to switch between module and pkgconfig versions.
# We'll use Drake's eigen_repository to get the configured version.
eigen_repository = use_repo_rule(
"@drake//tools/workspace/eigen:repository.bzl",
"eigen_repository",
)
eigen_repository(name = "eigen")
# Import external dependencies for Franka robot control.
# This provides:
# - drake_models: Robot URDF/SDF models for visualization and simulation
# - libfranka_v4 (0.9.0): Control library for FE3 robots with firmware v4.x
# - libfranka_v5 (~0.15.0): Control library for FR3 robots with firmware v5.x
# - libfranka_common_v4/v5: Shared protocol definitions for each version
external_repos = use_extension(
"//tools/workspace:external_repositories.bzl",
"external_repositories",
)
use_repo(
external_repos,
"drake_models",
"libfranka_common_v4",
"libfranka_common_v5",
"libfranka_v4",
"libfranka_v5",
)
# Poco repository (system library from /usr).
poco_repository = use_repo_rule(
"//tools/workspace/poco:repository.bzl",
"poco_repository",
)
poco_repository(name = "poco")