From 30baad1fca386d440796d8e515350a0fac397fd7 Mon Sep 17 00:00:00 2001
From: Russ Tedrake <russt@mit.edu>
Date: Sat, 28 Dec 2024 10:13:38 -0500
Subject: [PATCH] [multibody] Add binding for
 MultibodyPlant::GetActuationFromArray() (#22356)

---
 bindings/pydrake/multibody/plant_py.cc        | 3 +++
 bindings/pydrake/multibody/test/plant_test.py | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/bindings/pydrake/multibody/plant_py.cc b/bindings/pydrake/multibody/plant_py.cc
index 1e94f55ff30f..f15ba41b59ad 100644
--- a/bindings/pydrake/multibody/plant_py.cc
+++ b/bindings/pydrake/multibody/plant_py.cc
@@ -442,6 +442,9 @@ void DoScalarDependentDefinitions(py::module m, T) {
             cls_doc.SetDefaultFreeBodyPose.doc)
         .def("GetDefaultFreeBodyPose", &Class::GetDefaultFreeBodyPose,
             py::arg("body"), cls_doc.GetDefaultFreeBodyPose.doc)
+        .def("GetActuationFromArray", &Class::GetActuationFromArray,
+            py::arg("model_instance"), py::arg("u"),
+            cls_doc.GetActuationFromArray.doc)
         .def("SetActuationInArray", &Class::SetActuationInArray,
             py::arg("model_instance"), py::arg("u_instance"), py::arg("u"),
             cls_doc.SetActuationInArray.doc)
diff --git a/bindings/pydrake/multibody/test/plant_test.py b/bindings/pydrake/multibody/test/plant_test.py
index 161b96a7fa92..8d285d001e04 100644
--- a/bindings/pydrake/multibody/test/plant_test.py
+++ b/bindings/pydrake/multibody/test/plant_test.py
@@ -1941,6 +1941,9 @@ def test_model_instance_state_access_by_array(self, T):
             plant.SetActuationInArray(
                 model_instance=iiwa_model, u_instance=u_iiwa, u=u)
             numpy_compare.assert_float_equal(u_iiwa, u[:7])
+            numpy_compare.assert_float_equal(
+                u_iiwa, plant.GetActuationFromArray(
+                    model_instance=iiwa_model, u=u))
 
     @numpy_compare.check_all_types
     def test_map_qdot_to_v_and_back(self, T):