diff --git a/pyproject.toml b/pyproject.toml
index 878a36dbe..3687535f5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -116,7 +116,7 @@ packages = [
[tool.ruff]
line-length = 110
target-version = "py310"
-exclude = ["tests/artifacts/**/*.safetensors", "*_pb2.py", "*_pb2_grpc.py"]
+exclude = ["tests/artifacts/**/*.safetensors", "*_pb2.py", "*_pb2_grpc.py", "*.part", "*.stl"]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "I", "N", "B", "C4", "SIM"]
@@ -148,6 +148,12 @@ default.extend-ignore-identifiers-re = [
"ein",
]
+[tool.typos.files]
+extend-exclude = [
+ "*.stl",
+ "*.part",
+]
+
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
diff --git a/src/lerobot/robots/so101_follower_torque/so101_follower_t.py b/src/lerobot/robots/so101_follower_torque/so101_follower_t.py
index f2b722c6a..a908033ad 100644
--- a/src/lerobot/robots/so101_follower_torque/so101_follower_t.py
+++ b/src/lerobot/robots/so101_follower_torque/so101_follower_t.py
@@ -121,9 +121,7 @@ class SO101FollowerT(Robot):
)
self.cameras = make_cameras_from_configs(config.cameras)
- self.pin_robot = pin.RobotWrapper.BuildFromURDF(
- "src/lerobot/SO101/so101_new_calib.urdf", "src/lerobot/SO101"
- )
+ self.pin_robot = pin.RobotWrapper.BuildFromURDF("urdf/so101_new_calib.urdf", "urdf")
flip = {
"shoulder_pan": True,
@@ -161,7 +159,6 @@ class SO101FollowerT(Robot):
for motor in self.bus.motors:
d[f"{motor}.pos"] = float
d[f"{motor}.vel"] = float
- # d[f"{motor}.acc"] = float
d[f"{motor}.effort"] = float
return d
diff --git a/urdf/assets/base_motor_holder_so101_v1.part b/urdf/assets/base_motor_holder_so101_v1.part
new file mode 100644
index 000000000..6d3ac5004
--- /dev/null
+++ b/urdf/assets/base_motor_holder_so101_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "84d8ae1881704ebae1ffb70a",
+ "documentMicroversion": "0eea3500852bdb2f58b1cb79",
+ "documentVersion": "a5c3b0dfaa52ddd6829011cd",
+ "elementId": "22efbe4e0bef24fcd20f96e5",
+ "fullConfiguration": "default",
+ "id": "MCOhripg0ry51VlsC",
+ "isStandardContent": false,
+ "name": "Base_motor_holder_SO101 v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/base_motor_holder_so101_v1.stl b/urdf/assets/base_motor_holder_so101_v1.stl
new file mode 100644
index 000000000..ac9c38076
--- /dev/null
+++ b/urdf/assets/base_motor_holder_so101_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8cd2f241037ea377af1191fffe0dd9d9006beea6dcc48543660ed41647072424
+size 1877084
diff --git a/urdf/assets/base_so101_v2.part b/urdf/assets/base_so101_v2.part
new file mode 100644
index 000000000..f41563fa8
--- /dev/null
+++ b/urdf/assets/base_so101_v2.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "bf61a6bc85b1d1a8bf9ea51b",
+ "documentMicroversion": "20484d37162a32a8a41a37f2",
+ "documentVersion": "25801b070e5b360715de8a30",
+ "elementId": "312f32f0073fa6e8e36fba7a",
+ "fullConfiguration": "default",
+ "id": "MY69cJlqvSzIiODdH",
+ "isStandardContent": false,
+ "name": "Base_SO101 v2 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/base_so101_v2.stl b/urdf/assets/base_so101_v2.stl
new file mode 100644
index 000000000..503d30be0
--- /dev/null
+++ b/urdf/assets/base_so101_v2.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb12b7026575e1f70ccc7240051f9d943553bf34e5128537de6cd86fae33924d
+size 471584
diff --git a/urdf/assets/motor_holder_so101_base_v1.part b/urdf/assets/motor_holder_so101_base_v1.part
new file mode 100644
index 000000000..bf899dd0c
--- /dev/null
+++ b/urdf/assets/motor_holder_so101_base_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "652d5731024e57367badfda6",
+ "documentMicroversion": "56a8b8013480c176fd87df8d",
+ "documentVersion": "984ac31c92cac3664c8effb3",
+ "elementId": "6fb7b7f9315511b548d670ff",
+ "fullConfiguration": "default",
+ "id": "Mf4ZebMr4BkShucFj",
+ "isStandardContent": false,
+ "name": "Motor_holder_SO101_Base v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/motor_holder_so101_base_v1.stl b/urdf/assets/motor_holder_so101_base_v1.stl
new file mode 100644
index 000000000..f8e3d75c0
--- /dev/null
+++ b/urdf/assets/motor_holder_so101_base_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31242ae6fb59d8b15c66617b88ad8e9bded62d57c35d11c0c43a70d2f4caa95b
+size 1129384
diff --git a/urdf/assets/motor_holder_so101_wrist_v1.part b/urdf/assets/motor_holder_so101_wrist_v1.part
new file mode 100644
index 000000000..dd57728f5
--- /dev/null
+++ b/urdf/assets/motor_holder_so101_wrist_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "4bd66da73cacb4d946d43e44",
+ "documentMicroversion": "2bf56247e58b70e90806e318",
+ "documentVersion": "df78bb7089f1de7d5588d238",
+ "elementId": "d7dfe76e402c21bbd8124e43",
+ "fullConfiguration": "default",
+ "id": "MN9BZ1p69dQQtKTjq",
+ "isStandardContent": false,
+ "name": "Motor_holder_SO101_Wrist v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/motor_holder_so101_wrist_v1.stl b/urdf/assets/motor_holder_so101_wrist_v1.stl
new file mode 100644
index 000000000..e55b71946
--- /dev/null
+++ b/urdf/assets/motor_holder_so101_wrist_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:887f92e6013cb64ea3a1ab8675e92da1e0beacfd5e001f972523540545e08011
+size 1052184
diff --git a/urdf/assets/moving_jaw_so101_v1.part b/urdf/assets/moving_jaw_so101_v1.part
new file mode 100644
index 000000000..959a7eb0c
--- /dev/null
+++ b/urdf/assets/moving_jaw_so101_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "46218c02ef80d36172edbb35",
+ "documentMicroversion": "68b7d387e2500c451586ae59",
+ "documentVersion": "79c101d1a0207b77362b561a",
+ "elementId": "d4b1411d5d7333298f6e2458",
+ "fullConfiguration": "default",
+ "id": "MrHPLr9hZkrXwcSA4",
+ "isStandardContent": false,
+ "name": "Moving_Jaw_SO101 v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/moving_jaw_so101_v1.stl b/urdf/assets/moving_jaw_so101_v1.stl
new file mode 100644
index 000000000..eb17d253d
--- /dev/null
+++ b/urdf/assets/moving_jaw_so101_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:785a9dded2f474bc1d869e0d3dae398a3dcd9c0c345640040472210d2861fa9d
+size 1413584
diff --git a/urdf/assets/rotation_pitch_so101_v1.part b/urdf/assets/rotation_pitch_so101_v1.part
new file mode 100644
index 000000000..6870d9d55
--- /dev/null
+++ b/urdf/assets/rotation_pitch_so101_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "14078aa6723c502d07d6902e",
+ "documentMicroversion": "c0fca717407275159bcc6ed7",
+ "documentVersion": "3d9a887ff68fa477d98162b8",
+ "elementId": "43d24b3857ff686b275578bf",
+ "fullConfiguration": "default",
+ "id": "MrQ6Kmk9QDZlwbp95",
+ "isStandardContent": false,
+ "name": "Rotation_Pitch_SO101 v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/rotation_pitch_so101_v1.stl b/urdf/assets/rotation_pitch_so101_v1.stl
new file mode 100644
index 000000000..b536cb410
--- /dev/null
+++ b/urdf/assets/rotation_pitch_so101_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9be900cc2a2bf718102841ef82ef8d2873842427648092c8ed2ca1e2ef4ffa34
+size 883684
diff --git a/urdf/assets/sts3215_03a_no_horn_v1.part b/urdf/assets/sts3215_03a_no_horn_v1.part
new file mode 100644
index 000000000..0b420437d
--- /dev/null
+++ b/urdf/assets/sts3215_03a_no_horn_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "56e5f3702dad85e17841d2e2",
+ "documentMicroversion": "7958a6acbc8e0d0a0a611746",
+ "documentVersion": "29a4c51b8bf277a22743a333",
+ "elementId": "8c14fb13a6557ec89ff5d227",
+ "fullConfiguration": "default",
+ "id": "MOcaIFg8XgL+Ybg9z",
+ "isStandardContent": false,
+ "name": "STS3215_03a_no_horn v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/sts3215_03a_no_horn_v1.stl b/urdf/assets/sts3215_03a_no_horn_v1.stl
new file mode 100644
index 000000000..18e933567
--- /dev/null
+++ b/urdf/assets/sts3215_03a_no_horn_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:75ef3781b752e4065891aea855e34dc161a38a549549cd0970cedd07eae6f887
+size 865884
diff --git a/urdf/assets/sts3215_03a_v1.part b/urdf/assets/sts3215_03a_v1.part
new file mode 100644
index 000000000..e57e2dd6c
--- /dev/null
+++ b/urdf/assets/sts3215_03a_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "d2941bdba816affebdc6d6f0",
+ "documentMicroversion": "5904ef3cea04a0d0bc88b698",
+ "documentVersion": "dd4f7470101215836a4ae8c9",
+ "elementId": "e670b72d49b06f88fad5dbd8",
+ "fullConfiguration": "default",
+ "id": "M5vQNpe0onRFueych",
+ "isStandardContent": false,
+ "name": "STS3215_03a v1 <5>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/sts3215_03a_v1.stl b/urdf/assets/sts3215_03a_v1.stl
new file mode 100644
index 000000000..a14c57b90
--- /dev/null
+++ b/urdf/assets/sts3215_03a_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a37c871fb502483ab96c256baf457d36f2e97afc9205313d9c5ab275ef941cd0
+size 954084
diff --git a/urdf/assets/under_arm_so101_v1.part b/urdf/assets/under_arm_so101_v1.part
new file mode 100644
index 000000000..bd97af90b
--- /dev/null
+++ b/urdf/assets/under_arm_so101_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "9f5d6db47eb112442b9f130f",
+ "documentMicroversion": "e99cf45162e34789bd99512b",
+ "documentVersion": "817ebf29c5663d412edc0753",
+ "elementId": "2813aaffe3c8a342616d3527",
+ "fullConfiguration": "default",
+ "id": "M9yAEiX02J3c4HqXa",
+ "isStandardContent": false,
+ "name": "Under_arm_SO101 v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/under_arm_so101_v1.stl b/urdf/assets/under_arm_so101_v1.stl
new file mode 100644
index 000000000..47b611ef9
--- /dev/null
+++ b/urdf/assets/under_arm_so101_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d01d1f2de365651dcad9d6669e94ff87ff7652b5bb2d10752a66a456a86dbc71
+size 1975884
diff --git a/urdf/assets/upper_arm_so101_v1.part b/urdf/assets/upper_arm_so101_v1.part
new file mode 100644
index 000000000..0ef64e9a2
--- /dev/null
+++ b/urdf/assets/upper_arm_so101_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "57f3eae43434311c28ac752b",
+ "documentMicroversion": "33eeab136e831427f0f0ca74",
+ "documentVersion": "435d47b71ef26075bf82672c",
+ "elementId": "a8e0c02dc43f7ccb373c52e4",
+ "fullConfiguration": "default",
+ "id": "Ml3rwO4kV53jDRgcs",
+ "isStandardContent": false,
+ "name": "Upper_arm_SO101 v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/upper_arm_so101_v1.stl b/urdf/assets/upper_arm_so101_v1.stl
new file mode 100644
index 000000000..8832740f9
--- /dev/null
+++ b/urdf/assets/upper_arm_so101_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:475056e03a17e71919b82fd88ab9a0b898ab50164f2a7943652a6b2941bb2d4f
+size 1303484
diff --git a/urdf/assets/waveshare_mounting_plate_so101_v2.part b/urdf/assets/waveshare_mounting_plate_so101_v2.part
new file mode 100644
index 000000000..3189de573
--- /dev/null
+++ b/urdf/assets/waveshare_mounting_plate_so101_v2.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "066f8b5064455ec46759cd8c",
+ "documentMicroversion": "04c5790374bf3edfbbb7e818",
+ "documentVersion": "408440a116f7d8700bbb11c2",
+ "elementId": "dc35e56269e36de39738b34d",
+ "fullConfiguration": "default",
+ "id": "MjhXxhyF1+iAgCtUh",
+ "isStandardContent": false,
+ "name": "WaveShare_Mounting_Plate_SO101 v2 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/waveshare_mounting_plate_so101_v2.stl b/urdf/assets/waveshare_mounting_plate_so101_v2.stl
new file mode 100644
index 000000000..e0d90d5b6
--- /dev/null
+++ b/urdf/assets/waveshare_mounting_plate_so101_v2.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e197e24005a07d01bbc06a8c42311664eaeda415bf859f68fa247884d0f1a6e9
+size 62784
diff --git a/urdf/assets/wrist_roll_follower_so101_v1.part b/urdf/assets/wrist_roll_follower_so101_v1.part
new file mode 100644
index 000000000..77c7ef5ee
--- /dev/null
+++ b/urdf/assets/wrist_roll_follower_so101_v1.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "e02f1e1d3fdd766a19a55890",
+ "documentMicroversion": "03f1dfc090db6bbecdb14475",
+ "documentVersion": "8a15327cfbde0344e0951076",
+ "elementId": "2317bd70c68862eeebd64492",
+ "fullConfiguration": "default",
+ "id": "MpI0voU28BOAZ6D9x",
+ "isStandardContent": false,
+ "name": "Wrist_Roll_Follower_SO101 v1 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/wrist_roll_follower_so101_v1.stl b/urdf/assets/wrist_roll_follower_so101_v1.stl
new file mode 100644
index 000000000..9a5fa8fe2
--- /dev/null
+++ b/urdf/assets/wrist_roll_follower_so101_v1.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b17b410a12d64ec39554abc3e8054d8a97384b2dc4a8d95a5ecb2a93670f5f4
+size 1439884
diff --git a/urdf/assets/wrist_roll_pitch_so101_v2.part b/urdf/assets/wrist_roll_pitch_so101_v2.part
new file mode 100644
index 000000000..388f5efa4
--- /dev/null
+++ b/urdf/assets/wrist_roll_pitch_so101_v2.part
@@ -0,0 +1,14 @@
+{
+ "configuration": "default",
+ "documentId": "eb144d215e733b8dbbb50b81",
+ "documentMicroversion": "4fef760722dee3a9b5ff19b1",
+ "documentVersion": "5880c1e9413206cac10772d0",
+ "elementId": "3c22c2c23cb0ce545b9df2ba",
+ "fullConfiguration": "default",
+ "id": "Ma99J59HxnSe2TArb",
+ "isStandardContent": false,
+ "name": "Wrist_Roll_Pitch_SO101 v2 <1>",
+ "partId": "JFD",
+ "suppressed": false,
+ "type": "Part"
+}
diff --git a/urdf/assets/wrist_roll_pitch_so101_v2.stl b/urdf/assets/wrist_roll_pitch_so101_v2.stl
new file mode 100644
index 000000000..2f531712f
--- /dev/null
+++ b/urdf/assets/wrist_roll_pitch_so101_v2.stl
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6c7ec5525b4d8b9e397a30ab4bb0037156a5d5f38a4adf2c7d943d6c56eda5ae
+size 2699784
diff --git a/urdf/so101_new_calib.urdf b/urdf/so101_new_calib.urdf
new file mode 100644
index 000000000..509c65fcc
--- /dev/null
+++ b/urdf/so101_new_calib.urdf
@@ -0,0 +1,453 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
diff --git a/urdf/so101_old_calib.urdf b/urdf/so101_old_calib.urdf
new file mode 100644
index 000000000..c75bb38ea
--- /dev/null
+++ b/urdf/so101_old_calib.urdf
@@ -0,0 +1,435 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+ transmission_interface/SimpleTransmission
+
+ hardware_interface/PositionJointInterface
+
+
+ hardware_interface/PositionJointInterface
+ 1
+
+
+
+