机器人状态
机器人状态以 1kHz 的速率提供机器人传感器读数和估计值。它提供:
关节层级信号:电机和估计的关节角度及其导数、关节扭矩及其导数、估计的外部扭矩、关节碰撞/接触。
笛卡尔层级信号:笛卡尔位姿、配置的末端执行器和负载参数、作用在末端执行器上的外部力旋量、笛卡尔碰撞
接口信号:上一小节中解释的最后的命令和期望值及其导数值。
如需完整列表,请查看 franka::RobotState API 。如上一小节所示,机器人状态始终是控制循环的所有回调函数的输入。但是,如果希望只读取机器人状态而不对其进行控制,则可以使用功能 read 或 readOnce 来收集它,例如用于记录或可视化目的。
通过合法连接,可以使用以下函数 readOnce 读取 机器人的单次采样状态:
franka::RobotState state = robot.readOnce();
下一个示例显示如何使用 read 函数和回调连续读取机器人状态。返回 false 会在回调中停止循环。下面显示了 echo_robot_state 示例的代码片段:
size_t count = 0;
robot.read([&count](const franka::RobotState& robot_state) {
// Printing to std::cout adds a delay. This is acceptable for a read loop such as this,
// but should not be done in a control loop.
std::cout << robot_state << std::endl;
return count++ < 100;
});