37 #include <pybind11/pybind11.h>
38 #include <pybind11/numpy.h>
39 #include <pybind11/stl.h>
46 using namespace robot_state;
50 m.doc() =
"Representation of a robot's state. This includes position, velocity, acceleration and effort.";
51 py::class_<RobotState, RobotStatePtr>(m,
"RobotState")
52 .def(py::init<const robot_model::RobotModelConstPtr&>(), py::arg(
"robot_model"))
53 .def(
"setToRandomPositions", py::overload_cast<>(&RobotState::setToRandomPositions))
54 .def(
"setToRandomPositions", py::overload_cast<const JointModelGroup*>(&RobotState::setToRandomPositions))
55 .def(
"getJointModelGroup", &RobotState::getJointModelGroup, py::return_value_policy::reference)
56 .def(
"getJointModel", &RobotState::getJointModel, py::return_value_policy::reference)
57 .def(
"getLinkModel", &RobotState::getLinkModel, py::return_value_policy::reference)
58 .def(
"getVariableNames", &RobotState::getVariableNames)
59 .def(
"getVariablePositions", py::overload_cast<>(&RobotState::getVariablePositions, py::const_),
60 py::return_value_policy::reference)
61 .def(
"getVariableCount", &RobotState::getVariableCount)
62 .def(
"hasVelocities", &RobotState::hasVelocities)
63 .def(
"setJointGroupPositions",
64 py::overload_cast<
const std::string&,
const std::vector<double>&>(&RobotState::setJointGroupPositions))
65 .def(
"setJointGroupPositions",
66 py::overload_cast<
const JointModelGroup*,
const std::vector<double>&>(&RobotState::setJointGroupPositions))
67 .def(
"satisfiesBounds",
68 py::overload_cast<const JointModelGroup*, double>(&RobotState::satisfiesBounds, py::const_),
69 py::arg(
"joint_model_group"), py::arg(
"margin") = 0.0)
70 .def(
"update", &RobotState::update, py::arg(
"force") =
false)
71 .def(
"printStateInfo",
72 [](
const RobotState& s) {
77 .def(
"printStatePositions",
78 [](
const RobotState& s) {
80 s.printStatePositions(ss);
84 [](
const RobotState& s) {
86 s.printStatePositions(ss);
94 "robotStateToRobotStateMsg",
95 [](
const RobotState& state,
bool copy_attached_bodies) {
96 moveit_msgs::RobotState state_msg;
100 py::arg(
"state"), py::arg(
"copy_attached_bodies") =
true);
void robotStateToRobotStateMsg(const RobotState &state, moveit_msgs::msg::RobotState &robot_state, bool copy_attached_bodies=true)
Convert a MoveIt robot state to a robot state message.
bool jointStateToRobotState(const sensor_msgs::msg::JointState &joint_state, RobotState &state)
Convert a joint state to a MoveIt robot state.
void def_robot_state_bindings(py::module &m)