Program Listing for File robot_state.h
↰ Return to documentation for file (include/franka/robot_state.h
)
// Copyright (c) 2024 Franka Robotics GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#pragma once
#include <array>
#include <ostream>
#include <franka/duration.h>
#include <franka/errors.h>
namespace franka {
enum class RobotMode {
kOther,
kIdle,
kMove,
kGuiding,
kReflex,
kUserStopped,
kAutomaticErrorRecovery
};
struct RobotState {
std::array<double, 16> O_T_EE{}; // NOLINT(readability-identifier-naming)
std::array<double, 16> O_T_EE_d{}; // NOLINT(readability-identifier-naming)
std::array<double, 16> F_T_EE{}; // NOLINT(readability-identifier-naming)
std::array<double, 16> F_T_NE{}; // NOLINT(readability-identifier-naming)
std::array<double, 16> NE_T_EE{}; // NOLINT(readability-identifier-naming)
std::array<double, 16> EE_T_K{}; // NOLINT(readability-identifier-naming)
double m_ee{};
std::array<double, 9> I_ee{}; // NOLINT(readability-identifier-naming)
std::array<double, 3> F_x_Cee{}; // NOLINT(readability-identifier-naming)
double m_load{};
std::array<double, 9> I_load{}; // NOLINT(readability-identifier-naming)
std::array<double, 3> F_x_Cload{}; // NOLINT(readability-identifier-naming)
double m_total{};
std::array<double, 9> I_total{}; // NOLINT(readability-identifier-naming)
std::array<double, 3> F_x_Ctotal{}; // NOLINT(readability-identifier-naming)
std::array<double, 2> elbow{};
std::array<double, 2> elbow_d{};
std::array<double, 2> elbow_c{};
std::array<double, 2> delbow_c{};
std::array<double, 2> ddelbow_c{};
std::array<double, 7> tau_J{}; // NOLINT(readability-identifier-naming)
std::array<double, 7> tau_J_d{}; // NOLINT(readability-identifier-naming)
std::array<double, 7> dtau_J{}; // NOLINT(readability-identifier-naming)
std::array<double, 7> q{};
std::array<double, 7> q_d{};
std::array<double, 7> dq{};
std::array<double, 7> dq_d{};
std::array<double, 7> ddq_d{};
std::array<double, 7> joint_contact{};
std::array<double, 6> cartesian_contact{};
std::array<double, 7> joint_collision{};
std::array<double, 6> cartesian_collision{};
std::array<double, 7> tau_ext_hat_filtered{};
std::array<double, 6> O_F_ext_hat_K{}; // NOLINT(readability-identifier-naming)
std::array<double, 6> K_F_ext_hat_K{}; // NOLINT(readability-identifier-naming)
std::array<double, 6> O_dP_EE_d{}; // NOLINT(readability-identifier-naming)
std::array<double, 3> O_ddP_O{}; // NOLINT(readability-identifier-naming)
std::array<double, 16> O_T_EE_c{}; // NOLINT(readability-identifier-naming)
std::array<double, 6> O_dP_EE_c{}; // NOLINT(readability-identifier-naming)
std::array<double, 6> O_ddP_EE_c{}; // NOLINT(readability-identifier-naming)
std::array<double, 7> theta{};
std::array<double, 7> dtheta{};
Errors current_errors{};
Errors last_motion_errors{};
double control_command_success_rate{};
RobotMode robot_mode = RobotMode::kUserStopped;
Duration time{};
};
std::ostream& operator<<(std::ostream& ostream, const franka::RobotState& robot_state);
std::ostream& operator<<(std::ostream& ostream, RobotMode robot_mode);
} // namespace franka