Buckets:

|
download
raw
15.8 kB

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)

Source

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)

Source

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'>)

Source

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)

Source

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:

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)

Source

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)

Source

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)

Source

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)

Source

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)

Source

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)

Source

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)

Source

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)

Source

Rerun logging for Reachy Mini.

log_camera[[reachy_mini.utils.rerun.Rerun.log_camera]]

log_camera()

Source

Log the camera image to Rerun.

log_movements[[reachy_mini.utils.rerun.Rerun.log_movements]]

log_movements()

Source

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)

Source

Set the absolute paths in the URDF file. Rerun cannot read the "package://" paths.

start[[reachy_mini.utils.rerun.Rerun.start]]

start()

Source

Start the Rerun logging threads.

stop[[reachy_mini.utils.rerun.Rerun.stop]]

stop()

Source

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,))

Source

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)

Source

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')

Source

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()

Source

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()

Source

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()

Source

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)

Source

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)

Source

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)

Source

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)

Source

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()

Source

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.