Utils
Funciones de interpolación
reachy_mini.utils.interpolation.minimum_jerk
Calcula la función de interpolación de mínimo tirón desde la posición inicial hasta la posición objetivo.
reachy_mini.utils.interpolation.linear_pose_interpolation
Interpola linealmente entre dos poses en un espacio 6D.
reachy_mini.utils.interpolation.time_trajectory
Calcula el valor de la trayectoria temporal en función del método de interpolación especificado.
reachy_mini.utils.interpolation.delta_angle_between_mat_rot
Calcula el ángulo (en radianes) entre dos matrices de rotación 3x3 P y Q.
Esto es equivalente a la distancia angular en el espacio eje-ángulo. Se calcula mediante la traza de la matriz de rotación relativa.
Parámetros:
| Nombre | Descripción |
|---|---|
P | Una matriz de rotación 3x3. |
Q | Otra matriz de rotación 3x3. |
Devuelve:
El ángulo en radianes entre las dos rotaciones.
Referencias:
- 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
Calcula tres tipos de distancia entre dos matrices de transformación homogénea 4x4.
El resultado combina traslación (en mm) y rotación (en grados) usando una equivalencia arbitraria pero emocionalmente satisfactoria: 1 grado ≈ 1 mm.
Parámetros:
| Nombre | Descripción |
|---|---|
pose1 | Una matriz de transformación homogénea 4x4 que representa la primera pose. |
pose2 | Una matriz de transformación homogénea 4x4 que representa la segunda pose. |
Devuelve:
Una tupla de:
- distancia de traslación en metros
- distancia angular en radianes
- distancia desatada en mm mágicos (traslación en mm + rotación en grados)
reachy_mini.utils.interpolation.compose_world_offset
Compone una pose absoluta en el marco del mundo con un desplazamiento en el marco del mundo.
- las traslaciones se suman en el mundo:
t_final = t_abs + t_off - las rotaciones se componen en el mundo:
R_final = R_off @ R_abs
Esto rota el marco en su lugar (alrededor de su propio origen) mediante una rotación definida en los ejes del mundo y lo desplaza mediante una traslación en el mundo.
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
T_abs | (4,4) ndarray | Pose absoluta en el marco del mundo. |
T_off_world | (4,4) ndarray | Transformación de desplazamiento especificada en los ejes del mundo (dx,dy,dz en el mundo; dR alrededor de los ejes del mundo). |
reorthonormalize | bool | Si es True, reortogonaliza la rotación resultante mediante SVD para combatir la deriva. |
Devuelve:
| Nombre | Tipo | Descripción |
|---|---|---|
T_final | (4,4) ndarray | Pose resultante en el marco del mundo. |
reachy_mini.utils.interpolation.InterpolationTechnique
Enumeración de técnicas de interpolación.
Configuración de hardware
reachy_mini.utils.hardware_config.parser.MotorConfig
Configuración del motor.
reachy_mini.utils.hardware_config.parser.SerialConfig
Configuración serie.
reachy_mini.utils.hardware_config.parser.ReachyMiniConfig
Configuración de Reachy Mini.
reachy_mini.utils.hardware_config.parser.parse_yaml_config
Analiza el archivo de configuración YAML y devuelve un ReachyMiniConfig.
Visualización con Rerun
reachy_mini.utils.rerun.Rerun
Registro con Rerun para Reachy Mini.
Métodos
log_camera
Registra la imagen de la cámara en Rerun.
log_movements
Registra los datos de movimiento en Rerun.
set_absolute_path_to_urdf
Establece las rutas absolutas en el archivo URDF. Rerun no puede leer las rutas "package://".
start
Inicia el hilo de registro de Rerun.
stop
Detiene el hilo de registro de Rerun.
reachy_mini.utils.rerun.UrdfEntityPaths
Ayuda a construir rutas de entidades de eslabones/articulaciones que coinciden con el registrador URDF nativo.
Utilidades de la versión inalámbrica
reachy_mini.utils.wireless_version.utils.call_logger_wrapper
Ejecuta un comando de forma asíncrona, transmitiendo stdout y stderr al logger en tiempo real.
Parámetros:
| Nombre | Descripción |
|---|---|
command | lista o tupla de argumentos del comando (no una cadena) |
logger | objeto logger con métodos .info y .error |
reachy_mini.utils.wireless_version.update.update_reachy_mini
Actualiza el paquete reachy_mini y reinicia el daemon.
Parámetros:
| Nombre | Descripción |
|---|---|
logger | Logger para transmitir la salida. |
pre_release | Si es True, instala la versión preliminar desde PyPI (se ignora si se establece git_ref). |
git_ref | Si se establece, instala desde esta etiqueta/rama de GitHub en lugar de PyPI. |
reachy_mini.utils.wireless_version.startup_check.check_and_fix_venvs_ownership
Para unidades inalámbricas, comprueba si los archivos bajo venvs_path pertenecen al usuario pollen y corrige si es necesario.
Parámetros:
| Nombre | Descripción |
|---|---|
venvs_path | Ruta al directorio de entornos virtuales (por defecto: /venvs) |
custom_logger | Logger opcional para usar en lugar del logger del módulo |
reachy_mini.utils.wireless_version.startup_check.check_and_update_bluetooth_service
Comprueba si el servicio de bluetooth necesita actualizarse y lo actualiza si es diferente.
Compara el bluetooth_service.py de origen con la versión instalada en /bluetooth/bluetooth_service.py. Si son diferentes, copia la nueva versión y reinicia el servicio de bluetooth. También sincroniza la carpeta commands/.
reachy_mini.utils.wireless_version.startup_check.check_and_update_wireless_launcher
Comprueba si el servicio del daemon inalámbrico necesita actualizarse y lo actualiza si es diferente.
Compara el reachy-mini-daemon.service de origen con la versión instalada. Si son diferentes, copia la nueva versión y recarga systemd.
reachy_mini.utils.wireless_version.startup_check.check_and_sync_apps_venv_sdk
Comprueba si el SDK de apps_venv coincide con la fuente de instalación del daemon y lo sincroniza si es necesario.
Compara tanto la versión COMO la fuente de instalación (PyPI frente a git ref). Si el daemon se instaló desde una git ref, apps_venv se sincronizará con la misma referencia.
reachy_mini.utils.wireless_version.update_available.is_update_available
Comprueba si hay una actualización disponible para el paquete dado.
reachy_mini.utils.wireless_version.update_available.get_pypi_version
Obtiene la última versión de un paquete desde PyPI.
reachy_mini.utils.wireless_version.update_available.get_local_version
Obtiene la versión actualmente instalada de un paquete.
Utilidades principales
reachy_mini.utils.create_head_pose
Crea una matriz de transformación homogénea que represente una pose en un espacio 6D (posición y orientación).
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
x | float | Coordenada X de la posición. |
y | float | Coordenada Y de la posición. |
z | float | Coordenada Z de la posición. |
roll | float | Ángulo de roll |
pitch | float | Ángulo de pitch |
yaw | float | Ángulo de yaw |
mm | bool | Si es True, convierte la posición de milímetros a metros. |
degrees | bool | Si es True, interpreta roll, pitch y yaw como grados; en caso contrario, como radianes. |
Devuelve:
np.ndarray — Una matriz de transformación homogénea 4x4 que representa la pose.
Análisis de URDF
reachy_mini.utils.parse_urdf_for_kinematics.get_data
Genera el archivo urdf_kinematics.json.