From 88ec248dc6b1d9e0954f28f8b1dc72b5e25dab8f Mon Sep 17 00:00:00 2001 From: gospar Date: Thu, 30 Oct 2025 10:13:39 +0100 Subject: [PATCH 1/2] new behavior for placo and collisions --- .../urdf/assets/collision/README.m | 1 + .../body_top_3dprint_collider_back_0.stl | 3 + .../body_top_3dprint_collider_back_1.stl | 3 + .../body_top_3dprint_collider_back_2.stl | 3 + .../body_top_3dprint_collider_back_3.stl | 3 + .../body_top_3dprint_collider_front_0.stl | 3 + .../body_top_3dprint_collider_front_1.stl | 3 + .../body_top_3dprint_collider_front_2.stl | 3 + .../coarse/head_one_3dprint_collider_0.stl | 3 + .../fine/body_top_3dprint_collider_back_0.stl | 3 + .../fine/body_top_3dprint_collider_back_1.stl | 3 + .../fine/body_top_3dprint_collider_back_2.stl | 3 + .../fine/body_top_3dprint_collider_back_3.stl | 3 + .../body_top_3dprint_collider_front_0.stl | 3 + .../body_top_3dprint_collider_front_1.stl | 3 + .../body_top_3dprint_collider_front_2.stl | 3 + .../fine/head_one_3dprint_collider_0.stl | 3 + .../urdf/robot_simple_collision.urdf | 2399 +++++++++++++++++ .../kinematics/placo_kinematics.py | 58 +- 19 files changed, 2470 insertions(+), 36 deletions(-) create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/README.m create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_0.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_1.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_2.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_3.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_0.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_1.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_2.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/head_one_3dprint_collider_0.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_0.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_1.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_2.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_3.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_0.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_1.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_2.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/head_one_3dprint_collider_0.stl create mode 100644 src/reachy_mini/descriptions/reachy_mini/urdf/robot_simple_collision.urdf diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/README.m b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/README.m new file mode 100644 index 00000000..edda0bc7 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/README.m @@ -0,0 +1 @@ +Created with: https://github.com/pollen-robotics/reachy_mini_stl_convexify \ No newline at end of file diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_0.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_0.stl new file mode 100644 index 00000000..b134982c --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_0.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f92539090c8fbef3a292ffbdc6a1019828ad5e33a5b87354ad08032a59d0c35 +size 4884 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_1.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_1.stl new file mode 100644 index 00000000..dc98ea93 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_1.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9186fdc67813c3b7f3fba721cbfbb14d5e6f20bcabe1897d488913b6879bfd78 +size 4784 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_2.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_2.stl new file mode 100644 index 00000000..592ecb1e --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_2.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2db1d2726afd373e145a7b3cb8340983eeff49c07f8e4057e2d4eec7f91c35df +size 4884 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_3.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_3.stl new file mode 100644 index 00000000..2bea29e7 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_back_3.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e7916bfcdccd254c51143774575c7a0924a1a1939fd9a4755ae3b8f2c920bdc +size 4884 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_0.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_0.stl new file mode 100644 index 00000000..728659d3 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_0.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94d9c386d10344ae4fa03baae3ea0ca935c8ab2a5d41352a4b4c59c3ac2fd9e1 +size 4884 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_1.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_1.stl new file mode 100644 index 00000000..d296a17e --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_1.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e893cc8cd9581722ffe7798031076190cdc2264edc70694d925be5cf326b8bc2 +size 4884 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_2.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_2.stl new file mode 100644 index 00000000..d990c548 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/body_top_3dprint_collider_front_2.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ec16d901b544cd898eb1836d4f61fc16855919bd856c82f0fd23ac180e684af +size 4884 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/head_one_3dprint_collider_0.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/head_one_3dprint_collider_0.stl new file mode 100644 index 00000000..b5a03639 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/coarse/head_one_3dprint_collider_0.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ba0e5a4dc95869e16212e69fa3712ea7f021378cf76db0b1a8d2300eaab3c64 +size 6884 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_0.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_0.stl new file mode 100644 index 00000000..6e405fc6 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_0.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c22bb171ab47155a4fe2946cd267f8e43cba901dd11d3106082bbe1848f90b4 +size 190084 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_1.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_1.stl new file mode 100644 index 00000000..34019f99 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_1.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a2c6189ab48a1b296ab5e0695363ab20021154dc7823d3eef8a188b992c1682 +size 195784 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_2.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_2.stl new file mode 100644 index 00000000..67603dad --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_2.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbdf0d34da912a29174148bd78b90e3541755f9bc20d2a5cc624e3565aef3d94 +size 78684 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_3.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_3.stl new file mode 100644 index 00000000..37d62560 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_back_3.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e7c26eb2033477e711d6ea535b955a91f443b74d21a4d8e5ed1bfb72c10c401 +size 245084 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_0.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_0.stl new file mode 100644 index 00000000..f0f3c8da --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_0.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27dcf3bcfc55a11f5fe3a6a5f01fe253fb5e9cf9d736aa9b83a44d286aeef38c +size 185384 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_1.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_1.stl new file mode 100644 index 00000000..ce58be8b --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_1.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89940a91f8e1bf1d1b7c4844bc58a8a03f5c3983cfc174573e8f60f6a47c1109 +size 182484 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_2.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_2.stl new file mode 100644 index 00000000..8964aa93 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/body_top_3dprint_collider_front_2.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ccf48cd480051da28caee941ad1e130f74cebfd2c474d5791d5e014e10fcdfd +size 219184 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/head_one_3dprint_collider_0.stl b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/head_one_3dprint_collider_0.stl new file mode 100644 index 00000000..1d636e5f --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/assets/collision/fine/head_one_3dprint_collider_0.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a28add53d3bc49c5b7f6d9e8f8f0884bbfa1ad9fe81af5ca58f01d08a072ed9 +size 1359584 diff --git a/src/reachy_mini/descriptions/reachy_mini/urdf/robot_simple_collision.urdf b/src/reachy_mini/descriptions/reachy_mini/urdf/robot_simple_collision.urdf new file mode 100644 index 00000000..1326b3e7 --- /dev/null +++ b/src/reachy_mini/descriptions/reachy_mini/urdf/robot_simple_collision.urdf @@ -0,0 +1,2399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/reachy_mini/kinematics/placo_kinematics.py b/src/reachy_mini/kinematics/placo_kinematics.py index 3c977bdd..fb9f0b2d 100644 --- a/src/reachy_mini/kinematics/placo_kinematics.py +++ b/src/reachy_mini/kinematics/placo_kinematics.py @@ -41,13 +41,15 @@ def __init__( ) # 0.1 degrees tolerance for the FK reached condition if not urdf_path.endswith(".urdf"): - urdf_path = f"{urdf_path}/{'robot.urdf' if check_collision else 'robot_no_collision.urdf'}" + urdf_path = f"{urdf_path}/{'robot_simple_collision.urdf' if check_collision else 'robot_no_collision.urdf'}" self.robot = placo.RobotWrapper( - urdf_path, placo.Flags.ignore_collisions + placo.Flags.collision_as_visual + urdf_path, placo.Flags.collision_as_visual + placo.Flags.ignore_collisions ) + + flags = 0 if check_collision else placo.Flags.ignore_collisions + placo.Flags.collision_as_visual self.robot_ik = placo.RobotWrapper( - urdf_path, placo.Flags.ignore_collisions + placo.Flags.collision_as_visual + urdf_path, flags ) self.ik_solver = placo.KinematicsSolver(self.robot_ik) @@ -240,6 +242,11 @@ def __init__( self.robot.update_kinematics() if self.check_collision: + ik_col = self.ik_solver.add_avoid_self_collisions_constraint() + ik_col.self_collisions_margin = 0.001 # 1mm + ik_col.self_collisions_trigger = 0.002 # 2mm + ik_col.configure("avoid_self_collisions", "hard") + # setup the collision model self.config_collision_model() @@ -396,16 +403,7 @@ def ik( self._logger.warning(f"IK solver failed: {e}, no solution found!") return None self.robot_ik.update_kinematics() - - # verify that there is no collision - if self.check_collision and self.compute_collision(): - self._logger.warning( - "IK: Collision detected, using the previous configuration..." - ) - self._update_state_to_initial(self.robot_ik) # revert to the inital state - self.robot_ik.update_kinematics() - return None - + # Get the joint angles return np.array(self._get_joint_values(self.robot_ik)) @@ -487,13 +485,6 @@ def fk( return None self.robot.update_kinematics() - if self.check_collision and self.compute_collision(): - self._logger.warning("FK: Collision detected, using the previous config...") - self._update_state_to_initial(self.robot) # revert to the previous state - self.robot.state.q = q - self.robot.update_kinematics() - # return None - # Get the head frame transformation T_world_head = self.robot.get_T_world_frame("head") T_world_head[:3, 3][2] -= self.head_z_offset # offset the height of the head @@ -505,20 +496,14 @@ def config_collision_model(self) -> None: Add collision pairs between the torso and the head colliders. """ - geom_model = self.robot.collision_model - - # name_torso_collider = "dc15_a01_case_b_dummy_10" - # names_head_colliders = ["pp01063_stewart_plateform_7", "pp01063_stewart_plateform_11"] + geom_model = self.robot_ik.collision_model - id_torso_collider = 12 # geom_model.getGeometryObjectId(name_torso_collider) - id_head_colliders = [ - 74, - 78, - ] # [geom_model.getGeometryObjectId(name) for name in names_head_colliders] + id_torso_colliders = list(range(len(geom_model.geometryObjects)-1)) + id_head_collider = len(geom_model.geometryObjects)-1 - for i in id_head_colliders: + for i in id_torso_colliders: geom_model.addCollisionPair( - pin.CollisionPair(id_torso_collider, i) + pin.CollisionPair(id_head_collider, i) ) # torso with head colliders def compute_collision(self, margin: float = 0.005) -> bool: @@ -531,17 +516,18 @@ def compute_collision(self, margin: float = 0.005) -> bool: True if there is a collision, False otherwise. """ - collision_data = self.robot.collision_model.createData() - data = self.robot.model.createData() + collision_data = self.robot_ik.collision_model.createData() + data = self.robot_ik.model.createData() # pin.computeCollisions( pin.computeDistances( - self.robot.model, + self.robot_ik.model, data, - self.robot.collision_model, + self.robot_ik.collision_model, collision_data, - self.robot.state.q, + self.robot_ik.state.q, ) + # Iterate over all collision pairs for distance_result in collision_data.distanceResults: From f5fa37a53bd76b76169bd23c262e47e1a864871e Mon Sep 17 00:00:00 2001 From: gospar Date: Thu, 30 Oct 2025 10:34:37 +0100 Subject: [PATCH 2/2] ruff stuff --- src/reachy_mini/kinematics/placo_kinematics.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/reachy_mini/kinematics/placo_kinematics.py b/src/reachy_mini/kinematics/placo_kinematics.py index fb9f0b2d..97b3321d 100644 --- a/src/reachy_mini/kinematics/placo_kinematics.py +++ b/src/reachy_mini/kinematics/placo_kinematics.py @@ -451,9 +451,6 @@ def fk( } ) - # save the initial configuration - q = self.robot.state.q.copy() - done = True # do the inital ik with 2 iterations for i in range(no_iterations):