Lanzamiento de ROS en el robot de autoequilibrio EduMIP

Introduccion


Esta publicación proporciona instrucciones para instalar y ejecutar el sistema operativo del robot (ROS) en el robot móvil EduMIP. EduMiP es un robot de autoequilibrio construido alrededor de un BeagleBone Black con un microprocesador incorporado y un cabo de robótica Beaglebone Black desarrollado por James Strawson y el profesor Thomas Bewley en coordinación con el Laboratorio de robótica coordinada de la UCSD y su personal. BeagleBone Blue, lanzado recientemente a mediados de 2017, combina las características de BeagleBone Black y Robotics Cape en una sola placa. El profesor Bewley utiliza este robot en su curso MAE144 - Control integrado y robótica en el Departamento de Ingeniería Mecánica y Aeroespacial UCSD.
Respondo preguntas en los comentarios.

Lista de componentes


Tenga en cuenta que necesita un Baglebone Blue o cada uno de Beaglebone Black y Robotics Cape.

  • Beaglebone Blue (BBBL) : lanzado recientemente a mediados de 2017, combina las características de BeagleBone Black y Robotics Cape en una computadora de placa única.

  • Beaglebone Black (BBB) : plataforma de bajo costo compatible con la comunidad para desarrolladores y aficionados, con un procesador AM335x 1 GHz ARM Cortex, 512 MB DDR3 RAM, 4 GB emmc de 8 bits a bordo.
  • Robotics Cape (BBB-RC) : Beaglebone Black Robotics Cape es una placa de E / S para Beaglebone Black que proporciona múltiples sensores y un rico soporte de hardware, que incluye lo siguiente:

    • Sensores:

      • IMU de 9 ejes
      • Barómetro
    • E / S:

      • 4 codificadores cuadráticos
      • 4 motores de puente H
      • 8 salidas Servo / ESC
      • Interfaz de radio RC DSM estándar
      • I2C UART ADC SPI GPIO PWM
      • Controlador de carga de batería de polímero de litio

  • Kit EduMIP : el kit consta de motores de CC, engranajes, codificadores, ruedas, piezas de plástico, cables y sujetadores.
  • Tarjeta Micro-SD : una tarjeta micro-SD de al menos 8 GB de tamaño.
  • Imagen Ubuntu 16.04 LTS para BeagleBone Black and Blue : j Imagen cortesía de Robert Nelson, Jeff O'Brian aquí . Esta imagen contiene ROS Kinetic con ROS preinstalado, como una estación de trabajo ros catkin con paquetes básicos de EduMIP ros con paquetes preinstalados. Aquí hay dos imágenes de Ubuntu, asegúrese de estar usando la imagen correcta:

    • Utilice esta imagen para BragleBonbne Blue:

      2018_02_03_beaglebone_blue_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip
    • Utilice esta imagen para BeagleBone Black Wireless + Robotics Cape:

      2018_02_03_beaglebone_black_wireless_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip

    Una imagen de 8 GB se comprime en un archivo zip de 2.5 GB. NO NECESITA DESEMBALAR UN ARCHIVO ZIP. El programa (Etcher) puede descomprimirlo sobre la marcha.
  • Memoria USB : útil para tutoriales en el curso de programación de sistemas de robots. Un buen modelo económico es el Logitech Gamepad F310

Montaje y prueba del kit EduMIP (parte del trabajo del curso de programación de sistemas robóticos # 3)


Cree y pruebe EduMIP de la siguiente manera. Ten cuidado Se gentil.

1. EduMIP Build : siga las instrucciones paso a paso de compilación de EduMIP que se proporcionan aquí .

Mira mi video de montaje en ruso:


2. Algunas notas adicionales:

  • Documentación adicional está disponible aquí.
  • Si está utilizando BEAGLEBONE BLACK + ROBOTIC CAPE, NO MEZCLE LA ALIMENTACIÓN + 5V y + 9V: BBB tiene un conector de alimentación para + 5V. Robotics Cape tiene un conector de alimentación de ballel idéntico para + 9V. El infierno
  • No conecte la fuente de alimentación de + 9V directamente al conector de + 5V en el resultado BBB será un BBB muerto.
  • Apague la alimentación cuando no esté usando el robot: cuando no esté usando EduMIP o cargando la batería:

    Desconecte el cable de carga de 12V de EduMIP
    Antes de transportar el robot Desconecte la batería del cabo de robótica.
  • NO DAÑE los conectores del motor y el CODIFICADOR: los conectores de capa robótica para codificadores y motores son muy pequeños.

Configuración de Beaglebone Black / Blue y EduMIP (parte de la tarea del curso ROS # 3)


Configure su Beaglebone Blue para usarlo en EduMIP de la siguiente manera.

1. Verifique su placa BeagleBone Blue / Black: antes de ensamblar edumip, pruebe su placa azul beaglebone: viene con Debian Jessie instalada en su unidad flash interna de 4GB.

  1. Sigue las instrucciones aquí . Para instalar las reglas de udev en su PC con Linux. Use esta página solo para descubrir cómo proteger las reglas UDEV en su PC LINUX, ignore todo lo demás.
  2. Después de instalar las reglas udev apropiadas en su computadora Linux, establecerá una conexión Ethernet a BBB a través de la conexión USB a través del adaptador Ethernet virtual usb0. Su computadora host estará en la dirección IP 192.167.7.1, y BBB estará en 192.168.7.2. SSH desde la computadora host al BBB "ssh debian@192.168.7.2". La contraseña predeterminada para "debian" es "temppwd".
  3. Cada vez que termine de trabajar con BBBL y esté listo para apagarlo, no lo apague, ejecute el comando "sudo poweroff" para apagar Linux y apagar la placa. Después de que se apagan todos los LED de la placa, es normal desconectar el cable USB.

2. Instale y pruebe la imagen de Linux LTS Ubuntu 16.04 de 8 gb con soporte ROS y BBBL / EduMIP en su BBBL : creamos una imagen Ubuntu de 8 gb que tiene soporte cinético ros y BBBL. Su kit EduMIP tiene una tarjeta Micro-SD en blanco de 32 GB o 64 GB.

  1. Descargue: La imagen preparada de Ubuntu 16.04 para soporte ARM para BBBL y ROS, consulte más arriba las instrucciones tituladas "Imagen Ubuntu 16.04 LTS para beaglebone negro y azul".
  2. No es necesario descomprimir la imagen archivada.
  3. Descarga Etcher: descarga e instala Etcher en tu computadora con etcher.io -Etcher es un programa para escribir imágenes de disco en tarjetas SD.
  4. Grabe la imagen del disco en la tarjeta micro-SD.
  5. Inserte cuidadosamente la tarjeta micro SD: inserte la tarjeta micro SD en la ranura para tarjetas micro SD y beaglebone. NO LO REEMPLACE; PROPORCIONA SOLO UN TOQUE SUAVE PARA INSTALAR.
  6. Descárgalo! Descargue BBBL desde una imagen de tarjeta Micro-SD conectándola a una computadora con un cable USB.
    1. Si la tarjeta Micro-SD contiene una imagen de inicio, BBBL se iniciará desde ella y no desde su unidad flash incorporada.
    2. SSH en BBBL ("ssh ubuntu@192.168.7.2" con la contraseña "temppwd") y asegúrese de que realmente esté trabajando en una imagen de 32 GB. El comando df -h debe mostrar al menos 2 GB de espacio libre, y el comando htop debe mostrar 1 GB del archivo de paginación activo.

3. Prueba EduMIP : verifique EduMIP iniciando sesión como usuario de ubuntu con la contraseña "temppwd" de la siguiente manera:

  1. Nota sobre los mensajes de error : la última versión de la biblioteca roboticscape, que se carga en la imagen de Ubuntu que estamos utilizando, tiene algunos errores de PRU que muestran el mensaje de error "ERROR: falta el controlador pru-rproc" al invocar bibliotecas roboticscape para acceder al hardware BBBL Podemos ignorar esta advertencia, se solucionará en una versión posterior. Espere ver una de estas advertencias cuando ejecute programas como rc_balance, rc_test_encoders, edumip_balance_ros, etc.

    Aquí hay un ejemplo de este mensaje de error:

    ubuntu@arm:~$ rc_test_imu ERROR: pru-rproc driver missing try 'test_imu -h' to see other options Accel XYZ(m/s^2) | Gyro XYZ (rad/s) | Mag Field XYZ(uT) | Temp (C) 0.23 -3.06 9.72 | 0.0 -0.0 -0.0 | 22.9 -4.1 -54.9 | 37.9 
  2. Prueba del codificador : ejecute el comando rc_test_encoders y gire un poco las ruedas; verá los codificadores E2 y E3 que muestran el cambio en el número de revoluciones.
  3. Prueba del motor : ejecute el comando "rc_test_motors-D 0.1": cuando levante el EduMIP, las dos ruedas deben girar en direcciones opuestas.
  4. Calibración del giroscopio : coloque el EduMIP sobre la mesa, quieto, y ejecute el comando rc_calibrate_gyro y siga las instrucciones. Este programa de calibración escribe la calibración del giroscopio en /var/lib/roboticscape/gyro.cal
  5. Prueba de giroscopio : ejecute el comando "rc_test_imu" y asegúrese de que los datos "Gyro XYZ (rad / s)" sean iguales a cero (o casi cero).
  6. Calibración del magnetómetro : ejecute el comando "rc_calibrate_mag" y siga las instrucciones: se le pedirá que sostenga el EduMIP en su mano y lo gire (gire) en todas las orientaciones. Este programa de calibración escribe el archivo de calibración del magnetómetro /var/lib/roboticscape/mag.cal
  7. Prueba de magnetómetro : ejecute el comando rc_test_imu y verifique que los datos del campo magnético XYZ (uT) no sean cero. La magnitud del vector de campo magnético de la Tierra en Baltimore y Woods Hole es de alrededor de 52uT, pero no se preocupe si su magnetómetro parece estar un poco apagado.

    Puede averiguar la latitud, la longitud y la intensidad del campo magnético de Baltimore ingresando su código postal en esta página web .
  8. Prueba de equilibrio EduMIP : ejecute el comando "rc_balance" y ponga el robot en marcha. Su robot debe equilibrarse en su lugar.



4. Prueba de ROS en BBBL

  1. Verifique el archivo .bashrc. Al final, el archivo debe tener los siguientes comandos en el siguiente orden:
    En primer lugar, el comando "source /opt/ros/kinetic/setup.bash" para configurar las variables de entorno ROS.
    En segundo lugar, el comando "source ~ / catkin_ws / devel / setup.bash" para agregar el espacio de trabajo local catkin al entorno ROS (esto se denomina "superposición de espacio de trabajo").
  2. Ejecute el comando "source .bashrc" para configurar las variables de entorno ROS. Compruébelos con el comando printenv / grep ROS.
  3. Asegúrese de que puede ejecutar roscore y otras utilidades ROS.
  4. Asegúrese de que puede ejecutar "catkin_make" en el espacio de trabajo de BBBL ROS.
  5. Imagen verificada

5. Actualice y pruebe el programa de balance ROS EduMip :

  1. Si aún no lo ha hecho, calibre el giroscopio EduMIP con el comando "rc_calibrate_gyro" mientras el robot todavía está sobre la mesa.
  2. Inicie sesión en EduMIP con el nombre de usuario "ubuntu" y la contraseña "temppwd"
  3. Configure Wi-Fi en EduMIP: configure su Wi-Fi para que pueda clonar paquetes ROS desde nuestro repositorio git.
  4. Si instaló la imagen Ubuntu 16.04 preinstalada como se describió anteriormente, ya tendrá los paquetes "edumip_msgs" y "edumip_ros_balance" en el directorio de origen de catkin worskace, es decir, ~ / catkin_ws / src / edumip_msgs y ~ / catkin_ws / src / edumip_balance_ros. Actualice el paquete edumip_balance_ros con el comando "cd ~ / catkin_ws / src / edumip_balance_ros" y "git pull" para descargar el último código para este paquete. Si aparece el mensaje de error "error: los cambios locales en los siguientes archivos se sobrescribirán mediante fusión:

    src / edumip_balance_ros.cpp Por favor, confirme los cambios o guárdelos antes de poder fusionarlos ", luego elimine el archivo src / edumip_balance_ros.cpp que interfiere y" git pull "nuevamente.
  5. Si sus edumip_msgs y edumip_balance_ros aún no están en el directorio src del espacio de trabajo catkin de su EduMIP (debería ser ~ / catkin_ws / src ), entonces clone estos dos paquetes ROS en ~ / catkin_ws / src ):
    1. El paquete edumip_msg define el tipo de mensaje personalizado edumip_msf / EduMipState para EduMIP. Este paquete no contiene código fuente, solo la definición de mensajes y comunicación CMakeLists.txt y package.xml. Si su computadora necesita acceder a este tipo de mensaje, también debe clonar el proyecto en su computadora. Este paquete es independiente de la arquitectura. Este paquete puede ser clonado por git desde esta URL pública .
    2. El paquete edumip_balance_ros contiene el nodo de edumip_ros_node C ++ ROS.cpp, que es una versión del programa ROS-ified rc_balance. La imagen de Linux que le proporcionamos ya tiene instalados los controladores Robotics Cape y ROS. Este paquete puede ser clonado por git desde esta URL pública .
  6. Cree estos dos paquetes utilizando el comando catkin_make en el directorio principal del espacio de trabajo catkin.
  7. Verifique que ROS ahora sepa sobre los mensajes de usuario definidos en el paquete edumip_msgs con el comando: rosmsg show edumip_msgs / EduMipState
  8. Abra dos sesiones ssh remotas en EduMIP:

    Primero, en el primer shell ejecute "roslaunch edumip_balance_ros edumip_balance_ros"
    En segundo lugar, en el segundo shell, vea los temas ros e imprima los temas / edumip / state.
    Pon tu robot, debe equilibrarse.

6. Apague el BBBL correctamente : cuando haya terminado y esté listo para apagar el BBBL, no lo apague simplemente, ejecute el comando "sudo poweroff" para apagar Linux y apague la placa. Después de que todos los LED de la placa se apaguen, puede desconectar el cable USB.

Algunas notas útiles de Linux para BBB y BBBL


  • Los editores emacs y nano ya están instalados en la imagen de Linux BBB provista para este tutorial.
  • La utilidad de Linux "localizar" no está instalada de manera predeterminada, pero puede instalarla usando "sudo apt-get install localizar" e inicializar la base de datos de localización con el comando "sudo updatedb" (toma varios minutos).
  • El servidor de hora NTP está instalado en la imagen de Linux BBB proporcionada para esta lección, pero solo se sincronizará si BBB tiene una ruta a Internet, por ejemplo, cuando su WIFi está encendido. La conexión de red USB a una computadora por defecto no se enruta a Internet. Puede verificar el estado de ntp utilizando el comando ntpq-p.

Notas sobre la configuración de BeagleBone Black (BBB) ​​y beaglebone Blue (BBBL) con Ununtu 16.04 y ROS


(Se enumeran aquí solo como referencia y no deberían ser pasos necesarios para completar la tarea 3).

Conecte su PC a BBB a través de USB

  • Sigue las instrucciones aquí.
  • Después de instalar los controladores adecuados o las reglas de udev en la computadora host, establecerá una conexión Ethernet con BBB a través de la conexión USB a través del adaptador Ethernet virtual usb0. Su computadora host estará en la dirección IP 192.167.7.1, y BBB será 192.168.7.2. SSH desde la computadora host al BBB "ssh ubuntu@192.168.7.2". La contraseña predeterminada para ubuntu es temppwd.

Cómo establecer una conexión Ethernet con DNS y una ruta a Internet externo
WiFi (BBBL, BBB Wireless, BBB Classic + USB WiFi Adapter):

  • WiFi en un santiamén : siga las instrucciones para connmanctl que figuran en los comentarios en el archivo / etc / network / interfaces. Para leer comentarios, use el comando cat / etc / network / interfaces.
  • Nota : connmanctl no admite redes corporativas como hopkins, pero sí admite redes WPA / WPA2.
  • Nota : cuando se carga el adaptador BBBL WiFi no siempre es correcto. Si no ve "wlan0" en la salida del comando ifconfig, intente habilitar BBBL manualmente como wlan0 interfce usando el comando "ifconfig wlan0 up". Entonces debería ver wlan0 en la salida del comando ifconfig.
  • Ifconfig : utilice el comando ifconfig para ver todas las interfaces de red configuradas (LAN, WiFi, USB, etc.) en su máquina.
  • Iwconfig : use el comando "iwconfig" para ver todas las interfaces de red WiFi configuradas en su computadora.
  • Quien soy yo La forma más fácil de determinar la dirección (o direcciones) IP de una máquina Linux es iniciar sesión y usar el comando ifconfig.
  • ¡Día de marmota Wifi! Desafortunadamente, BBBL actualmente no recuerda la configuración de WiFi.

La conexión WiFi preferida debe ser como BBBL y su computadora está conectada al mismo punto de acceso Wi-Fi, por lo que puede acceder a BBBL desde su computadora, y su BBBL tiene acceso a Internet para repositorios git, etc.

También puede conectarse directamente a BBBL utilizándolo como un punto de acceso Wi-Fi conectando su computadora a la red Wi-Fi BeagleBone-XXXX, donde XXXX es exclusivo de su BBBL. La contraseña de WiFi es "BeagleBone". Esta es una conexión simple, pero ni BBBL ni su computadora tendrán acceso a Internet para repositorios git, etc. Después de conectarse, su computadora tendrá una dirección IP de 192.168.XXX.XXX La dirección IP de BBBL será 192.168.XXX.1

Actualización de su distribución de Ubuntu BBBL

En BBB, ejecute los comandos Linux sudo apt update Y sudo apt dist-upgrade Linux

Instalación del software Robotics Cape en BBBL

  • El soporte de Robotics Cape / BBBL ya está disponible en la imagen de Ubuntu preconfigurada para BBBL descrita anteriormente, no necesita reinstalarla.
  • Instalación binaria en Ubuntu 16.04 en ARM: "sudo apt-get install roboticscape"
  • Instalación desde la fuente

Desea instalar una copia del código fuente de la capa de robótica y el código de muestra en su BBB. Está disponible aquí Instalar una copia en el directorio de inicio:

"Cd ~"
"Git clone github.com/StrawsonDesign/Robotics_Cape_Installer.git "

Ahora puede ver el código fuente de la capa de robótica y seguir las instrucciones para compilar e instalar la biblioteca de capa de robótica y los programas de muestra.

Instalar paquetes básicos de ROS para EduMIP

Clone estos dos repositorios git en su directorio ~ / catkin_ws / src:


cd a ~ / catkin_ws y recolecte los paquetes "catkin_make".

Para ejecutar el nodo edumip_balance_ros, el programa necesita privilegios de root. Quizás la forma más fácil de hacer esto es cambiar los permisos y la propiedad del binario compilado utilizando estos dos comandos (en ese orden) después de compilarlo:

  • raíz sudo chown: root ~ / catkin_ws / devel / lib / edumip_balance_ros
  • sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros

Ejecute el nodo ROS edumip_balance_ros " roslaunch edumip_balance_ros edumip_balance_ros.launch ". El robot se equilibrará, recibirá mensajes de velocidad de giro del comando topic / edumip / cmd y publicará su estado en el tema topic / edumip / state ROS

Si no puede encontrar el archivo de inicio edumip_balance_ros.launch en el directorio ~ / catkin_ws / src / edumip_balance_ros / launch, necesita "git pull" la última versión de este paquete, como se describe anteriormente, y recompilar la fuente con "catkin_make".

Consulte la asignación de la tercera semana en la página web de este curso para obtener más información sobre el uso de estos respaldos de ROS: Asignación de la semana 3 de programación de sistemas de robots

Notas sobre cómo iniciar EduMIP con ROS


¿Por qué recibo errores de permisos al ejecutar edumip_balance_ros y cómo puedo solucionarlo?
Lea esto si obtiene errores como "no se puede abrir:

/ sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: Permiso denegado "al ejecutar edumip_balance_ros.

Al compilar el proyecto edumip_balance_ros en edumip con catkin_make, compile el archivo ejecutable:

"~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros"
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
total 272
-rwxrwxr-x 1 ubuntu ubuntu 278292 18 de febrero 18:48 edumip_balance_ros

Tenga en cuenta que el propietario y el grupo del archivo son ubuntu: ubuntu, y que es ejecutable ("-rwxrwxr-x").

Cuando intente ejecutar este archivo compilado recientemente, obtendrá errores de permiso, como se muestra a continuación:
ubuntu @ arm: ~ / catkin_ws $ roslaunch edumip_balance_ros edumip_balance_ros.launch
... iniciando sesión en /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2845.log
Comprobando el directorio de registro para el uso del disco. Esto puede llevar un tiempo.
Presione Ctrl-C para interrumpir
Hecho la comprobación del uso del disco del archivo de registro. El uso es <1 GB.

comenzó el servidor roslaunch 192.168.10.102 : 37365 /

RESUMEN
========

PARAMETROS
* / rosdistro: cinético
* / rosversion: 12.1.12

NODOS
/ /
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)

ROS_MASTER_URI = http: //192.168.10.101: 11311

proceso [edumip_balance_ros_node-1]: comenzó con pid [2874]
[INFO] [1518979862.674565427]: Archivo /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp compilado el 3 de febrero de 2018 19:38:02.
no se puede abrir: / sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: permiso denegado
no se puede abrir: / sys / devices / platform / ocp / ocp: C18_pinmux / state
Pinmux: permiso denegado
no se puede abrir: / sys / devices / platform / ocp / ocp: U16_pinmux / state
Pinmux: permiso denegado
no se puede abrir: / sys / devices / platform / ocp / ocp: D13_pinmux / state
Pinmux: permiso denegado
no se puede abrir: / sys / devices / platform / ocp / ocp: J15_pinmux / state
Pinmux: permiso denegado
no se puede abrir: / sys / devices / platform / ocp / ocp: H17_pinmux / state
Pinmux: permiso denegado
ADVERTENCIA: falta el controlador PINMUX
Probablemente solo necesites un kernel más nuevo
No se puede abrir / dev / mem
mmap_gpio_adc.c no pudo inicializar gpio
[INFO] [1518979862.806645002]: ERROR: no se pudo inicializar la capa.
El proceso [edumip_balance_ros_node-1] ha muerto [pid 2874, código de salida 255, cmd / home / ubuntu / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros __name: = edumip_balance_ros_node __log: = / home / ubuntu / dd. 14dc-11e8-b293-dc5360d671c6 / edumip_balance_ros_node-1.log].
archivo de registro: /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/edumip_balance_ros_node-1*.log
Todos los procesos en la máquina han muerto, Roslaunch saldrá
apagando el monitor de procesamiento ...
... apagando el monitor de procesamiento completo
hecho

El problema aquí es que su ejecutable debe ejecutarse como root, y no como un usuario normal, para acceder a los registros de hardware de BeagleBone.

Después de compilar edumip_ros_balance, puede cambiar los permisos ejecutables de la raíz (sudo chown root: root <nombre de archivo>) y establecer su bit fijo (sudo chmod u + s <nombre de archivo>) ejecutando el siguiente script:

"~ / catkin_ws / src / edumip_balance_ros / scripts / edumip_change_perms.sh"

Si observa este script de shell, verá que ejecuta estos dos comandos:
raíz sudo chown: root ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros
sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros

Después de ejecutar este script (le pedirá la contraseña de sudo), los permisos y grupos del archivo ejecutable se cambiarán de ubuntu: ubuntu a root: root, y se instalará su bit adhesivo (los permisos fueron previamente "- rwxrwxr-x" y se convirtieron en "- rwsrwxr -x "):
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
total 272
-rwsrwxr-x 1 raíz root 278292 18 de febrero 18:48 edumip_balance_ros

Ahora, cuando ejecutas edumip_balance_ros, debería funcionar bien, como se muestra a continuación:

ubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.launch
ubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.launch
... iniciando sesión en /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2099.log
Comprobando el directorio de registro para el uso del disco. Esto puede llevar un tiempo.
Presione Ctrl-C para interrumpir
Hecho la comprobación del uso del disco del archivo de registro. El uso es <1 GB.

inició el servidor roslaunch 192.168.10.102 : 34253 /

RESUMEN
========

PARAMETROS
* / rosdistro: cinético
* / rosversion: 12.1.12

NODOS
/ /
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)

ROS_MASTER_URI = http: //192.168.10.101: 11311

proceso [edumip_balance_ros_node-1]: comenzó con pid [2108]
[INFO] [1518981653.978399507]: Archivo /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp compilado el 3 de febrero de 2018 19:38:02.
ERROR: falta el controlador pru-rproc
[INFORMACIÓN] [1518981654.104574860]: Controlador de bucle interno D1:

orden: 2
paso de tiempo dt: 0.0100
-4,9450z² + 8,8620z + -3,9670
- 1.0000z² + -1.4810z + 0.4812
[INFORMACIÓN] [1518981654.107474727]:
Controlador de bucle externo D2:

orden: 2
paso de tiempo dt: 0.0100
0.1886z² + -0.3721z + 0.1835
- 1.0000z² + -1.8605z + 0.8605
[INFORMACIÓN] [1518981654.573431369]:
Mantenga su MIP en posición vertical para comenzar a equilibrar

ROS no puede encontrar mi paquete ROS

Si en su entorno ROS no entiende que tiene paquetes nuevos en catkin_ws / src, intente actualizar su perfil rospack con el comando rospack profile y actualice el caché rosdep con el comando rosdep update.

Compilación y enlace a las bibliotecas Robotics Cape "C"

La biblioteca Robotics Cape viene preinstalada en la imagen de Ubuntu 16.04, disponible en el enlace proporcionado anteriormente en esta página. Se instaló usando el comando sudo apt-get install roboticscape.

La biblioteca de capa de robótica y los archivos de encabezado relacionados ya están instalados en EduMIP. Enlace a las bibliotecas /usr/lib/libroboticscape.so, y dos archivos de encabezado de nivel superior rc_usefulincludes.h y roboticscape.h.

Puede consultar el proyecto edumip_balance_ros para aprender a usar los archivos de encabezado C de capa robótica y la biblioteca de enlaces C con el nodo C ++ ROS.

Consulte edumip_balance_ros / src / edumip_balance_ros.cpp para ver cómo incluir archivos de encabezado C en un programa C ++ con directiva externa "C".

Consulte edumip_balance_ros / CMakeLists.txt para saber cómo vincular su programa a la biblioteca roboticscape C.

Paquete Edumip_balance_ros

  • Para compilar el paquete edumip_balance_ros , también debe instalar el paquete edumip_msgs .
  • El paquete edumip_balance_ros no se compilará en su computadora, es solo para compilar en EduMIP.

Configuración horizontal EduMIP

Varios equipos de estudiantes utilizaron EduMIP en una configuración horizontal con una rueda giratoria.


Para hacer esto, deberá reemplazar el proyecto "edumip_balance_ros" con su propio código nuevo para controlar los motores de las ruedas, así como para leer y publicar codificadores de ruedas. Y ayer examiné en el aula uno de los paquetes posibles, puedes usar el paquete ROS de diferencial_unidad (http://wiki.ros.org/differential_drive). Para usar el paquete diferencial_unidad, necesita escribir un nuevo nodo C ++ para edumip, que (a) lee los codificadores de rueda y los publica por tema y (b) se suscribe a los temas de comandos de motor y comandos de voltaje para motores de rueda.







Dispositivos de puerto serie

Para interactuar con los sensores en un puerto serie, como un sensor ultrasónico USB demostrado en clase, deberá poder abrir, leer y enviar a través de puertos serie.




Buen paquete para este paquete serial ROS . Puede instalarlo "sudo apt-get install ros-kinetic-serial".

Ejemplo simple aquí

Se puede clonar una copia de src en el espacio de trabajo ROS utilizando el comando git clone github.com/wjwwood/serial.git y compilar utilizando catkin_make. El directorio de ejemplos contiene ejemplos más complejos del uso del puerto serie con el paquete serie.

Tenga en cuenta que este paquete ros llamado "serial" no es un paquete "rosserial". El paquete "serial" es una biblioteca liviana de uso general para leer y enviar datos en puertos seriales. "Rosserial" es un paquete para emparejar dispositivos pequeños como Arduino a medida que crecían los nodos.

Adición del traductor:

Agregué mis fotos y videos al artículo, así como fotos de los trabajos de los estudiantes. En general, solo esta instrucción es suficiente para ejecutar, solo es deseable tener al menos una experiencia mínima en la línea de comandos de Linux y una comprensión básica de la arquitectura ROS. Los guiones del robot están escritos en C.

Puedes hacer preguntas en los comentarios, leo y respondo.

Source: https://habr.com/ru/post/es413677/


All Articles