Tabla de contenido
1 Breve introducción del coche robot
2 Preparación antes de comenzar la prueba y el ejercicio
2.1 Crear y compilar la práctica del paquete de funciones:
2.1.1 Crear una práctica de paquete de funciones:
2.1.2 Compilar la práctica del paquete de funciones:
3.1 Escriba el archivo py del movimiento del automóvil, compile y depure
3.2 iniciar el archivo de inicio con un clic
4 Simular la trayectoria del coche en el simulador
5 Interpretación del análisis de patrones
7 Flujo de algoritmos y análisis de resultados de la ruta de funcionamiento real del automóvil:
8 Ideas de experimentos y experiencia de análisis.
Diseño de control de movimiento de coche robot
1 Breve introducción del coche robot
1.1 Estructura del carro
Este experimento utiliza EPRobot Smart Car. EPRobot Smart Car es una plataforma de aprendizaje personalizada y desarrollada para la programación informática, el desarrollo de robots y el desarrollo de sistemas integrados para diferentes grupos de estudiantes universitarios y de formación profesional superior. EPRobot está desarrollado en base a la última computadora de tarjeta Raspberry Pi 4B, equipada con un controlador de chasis profundamente personalizado, que maximiza las funciones y el rendimiento del automóvil.
A diferencia de los productos en el mercado, el Silane A1 se detiene y se iniciará después de ejecutar el programa de inicio ROS, lo que puede hacer un uso más eficiente de la batería y ahorrar en gran medida el problema de cambiar manualmente el radar.
2 Preparación antes de comenzar la prueba y el ejercicio
Cree un nuevo espacio de trabajo en la máquina virtual o el sistema del automóvil para almacenar el código que se va a probar y ejecutar, y luego cree un paquete de funciones y compile el espacio de trabajo. Para este experimento, usamos Raspberry Pi en el automóvil, y muchas configuraciones relacionadas se configuraron por completo, por lo que usé el espacio de trabajo robot_ws en el automóvil que se compiló y configuró variables de entorno, y creó el paquete de funciones en él. con:
2.1 Crear y compilar la práctica del paquete de funciones:
2.1.1 Crear una práctica de paquete de funciones:
$cd ~/robot_ws/src
$catkin_create_pkg práctica std_msgs roscpp rospy
2.1.2 Compilar la práctica del paquete de funciones :
$cd ~/robot_ws
$catkin_make
#catkin_make -DCATKIN_WHITELIST_PACKAGES="nombre_paquete"
$fuente ~/robot_ws/devel/setup.bash
2.2 Ver mensajes de temas
rosmsg mostrar nav_msgs/Odometría
std_msgs/Encabezado de encabezado
uint32 seq
sello de tiempo
cadena frame_id
cadena child_frame_id
pose de geometría_msgs/PoseWithCovariance
geometric_msgs/Pose pose
geometric_msgs/Posición del punto
flotar64 x
flotar64 años
flotar64z
geometría_msgs/Orientación del cuaternión
flotar64 x
flotar64 años
flotar64z
flotar64 w
float64[36] covarianza
geometría_msgs/TwistWithCovariance giro
geometría_msgs/giro giro
geometría_msgs/Vector3 lineal
flotar64 x
flotar64 años
flotar64z
geometría_msgs/Vector3 angular
flotar64 x
flotar64 años
flotar64z
float64[36] covarianza
3 Análisis de código
3.1 Escriba el archivo py del movimiento del automóvil, compile y depure
3.2 iniciar el archivo de inicio con un clic
Mediante el uso del automóvil, podemos saber que la mayoría de los programas en ejecución en ROS se completan mediante el inicio del sistema, use el software ssh o el comando ssh de la máquina virtual para conectarse al automóvil y luego ingrese el comando a través del terminal remota para ejecutar el archivo de lanzamiento correspondiente para ejecutar el programa correspondiente. Pero en muchos casos, necesitamos que el programa ROS de la Raspberry Pi se ejecute automáticamente cuando se enciende, al igual que un programa de microcomputadora de un solo chip, como aplicar nuestro programa desarrollado a un determinado producto. Por lo tanto, debemos configurar el programa ROS especificado para que se inicie automáticamente al arrancar.
En este experimento, el archivo test.launch se configurará para que se inicie automáticamente al arrancar, principalmente a través de la conexión e intercomunicación entre la MCU y TCP.
<lanzamiento>
<incluir archivo="$(buscar robot_ws)/lanzamiento/EPRobot_start.lanzamiento"/>
<nodo pkg="práctica" nombre="práctica" tipo="prueba.py" salida="pantalla"/>
</lanzamiento>
4 Simular la trayectoria del coche en el simulador
En la simulación, usamos el simulador arbotix + rviz display esta vez.Los comandos principales son los siguientes: Inicie el controlador inferior del automóvil: roslaunch eprobot_start EPRobot_start.launch
Inicie el emulador: roslaunch mbot_description arbotix_mbot_with_camera_xacro.launch (como se muestra en la Figura 3)
Inicie el control del teclado: roslaunch mbot_teleop mbot_teleop.launch
Inicie el archivo py: prueba de práctica rosrun1.py
6 Principio experimental:
El automóvil que usamos esta vez usa el programa Raspberry Pi ros, y el algoritmo de navegación y planificación de rutas que utiliza EPRobot es el algoritmo TEB, que está dirigido al automóvil con la estructura de chasis Ackerman. Si el robot es un automóvil de dirección diferencial circular, se debe usar el algoritmo DWA.
Defina la dirección X1 como la dirección positiva del automóvil, y es el ángulo de dirección del robot. Por lo tanto, un vector tridimensional puede representar completamente la ruta de movimiento del robot y la pose del robot en el plano.
Al hacer un movimiento lineal, y se requiere que el ángulo de dirección del automóvil sea constante durante el movimiento, entonces = 0
La situación de movimiento de arco se muestra en la figura 7, se debe considerar el radio de giro del automóvil y el centro de 0 es el centro instantáneo de la velocidad del automóvil.
Es fácil obtener el estado de movimiento instantáneo del automóvil a partir del conocimiento de la cinemática del cuerpo rígido. A partir de esto, se sabe que la velocidad de la rueda izquierda es menor que la de la rueda derecha o que la velocidad de la rueda derecha es más pequeño que el de la rueda izquierda cuando la rueda derecha se está moviendo, y el centro de masa del robot realiza un movimiento circular.