#include #include "unitreeMotor/unitreeMotor.h" #include "serialPort/SerialPort.h" namespace py = pybind11; PYBIND11_MODULE(unitree_actuator_sdk, m){ m.doc() = "unitree_actuator_sdk python wrapper"; py::enum_(m, "MotorType") .value("A1", MotorType::A1, "A1 Motor") .value("B1", MotorType::B1, "B1 Motor") .value("GO_M8010_6", MotorType::GO_M8010_6, "GO_M8010_6 Motor"); py::enum_(m, "MotorMode") .value("BRAKE", MotorMode::BRAKE, "BRAKE mode") .value("FOC", MotorMode::FOC, "FOC") .value("CALIBRATE", MotorMode::CALIBRATE, "CALIBRATE mode"); py::class_(m, "MotorCmd") .def(pybind11::init<>()) .def_readwrite("motorType", &MotorCmd::motorType) .def_readwrite("hex_len", &MotorCmd::hex_len) .def_readwrite("id", &MotorCmd::id) .def_readwrite("mode", &MotorCmd::mode) .def_readwrite("tau", &MotorCmd::tau) .def_readwrite("dq", &MotorCmd::dq) .def_readwrite("q", &MotorCmd::q) .def_readwrite("kp", &MotorCmd::kp) .def_readwrite("kd", &MotorCmd::kd); py::class_(m, "MotorData") .def(pybind11::init<>()) .def_readwrite("motorType", &MotorData::motorType) .def_readwrite("hex_len", &MotorData::hex_len) .def_readwrite("motor_id", &MotorData::motor_id) .def_readwrite("mode", &MotorData::mode) .def_readwrite("temp", &MotorData::temp) .def_readwrite("merror", &MotorData::merror) .def_readwrite("tau", &MotorData::tau) .def_readwrite("dq", &MotorData::dq) .def_readwrite("q", &MotorData::q) .def_readwrite("correct", &MotorData::correct); py::class_(m, "SerialPort") .def(py::init()) .def("test", &SerialPort::test) .def("sendRecv", py::overload_cast(&SerialPort::sendRecv)); m.def("queryMotorMode", &queryMotorMode, "Query Motor Mode"); m.def("queryGearRatio", &queryGearRatio, "Query Motor Gear Ratio"); }