Expand description
Connection, state stream and motion lifecycle.
Port of franka::Robot::Impl (libfranka 0.21.2 src/robot_impl.{h,cpp}). Everything that
talks to the robot lives here; crate::robot::Robot is a thin, locked facade on top.
Unlike the C++ class, RobotImpl is Sync and every method takes &self: the mutable
bookkeeping (message id, modes) lives behind one small mutex — the equivalent of libfranka’s
message_id_mutex_, widened to cover the mode fields it also reads and writes — so that
Robot::stop() can run on another thread while a control loop is running.
This module holds the session itself — the handshake, the shared bookkeeping and the state
stream. The motion lifecycle (Move, the per-cycle command, StopMove and the
ActiveControl write paths) is in the motion submodule, and libfranka’s createControlException
text formatting is in the exception submodule.
Structs§
- Robot
Impl - The FCI session plus everything
franka::Robot::Implkeeps.
Constants§
- DEFAULT_
DEVIATION - Deviations libfranka’s control loops and
ActiveControlpass to everyMove(franka::ControlLoop<T>::kDefaultDeviation). - NUM_
JOINTS - Number of joints, as
franka::RobotControl::kNumJoints.