Mecanumrob model
Contenido
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 tal que el eje es hacia adelante y el eje 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 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
.
- Marco de referencia en tf de la base del robot, se usa al publicar los mensajes de odometría en el topic
~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
.
- Marco de referencia en tf de la odometría, se usa al publicar los mensajes de odometría en el topic
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
.
- Odometría de la base obtenido del filtro de Kalman, de momento solo vuelve a publicar los datos de
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
.
- Marco de referencia en tf de la base del robot, se usa al publicar los mensajes de odometría en el topic
~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
.
- Marco de referencia en tf de la odometría, se usa al publicar los mensajes de odometría en el topic
Provided tf Transforms
~odom_frame_id
→ ~base_frame_id