Mecanumrob model

De Cerlab Wiki
Saltar a: navegación, buscar

Nodes

model_node.py

Este nodo modela la cinemática del MecanumRob.

Se usa el modelo cinemático directo para determinar la pose en el marco de referencia global, a partir de las velocidades de las ruedas. Se define el marco de referencia del robot R = (X_r,\; Y_r,\; Z_r) tal que el eje X_r es hacia adelante y el eje Y_r es hacia la izquierda. Además se usa el modelo cinemático inverso para calcular velocidades de las ruedas a partir de comandos de velocidad (\dot{x},\; \dot{y},\; \dot{\theta}) en el marco de referencia R.

Subscribed Topics

wheel_speed (mecanumrob_common/WheelSpeed)

Topic donde se reciben velocidades de las ruedas para calcular la odometría.

cmd_vel (geometr_msgs/Twist)

Topic donde se reciben comandos de velocidad para el movimiento de la base.

Published Topics

cmd_wheels (mecanumrob_common/WheelSpeed)

Publica velocidades de las ruedas para obtener el movimiento deseado.

wheel_odom (nav_msgs/Odometry)

Publica la odometría obtenida del modelo cinemático directo.

pose_kinematic (geometr_msgs/Pose2D)

Publica la odometría obtenida del modelo cinemático directo.

Parameters

~radius (double, default: 0.1015)

Radio de las ruedas en metros.

~la (double, default: 0.2940558)

Distancia del eje de las ruedas en al centro del robot sobre el eje Y en metros.

~lb (double, default: 0.21032724)

Distancia del eje de las ruedas en al centro del robot sobre el eje X en metros.

~a11 (double, default: 1.0)

Componentes de la matriz de corrección.

~a22 (double, default: 1.0)

Componentes de la matriz de corrección.

~a33 (double, default: 1.0)

Componentes de la matriz de corrección.

~cmd_timeout (double, default: 0.5)

Timeout de comandos de velocidad en segundos. Luego de este tiempo sin recibir comandos de velocidad la misma se pone en cero.

~base_frame_id (string, default: "base_link")

Marco de referencia en tf de la base del robot, se usa al publicar los mensajes de odometría en el topic wheel_odom.

~odom_frame_id (string, default: "wheel_odom")

Marco de referencia en tf de la odometría, se usa al publicar los mensajes de odometría en el topic wheel_odom.

ekf.py

Este nodo publica la transformación del marco de referencia de la odometría a la base del robot.

Eventualmente también tendrá un filtro de Kalman para hacer fusión sensorial de los datos de odometría de las ruedas con los datos del acelerómetro y giroscopio.

Subscribed Topics

wheel_odom (nav_msgs/Odometry)

Datos de odometría obtenidos con el modelo cinemático a partir de la velocidad de las ruedas.

imu_data/raw (sensor_msgs/Imu)

Datos del acelerómetro y giroscopio.

imu_data/mag (sensor_msgs/MagneticField)

Datos del magnetómetro.

Published Topics

odom (nav_msgs/Odometry)

Odometría de la base obtenido del filtro de Kalman, de momento solo vuelve a publicar los datos de wheel_odom.

ekf_imu (sensor_msgs/Imu)

Datos del acelerómetro y giroscopio usados para el último cálculo del filtro de Kalman.

ekf_mag (sensor_msgs/MagneticField)

Datos del magnetómetro usados para el último cálculo del filtro de Kalman.

Parameters

~base_frame_id (string, default: "base_link")

Marco de referencia en tf de la base del robot, se usa al publicar los mensajes de odometría en el topic wheel_odom.

~odom_frame_id (string, default: "odom")

Marco de referencia en tf de la odometría, se usa al publicar los mensajes de odometría en el topic wheel_odom.

Provided tf Transforms

~odom_frame_id~base_frame_id