1#ifndef SPIRIT_INTERFACE_H
2#define SPIRIT_INTERFACE_H
4#include <quad_msgs/LegCommandArray.h>
5#include <robot_driver/hardware_interfaces/hardware_interface.h>
6#include <sensor_msgs/Imu.h>
7#include <sensor_msgs/JointState.h>
8#include <tf2/LinearMath/Quaternion.h>
9#include <tf2_geometry_msgs/tf2_geometry_msgs.h>
11#include <eigen3/Eigen/Eigen>
12#include <mblink/mblink.hpp>
17 Eigen::Vector3f pos, vel, tau;
23typedef std::unordered_map<std::string, Eigen::VectorXf> MBData_t;
56 virtual bool send(
const quad_msgs::LegCommandArray& leg_command_array_msg,
57 const Eigen::VectorXd& user_tx_data);
66 virtual bool recv(sensor_msgs::JointState& joint_state_msg,
67 sensor_msgs::Imu& imu_msg, Eigen::VectorXd& user_rx_data);
76 std::vector<std::string>
joint_names_ = {
"8",
"0",
"1",
"9",
"2",
"3",
77 "10",
"4",
"5",
"11",
"6",
"7"};
80 std::vector<int>
joint_indices_ = {8, 0, 1, 9, 2, 3, 10, 4, 5, 11, 6, 7};
83 std::vector<double>
kt_vec_ = {0.546, 0.546, 1.092, 0.546, 0.546, 1.092,
84 0.546, 0.546, 1.092, 0.546, 0.546, 1.092};
Implements an abstract class for robot hardware interfaces.
Definition hardware_interface.h:28
Hardware interface for the Spirit40 quadruped from Ghost Robotics.
Definition spirit_interface.h:30
SpiritInterface()
Constructor for SpiritInterface.
Definition spirit_interface.cpp:3
virtual bool send(const quad_msgs::LegCommandArray &leg_command_array_msg, const Eigen::VectorXd &user_tx_data)
Send commands to the robot via the mblink protocol.
Definition spirit_interface.cpp:15
std::vector< std::string > joint_names_
Vector of joint names.
Definition spirit_interface.h:76
std::vector< double > kt_vec_
Vector of kt values for each joint.
Definition spirit_interface.h:83
virtual bool recv(sensor_msgs::JointState &joint_state_msg, sensor_msgs::Imu &imu_msg, Eigen::VectorXd &user_rx_data)
Recieve data from the robot via the mblink protocol.
Definition spirit_interface.cpp:51
virtual void loadInterface(int argc, char **argv)
Load the hardware interface.
Definition spirit_interface.cpp:5
MBData_t mbdata_
Mainboard data.
Definition spirit_interface.h:73
virtual void unloadInterface()
Unload the hardware interface.
Definition spirit_interface.cpp:13
MBLink mblink_
Pointer to MBLink object.
Definition spirit_interface.h:70
std::vector< int > joint_indices_
Vector denoting joint indices.
Definition spirit_interface.h:80
Definition spirit_interface.h:16