Buckets:
Utils
Interpolation Functions[[reachy_mini.utils.interpolation.minimum_jerk]]
reachy_mini.utils.interpolation.minimum_jerk[[reachy_mini.utils.interpolation.minimum_jerk]]
reachy_mini.utils.interpolation.minimum_jerk(starting_position: ndarray, goal_position: ndarray, duration: float, starting_velocity: typing.Optional[numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]] = None, starting_acceleration: typing.Optional[numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]] = None, final_velocity: typing.Optional[numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]] = None, final_acceleration: typing.Optional[numpy.ndarray[tuple[typing.Any, ...], numpy.dtype[numpy.float64]]] = None)
Compute the minimum jerk interpolation function from starting position to goal position.
reachy_mini.utils.interpolation.linear_pose_interpolation[[reachy_mini.utils.interpolation.linear_pose_interpolation]]
reachy_mini.utils.interpolation.linear_pose_interpolation(start_pose: ndarray, target_pose: ndarray, t: float, yaw_as_scalar: bool = False)
Linearly interpolate between two poses in 6D space.
Use yaw_as_scalar to interpolate yaw as a signed scalar Euler angle instead of along the SO(3) geodesic.
This keeps the path through the front rather than taking the shortest 3D rotation through +-180° (the back).
reachy_mini.utils.interpolation.time_trajectory[[reachy_mini.utils.interpolation.time_trajectory]]
reachy_mini.utils.interpolation.time_trajectory(t: float, method: InterpolationTechnique = <InterpolationTechnique.MIN_JERK: 'minjerk'>)
Compute the time trajectory value based on the specified interpolation method.
reachy_mini.utils.interpolation.delta_angle_between_mat_rot[[reachy_mini.utils.interpolation.delta_angle_between_mat_rot]]
reachy_mini.utils.interpolation.delta_angle_between_mat_rot(P: ndarray, Q: ndarray)
Parameters:
P : A 3x3 rotation matrix.
Q : Another 3x3 rotation matrix.
Returns:
The angle in radians between the two rotations.
Compute the angle (in radians) between two 3x3 rotation matrices P and Q.
This is equivalent to the angular distance in axis-angle space. It is computed via the trace of the relative rotation matrix.
References:
- https://math.stackexchange.com/questions/2113634/comparing-two-rotation-matrices
- http://www.boris-belousov.net/2016/12/01/quat-dist/
reachy_mini.utils.interpolation.distance_between_poses[[reachy_mini.utils.interpolation.distance_between_poses]]
reachy_mini.utils.interpolation.distance_between_poses(pose1: ndarray, pose2: ndarray)
Parameters:
pose1 : A 4x4 homogeneous transformation matrix representing the first pose.
pose2 : A 4x4 homogeneous transformation matrix representing the second pose.
Returns: A tuple of
- translation distance in meters,
- angular distance in radians,
- unhinged distance in magic-mm (translation in mm + rotation in degrees).
Compute three types of distance between two 4x4 homogeneous transformation matrices.
The result combines translation (in mm) and rotation (in degrees) using an arbitrary but emotionally satisfying equivalence: 1 degree ≈ 1 mm.
reachy_mini.utils.interpolation.compose_world_offset[[reachy_mini.utils.interpolation.compose_world_offset]]
reachy_mini.utils.interpolation.compose_world_offset(T_abs: ndarray, T_off_world: ndarray, reorthonormalize: bool = False)
Compose an absolute world-frame pose with a world-frame offset.
- translations add in world: t_final = t_abs + t_off
- rotations compose in world: R_final = R_off @ R_abs This rotates the frame in place (about its own origin) by a rotation defined in world axes, and shifts it by a world translation.
Parameters
T_abs : (4,4) ndarray Absolute pose in world frame. T_off_world : (4,4) ndarray Offset transform specified in world axes (dx,dy,dz in world; dR about world axes). reorthonormalize : bool If True, SVD-orthonormalize the resulting rotation to fight drift.
Returns
T_final : (4,4) ndarray Resulting pose in world frame.
reachy_mini.utils.interpolation.InterpolationTechnique[[reachy_mini.utils.interpolation.InterpolationTechnique]]
reachy_mini.utils.interpolation.InterpolationTechnique(value, names = None, module = None, qualname = None, type = None, start = 1, boundary = None)
Enumeration of interpolation techniques.
Hardware Configuration[[reachy_mini.utils.hardware_config.parser.MotorConfig]]
reachy_mini.utils.hardware_config.parser.MotorConfig[[reachy_mini.utils.hardware_config.parser.MotorConfig]]
reachy_mini.utils.hardware_config.parser.MotorConfig(id: int, offset: int, angle_limit_min: int, angle_limit_max: int, return_delay_time: int, shutdown_error: int, operating_mode: int, pid: tuple[int, int, int] | None = None)
Motor configuration.
reachy_mini.utils.hardware_config.parser.SerialConfig[[reachy_mini.utils.hardware_config.parser.SerialConfig]]
reachy_mini.utils.hardware_config.parser.SerialConfig(baudrate: int)
Serial configuration.
reachy_mini.utils.hardware_config.parser.ReachyMiniConfig[[reachy_mini.utils.hardware_config.parser.ReachyMiniConfig]]
reachy_mini.utils.hardware_config.parser.ReachyMiniConfig(version: str, serial: SerialConfig, motors: dict)
Reachy Mini configuration.
reachy_mini.utils.hardware_config.parser.parse_yaml_config[[reachy_mini.utils.hardware_config.parser.parse_yaml_config]]
reachy_mini.utils.hardware_config.parser.parse_yaml_config(filename: str)
Parse the YAML configuration file and return a ReachyMiniConfig.
Rerun Visualization[[reachy_mini.utils.rerun.Rerun]]
reachy_mini.utils.rerun.Rerun[[reachy_mini.utils.rerun.Rerun]]
reachy_mini.utils.rerun.Rerun(reachymini: ReachyMini, app_id: str = 'reachy_mini_rerun', spawn: bool = True)
Rerun logging for Reachy Mini.
log_camera[[reachy_mini.utils.rerun.Rerun.log_camera]]
log_camera()
Log the camera image to Rerun.
log_movements[[reachy_mini.utils.rerun.Rerun.log_movements]]
log_movements()
Log the movement data to Rerun.
set_absolute_path_to_urdf[[reachy_mini.utils.rerun.Rerun.set_absolute_path_to_urdf]]
set_absolute_path_to_urdf(urdf_path: str, abs_path: str)
Set the absolute paths in the URDF file. Rerun cannot read the "package://" paths.
start[[reachy_mini.utils.rerun.Rerun.start]]
start()
Start the Rerun logging threads.
stop[[reachy_mini.utils.rerun.Rerun.stop]]
stop()
Stop the Rerun logging threads.
Wireless Version Utilities[[reachy_mini.utils.wireless_version.utils.call_logger_wrapper]]
reachy_mini.utils.wireless_version.utils.call_logger_wrapper[[reachy_mini.utils.wireless_version.utils.call_logger_wrapper]]
reachy_mini.utils.wireless_version.utils.call_logger_wrapper(command: str, logger: Logger, env: dict[str, str] | None = None, ok_returncodes: tuple = (0,))
Parameters:
command : Shell command string.
logger : logger object with .info and .error methods
env : Optional environment variables dict. If None, inherits current environment.
ok_returncodes : Exit codes treated as success. Only the daemon restart needs more than (0,) - see update_reachy_mini.
Raises: RuntimeError
RuntimeError-- If the command exits with a code outside ok_returncodes.
Run a shell command asynchronously, streaming stdout and stderr to logger in real time.
reachy_mini.utils.wireless_version.update.update_reachy_mini[[reachy_mini.utils.wireless_version.update.update_reachy_mini]]
reachy_mini.utils.wireless_version.update.update_reachy_mini(logger: Logger, pre_release: bool = False, git_ref: str | None = None)
Parameters:
logger : Logger for streaming output.
pre_release : If True, install pre-release from PyPI (ignored if git_ref set).
git_ref : If set, install from this GitHub tag/branch instead of PyPI.
Raises: RuntimeError
RuntimeError-- If the daemon venv install or the restart command fails. An apps_venv failure is deliberately non-fatal.
Update reachy_mini package and restart daemon.
reachy_mini.utils.wireless_version.startup_check.check_and_fix_venvs_ownership[[reachy_mini.utils.wireless_version.startup_check.check_and_fix_venvs_ownership]]
reachy_mini.utils.wireless_version.startup_check.check_and_fix_venvs_ownership(venvs_path: str = '/venvs')
Parameters:
venvs_path : Path to the virtual environments directory (default: /venvs)
For wireless units, check if files under venvs_path are owned by user pollen and fix if needed.
reachy_mini.utils.wireless_version.startup_check.check_and_update_bluetooth_service[[reachy_mini.utils.wireless_version.startup_check.check_and_update_bluetooth_service]]
reachy_mini.utils.wireless_version.startup_check.check_and_update_bluetooth_service()
Check if bluetooth service needs updating and update if different.
Compares the source bluetooth_service.py with the installed version at /bluetooth/bluetooth_service.py. If they differ, copies the new version and restarts the bluetooth service. Also syncs the commands/ folder.
reachy_mini.utils.wireless_version.startup_check.check_and_update_wireless_launcher[[reachy_mini.utils.wireless_version.startup_check.check_and_update_wireless_launcher]]
reachy_mini.utils.wireless_version.startup_check.check_and_update_wireless_launcher()
Check if wireless daemon service needs updating and update if different.
Compares the source reachy-mini-daemon.service with the installed version. If they differ, copies the new version and reloads systemd.
reachy_mini.utils.wireless_version.startup_check.check_and_sync_apps_venv_sdk[[reachy_mini.utils.wireless_version.startup_check.check_and_sync_apps_venv_sdk]]
reachy_mini.utils.wireless_version.startup_check.check_and_sync_apps_venv_sdk()
Check if apps_venv SDK matches daemon install source and sync if needed.
Compares both version AND install source (PyPI vs git ref). If daemon was installed from a git ref, apps_venv will be synced to the same ref.
reachy_mini.utils.wireless_version.update_available.is_update_available[[reachy_mini.utils.wireless_version.update_available.is_update_available]]
reachy_mini.utils.wireless_version.update_available.is_update_available(package_name: str, pre_release: bool)
Check if an update is available for the given package.
reachy_mini.utils.wireless_version.update_available.get_pypi_version[[reachy_mini.utils.wireless_version.update_available.get_pypi_version]]
reachy_mini.utils.wireless_version.update_available.get_pypi_version(package_name: str, pre_release: bool)
Get the latest version of a package from PyPI.
reachy_mini.utils.wireless_version.update_available.get_local_version[[reachy_mini.utils.wireless_version.update_available.get_local_version]]
reachy_mini.utils.wireless_version.update_available.get_local_version(package_name: str)
Get the currently installed version of a package.
Core Utilities[[reachy_mini.utils.create_head_pose]]
reachy_mini.utils.create_head_pose[[reachy_mini.utils.create_head_pose]]
reachy_mini.utils.create_head_pose(x: float = 0, y: float = 0, z: float = 0, roll: float = 0, pitch: float = 0, yaw: float = 0, mm: bool = False, degrees: bool = True)
Parameters:
x (float) : X coordinate of the position.
y (float) : Y coordinate of the position.
z (float) : Z coordinate of the position.
roll (float) : Roll angle
pitch (float) : Pitch angle
yaw (float) : Yaw angle
mm (bool) : If True, convert position from millimeters to meters.
degrees (bool) : If True, interpret roll, pitch, and yaw as degrees; otherwise as radians.
Returns: np.ndarray
A 4x4 homogeneous transformation matrix representing the pose.
Create a homogeneous transformation matrix representing a pose in 6D space (position and orientation).
URDF Parsing[[reachy_mini.utils.parse_urdf_for_kinematics.get_data]]
reachy_mini.utils.parse_urdf_for_kinematics.get_data[[reachy_mini.utils.parse_urdf_for_kinematics.get_data]]
reachy_mini.utils.parse_urdf_for_kinematics.get_data()
Generate the urdf_kinematics.json file.
Xet Storage Details
- Size:
- 15.8 kB
- Xet hash:
- 254d38b21e19b531a338b5718a2d36dd25b14cfaf48c7044923b78c86b41c3ae
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.