Bienvenido: Ingresar

Subir página de contenido

Puedes subir contenido para la página con el nombre abajo. Si cambias el nombre de la página, puedes subir contenido para otra página. Si el nombrede la página lo dejas en blanco, tomaremos el nombre del archivo

Archivo de contenido para la página
Nombre de la página
Comentario
En el juego de las bochas, como se llama la mas chiquita?

location: LabElectronica / ControlRomaaIIWeb

Sistema de control de a bordo del robot !RoMAA-II

Objetivos

Modos de funcionamiento

Comunicación

Trama

La trama de petición de datos de la PC de abordo, está representada en el siguiente gráfico:

""

# Es un número entero, que indica la cantidad de bytes que se envian (no se tiene en cuenta el Inicio de Trama).

C Representa los distintos Comandos de Petición de la PC de abordo.

Datos son los datos, los cuales pueden ser, ninguno, 1 char, 2 float (8 char), 3 float (12 char) o 2 int (8 char)

Borrador

La comunicación entre la PC a bordo y el controlador embebido del robot !RoMAA se realiza a través del puerto serie (RS232), utilizando una trama predefinida. La comunicación es del tipo maestro/esclavo, siendo la PC a bordo el maestro y el controlador embebido el esclavo. La trama utilizada varía ligeramente dependiendo si corresponde de un comando enviado de la PC al controlador embebido o si son datos que devuelve el controlador.

La trama de comandos de la PC a bordo al controlador tiene el siguiente formato

el siguiente esquema muestra la trama.

""

La trama enviada por el controlador embebido a la PC no tiene el campo "comando" (3er byte).

Los comandos disponibles se indican en la siguiente tabla

comando

ASCII

hexa

*# bytes de datos*

bytes de datos

descripción

Reset

r

0x72

-

-

Reset general de todas las variables del controlador

Modo de lazo abierto

o

0x6F

-

-

En lazo abierto se controla mediante comandos de PWM

Modo de lazo cross-coupling

c

0x63

-

-

Fija el modo lazo cerrado para comandos de (v,w)

Modo lazo cerrado de motores

f

0x66

-

-

Lazo cerrado de motors (sin cross-coupling), funciona con comandos de vel. de motores

Petición de modo

e

0x65

-

-

Petición del modo actual del funcionamiento

Habilitación de motores

h

0x68

-

-

Habilita los motores, para responder a los comandos

Deshabilitación de motores

H

0x48

-

-

Deshabilita los motores

Fijar PID de los motores

m

0x6D

12

3 números en punto flotante (Kp,Ki,Kd)

Fijar fila las constantes Kp, Ki y Kd de los controladores PID de los motores

Petición de PID de los motores

M

0x4D

-

-

Petición de las constantes Kp, Ki, y Kd de los controladores PID de los motores

Fijar PID del lazo cross-coupling

v

0x76

12

3 números en punto flotante (Kp,Ki,Kd)

Fijar fila las constantes Kp, Ki y Kd de los controladores PID del cross-coupling

Petición de PID de los motores

V

0x56

-

-

Petición de las constantes Kp, Ki, y Kd de los controladores PID del cross-coupling

Fijar velocidad

s

0x73

1.

2 números en punto flotante, (v,w)

Fijar la velocidad lineal y angular del robot

Petición de velocidad

S

0x53

-

-

Petición de la velocidad lineal y angular actual del robot

Fijar velocidad de los motores

w

0x77

1.

2 números en punto flotante (v1,v2)

Fijar velocidad lineal de cada uno de los motores indep.

Fijar PWM

p

0x70

1.

2 números enteros de PWM

Fija el valor de PWM para cada motor (pwm1,pwm2) en modo lazo abierto

Petición PWM

P

0x50

-

-

Petición de los valores de PWM de cada motor

Fijar valores de odometría

y

0x79

12

3 números en punto flotante (x,y,theta)

Fijar valor de odometría, posición y orientación (x,y,theta)

Petición de odometría

Y

0x59

-

-

Petición del valor de odometría (x,y,theta)

Reset de odoemtría

z

0x7A

-

-

Borrar los valores de odometría (x,y,theta)=(0,0,0)

Fijar tiempo de cierre de lazo

t

0x74

1.

Valor de 0-255 en milisegundos

Fijar el tiempo en el que se ejecuta el lazo de control

Petición tiempo de cierre de lazo

T

0x54

-

-

Petición de tiempo de cierre de lazo

Fijar tiempo de logging

l

0x6C

1.

Valor de 0-255 en milisegundos

Fijar el tiempo en que el controlador envía los datos en logging

Petición de tiempo de logging

L

0x4C

-

-

Petición del tiempo de logging de datos

Fijar tiempo de calc. de odom.

x

0x78

1.

Valor de 0-255 en milisegundos

FIjar el tiempo en el que se calcula la odometría

Petición tiempo de calc. de odom.

X

0x58

-

-

Petición del tiempo del cálculo de odometría

Fijar constantes cinemáticas

k

0x6B

1.

2 números en punto floatante (r,b)

Fijar valores cinemáticos, r:radio de la rueda y b:dist. entre ruedas

Petición de const. cinemáticas

K

0x4B

-

-

Petición de valores cinemáticos

Petición de la geometría del robot

G

0x47

-

-

Petición de las dimensiones geométricas del robot (w,l,h)

La trama de datos utilizada por el controlador embebido para responder a los comandos (de petición) de la PC de abordo difiere de la anterior únicamente en la ausencia del tercer byte (byte de comando). Las tramas disponibles son

resp. al comando

*# bytes de datos*

bytes de datos

descripción

Petición del modo de lazo

1

1 byte que indica el modo

modo

Petición de PID de motores

12

3 números en punto flotante

El controlador responde enviando los valores Kp, Ki, y Kd del controlador PID de los motores

Petición de PID de cross-coupling

12

3 números en punto flotante

El controlador responde enviando los valores Kp, Ki, y Kd del controlador PID de cross-coupling

Petición de velocidad

1.

2 números en punto flotante

El controlador responde enviando la velocidad lineal y angular actual del robot

Petición de PWM

1.

2 números enteros

El controlador responde enviando los valores de PWM de cada motor

Petición de odometría

12

3 números en punto flotante (x,y,theta)

El controlador responde enviando el valor de odometría (x,y,theta)

Petición de contadores de encoders

1.

2 números enteros

El controlador responde con las cuentas de los encoder (enc1,enc2)

Petición de vel. lineal de las ruedas

1.

2 números en punto flotante

El controlador responde las velocidades lineales de cada rueda (v1,v2)

Petición de vel. angular de las ruedas

1.

2 números en punto flotante

El controlador responde con las velocidades angulares de cada rueda (w1,w2)

Petición de despl. lineal de las ruedas

1.

2 números en punto flotante

El controlador responde con los despl. lineales de cada rueda (l1,l2)

Comandos

Software embebido

Diagrama de flujo