Franak Robot State详解
机器人状态以 1 kHz 的速率提供机器人传感器读数和估计值。它提供:
- 关节级信号:电机和估计的关节角度及其导数、关节扭矩和导数、估计的外部扭矩、关节碰撞/接触。
- 笛卡尔级信号:笛卡尔位姿、配置的末端执行器和负载参数、作用于末端执行器的外部扳手、笛卡尔碰撞。
- 接口信号:最后的命令和期望值及其导数。
机器人状态始终是控制循环所有回调函数的输入。但是,如果您只想读取机器人状态而不控制它,则可以使用函数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; });