Mecanumrob roboclaw
Contenido
Nodes
mecanum_base_node.py
Nodo que controla la base del Roboclaw, encapsula la interacción con los controladores Roboclaw.
Para mantener el estándar con el modelo cinemático del MecanumRob, el vector de velocidad de las ruedas se define con el siguiente orden: (NE, NW, SW, SE). Además se define el vector de signo de la misma dimensión para el cálculo de velocidad angular de las ruedas, de modo que un valor positivo se define según la ley de la mano derecha visto del frente del robot, (una rueda que avanza tiene velocidad positiva). Esto se hace para mantener la consistencia externa de , de modo que si una medición tiene un signo incosistente, se cumpla que .
El nodo tiene dos modos de funcionamiento: por controlador PID con una referencia de la velocidad angular deseado, o directamente por comandos PWM. El funcionamiento lo determina el parámetro ~pid_mode
Subscribed Topics
cmd_wheels
(mecanumrob_common/WheelSpeed)
- Comandos de velocidad para las ruedas de la base (rad/s).
motor/NE_pwm
(std_msgs/Int8)
- Comandos PWM para el motore NE.
motor/NW_pwm
(std_msgs/Int8)
- Comandos PWM para el motore NW.
motor/SE_pwm
(std_msgs/Int8)
- Comandos PWM para el motore SE.
motor/SW_pwm
(std_msgs/Int8)
- Comandos PWM para el motore SW.
Published Topics
wheel_speed
(mecanumrob_common/WheelSpeed)
- Velocidad de las ruedas (rad/s).
encoders
(mecanumrob_common/EncTimed)
- Publica el valor de los encoders.
pwm
(mecanumrob_common/EncTimed)
- Publica la acción de los motores (valor PWM).
Parameters
~pid_mode
(bool, default: true)
- Indica si se usa el control PID o si se toman directamente valores de PWM.
~baudrate
(int, default: 115200)
- Tasa de baudios para la conexión serial con los Roboclaw (baud/s).
~port_front
(string, default: "/dev/ttyACM0")
- Dispositivo Robloclaw que controla los motores delanteros.
~port_back
(string, default: "/dev/ttyACM1")
- Dispositivo Robloclaw que controla los motores traseros.
~frame_id
(string, default: "base_link")
- Marco de referencia tf de la base.
~ppv
(double, default: 4775)
- Pasos por vuelta del encoder.
~w_max
(double, default: 31.4)
- Velocidad angular máxima permitida para los motores (rad/s)
~rate
(dobule, default: 60.0)
- Frecuencia de publicación de los mensajes de velocidad de las ruedas (Hz).
~Kp
(double, default: 10.5932)
- Ganancia proporcional del controlador PID.
~Ki
(double, default: Kp/0.2445)
- Ganancia integral del controlador PID.
~Kd
(double, default: 0.0)
- Ganancia derivativa del controlador PID.
~sign_0
(int, default: 1)
- Signo de rotación de la rueda
~sign_1
(int, default: 1)
- Signo de rotación de la rueda
~sign_2
(int, default: 1)
- Signo de rotación de la rueda
~sign_3
(int, default: 1)
- Signo de rotación de la rueda