|
void | initLegController () |
| Initializes leg controller object.
|
|
void | initStateControlStructs () |
| Initializes states and controls structures.
|
|
void | initStateEstimator () |
| Initializes state estimator object.
|
|
void | controlModeCallback (const std_msgs::UInt8::ConstPtr &msg) |
| Verifies and updates new control mode.
|
|
void | localPlanCallback (const quad_msgs::RobotPlan::ConstPtr &msg) |
| Callback function to handle new local plan (states and GRFs)
|
|
void | robotStateCallback (const quad_msgs::RobotState::ConstPtr &msg) |
| Callback function to handle current robot state.
|
|
void | mocapCallback (const geometry_msgs::PoseStamped::ConstPtr &msg) |
| Callback function to handle current robot pose.
|
|
void | trajectoryStateCallback (const quad_msgs::RobotState::ConstPtr &msg) |
| Callback function to handle reference trajectory state.
|
|
void | singleJointCommandCallback (const geometry_msgs::Vector3::ConstPtr &msg) |
| Callback to handle new leg override commands.
|
|
void | controlRestartFlagCallback (const std_msgs::Bool::ConstPtr &msg) |
| Callback to handle control restart flag messages.
|
|
void | remoteHeartbeatCallback (const std_msgs::Header::ConstPtr &msg) |
| Callback to handle new remote heartbeat messages.
|
|
void | checkMessagesForSafety () |
| Check to make sure required messages are fresh.
|
|
bool | updateState () |
| Update the most recent state message with the given data.
|
|
bool | updateControl () |
| Function to compute leg command array message.
|
|
void | publishState () |
| Publish the most recent state message with the given data.
|
|
void | publishControl (bool is_valid) |
| Function to publish leg command array message.
|
|
void | publishHeartbeat () |
| Function to publish heartbeat message.
|
|
|
ros::Subscriber | control_mode_sub_ |
| Subscriber for control mode.
|
|
ros::Subscriber | body_plan_sub_ |
| ROS subscriber for body plan.
|
|
ros::Subscriber | local_plan_sub_ |
| ROS subscriber for local plan.
|
|
ros::Subscriber | mocap_sub_ |
| ROS subscriber for local plan.
|
|
ros::Subscriber | robot_state_sub_ |
| ROS subscriber for state estimate.
|
|
ros::Subscriber | control_restart_flag_sub_ |
| ROS subscriber for control restart flag.
|
|
ros::Publisher | robot_state_pub_ |
| ROS publisher for ground truth state.
|
|
ros::Publisher | trajectry_robot_state_pub_ |
|
ros::Subscriber | remote_heartbeat_sub_ |
| ROS subscriber for remote heartbeat.
|
|
ros::Subscriber | single_joint_cmd_sub_ |
| ROS subscriber for single joint command.
|
|
ros::Publisher | robot_heartbeat_pub_ |
| ROS publisher for robot heartbeat.
|
|
ros::Publisher | leg_command_array_pub_ |
| ROS publisher for inverse dynamics.
|
|
ros::Publisher | grf_pub_ |
| ROS publisher for desired GRF.
|
|
ros::Publisher | imu_pub_ |
| ROS publisher for imu data.
|
|
ros::Publisher | joint_state_pub_ |
| ROS publisher for joint data.
|
|
ros::NodeHandle | nh_ |
| Nodehandle to pub to and sub from.
|
|
bool | is_hardware_ |
| Boolean for whether robot layer is hardware (else sim)
|
|
std::string | controller_id_ |
| Controller type.
|
|
std::string | estimator_id_ |
| Estimator type.
|
|
double | update_rate_ |
| Update rate for computing new controls;.
|
|
double | publish_rate_ |
| Update rate for publishing data to ROS;.
|
|
const int | num_feet_ = 4 |
| Number of feet.
|
|
int | control_mode_ |
| Robot mode.
|
|
std::vector< double > | torque_limits_ |
| Torque limits.
|
|
const int | SIT = 0 |
| Define ids for control modes: Sit.
|
|
const int | READY = 1 |
| Define ids for control modes: Stand.
|
|
const int | SIT_TO_READY = 2 |
| Define ids for control modes: Sit to stand.
|
|
const int | READY_TO_SIT = 3 |
| Define ids for control modes: Stand to sit.
|
|
const int | SAFETY = 4 |
| Define ids for control modes: Safety.
|
|
const int | NONE = 0 |
| Define ids for input types: none.
|
|
const int | LOCAL_PLAN = 1 |
| Define ids for input types: local plan.
|
|
const int | GRFS = 2 |
| Define ids for input types: grf array.
|
|
quad_msgs::RobotPlan::ConstPtr | last_local_plan_msg_ |
| Most recent local plan.
|
|
quad_msgs::RobotState | last_robot_state_msg_ |
| Most recent state estimate.
|
|
quad_msgs::GRFArray::ConstPtr | last_grf_array_msg_ |
| Most recent local plan.
|
|
std_msgs::Header::ConstPtr | last_remote_heartbeat_msg_ |
| Most recent remote heartbeat.
|
|
std_msgs::Header | last_robot_heartbeat_msg_ |
| Most recent robot heartbeat.
|
|
double | last_state_time_ |
|
double | remote_heartbeat_received_time_ |
|
const double | transition_duration_ = 1.0 |
| Duration for sit to stand behavior.
|
|
double | input_timeout_ |
| Timeout (in s) for receiving new input reference messages.
|
|
double | state_timeout_ |
| Timeout (in s) for receiving new state messages.
|
|
double | heartbeat_timeout_ |
| Timeout (in s) for receiving new heartbeat messages.
|
|
double | remote_latency_threshold_warn_ |
| Latency threshold on robot messages for warnings (s)
|
|
double | remote_latency_threshold_error_ |
| Latency threshold on robot messages for error (s)
|
|
quad_msgs::LegCommandArray | leg_command_array_msg_ |
| Message for leg command array.
|
|
quad_msgs::GRFArray | grf_array_msg_ |
| Message for leg command array.
|
|
Eigen::VectorXd | user_tx_data_ |
| User transmission data.
|
|
Eigen::VectorXd | user_rx_data_ |
| User recieved data.
|
|
ros::Time | transition_timestamp_ |
| Time at which to start transition.
|
|
std::vector< double > | safety_kp_ |
| PD gain when in safety mode.
|
|
std::vector< double > | safety_kd_ |
|
std::vector< double > | sit_kp_ |
| PD gain when in sit mode.
|
|
std::vector< double > | sit_kd_ |
|
std::vector< double > | stand_kp_ |
| PD gain when in standing mode.
|
|
std::vector< double > | stand_kd_ |
|
std::vector< double > | stance_kp_ |
| PD gain when foot is in stance.
|
|
std::vector< double > | stance_kd_ |
|
std::vector< double > | swing_kp_ |
| PD gain when foot is in swing.
|
|
std::vector< double > | swing_kd_ |
|
std::vector< double > | swing_kp_cart_ |
| PD gain when foot is in swing (Cartesian)
|
|
std::vector< double > | swing_kd_cart_ |
|
std::vector< double > | stand_joint_angles_ |
| Define standing joint angles.
|
|
std::vector< double > | sit_joint_angles_ |
| Define sitting joint angles.
|
|
std::shared_ptr< quad_utils::QuadKD > | quadKD_ |
| QuadKD class.
|
|
std::shared_ptr< LegController > | leg_controller_ |
| Leg Controller template class.
|
|
std::shared_ptr< StateEstimator > | state_estimator_ |
| State Estimator template class.
|
|
std::shared_ptr< HardwareInterface > | hardware_interface_ |
| Mblink converter object.
|
|
geometry_msgs::PoseStamped::ConstPtr | last_mocap_msg_ |
| Last mocap data.
|
|
sensor_msgs::Imu | last_imu_msg_ |
| Most recent IMU data.
|
|
sensor_msgs::JointState | last_joint_state_msg_ |
| Most recent joint data.
|
|
Eigen::Vector3d | vel_estimate_ |
| Best estimate of velocity.
|
|
Eigen::Vector3d | mocap_vel_estimate_ |
| Best estimate of velocity from mocap diff.
|
|
Eigen::Vector3d | imu_vel_estimate_ |
| Best estimate of imu velocity.
|
|
double | filter_time_constant_ |
| Velocity filter time constant.
|
|
double | filter_weight_ |
| Velocity filter weight.
|
|
double | mocap_dropout_threshold_ |
|
double | mocap_rate_ |
| Update rate of the motion capture system.
|
|
double | last_mainboard_time_ |
| Last mainboard time.
|
|
ros::Time | last_mocap_time_ |
| Last mocap time.
|
|
ros::Time | t_pub_ |
| Time of last publishing.
|
|
int | argc_ |
| Required for some hardware interfaces.
|
|
char ** | argv_ |
| Required for some hardware interfaces.
|
|
ROS-based driver to handle computation and interfacing for state and control.
RobotDriver implements a class to retrieve state information and generate leg commands to be sent to either the robot or a simulator. It may subscribe to any number of topics to determine the leg control, but will always publish a LegCommandArray message to control the robot's legs.