Kobuki real
Instalación
Instalación de Noetic
Usamos esta versión en Ubuntu 20.04
sudo apt install ros-noetic-kobuki-*
sudo apt install libsdl1.2-dev libsdl-image1.2-dev
sudo apt install ros-noetic-navigation
sudo apt install ros-noetic-ecl-streams
En un espacio de trabajo dedicado a la kobuki clonar los repositorios siguientes:
git clone --branch kinetic-develhttps://github.com/ros-perception/ar_track_alvar.gitgit clone https://github.com/yujinrobot/yocs_msgs.git
git clone https://github.com/yujinrobot/yujin_ocs
De este repo, entrar a yujin_ocs y borrar los directorios que inician con 'ar', sirven para leer códigos ar, pero no los vamos a usar de momento.
git clone https://github.com/yujinrobot/kobuki.git
git clone https://github.com/yujinrobot/kobuki_soft.git
En la línea 5 del archivo kobuki_soft/kobuki_softnode/lauch/full.launch, cambiar $(find xacro)/xacro.py por $(find xacro)/xacro . Si no se hace, aparecerá en el error siguiente cuando intente ejecutarse roslaunch kobuki_softnode full.launch:
RLException: Invalid <param> tag: Cannot load command parameter [robot_description]: no such command [['/opt/ros/noetic/share/xacro/xacro.py', '/media/blackzafiro/74e557c6-b247-4ff8-bf25-9e3d48232f48/home/blackzafiro/ROS/catkin_ws/src/kobuki/kobuki_description/urdf/kobuki_standalone.urdf.xacro']].
Param xml is <param name="robot_description" command="$(arg urdf_file)"/>The traceback for the exception was written to the log file
En el archivo kokuki.urdf.xacro asegurarse que al final esté la línea con el prefijo xacro:
<!-- Kobuki Gazebo simulation details -->
<xacro:kobuki_sim/>En el archivo kobuki_standalone.urdf.xacro asegurarse que <kobuki/> sea <xacro:kobuki/>.
Compilar con catkin_make.
Espacio de trabajo
Para que catkin no recompile el código de la kobuki cada vez que compilemos los paquetes que vamos a desarrollar, conviene encadenar los espacios de trabajo [documentación]. Crear un espacio de trabajo aparte, que será el espacio para desarrollar paquetes. Antes de compilarlo por primera vez ejecutar:
$ source <path_to_kobuki_workspace>/devel/setup.bash$ catkin_make
Deberá aparecer, entre los mensajes de compilación, la línea:
-- This workspace overlays: <path_to_kobuki_workspace>/devel;/opt/ros/noetic
Instalación de Melodic
Usamos esta versión en Ubuntu 18.04
Los drivers y varios de los paquete necesarios para usar la kokubi con ROS Melodic ya están disponibles mediante apt. Estos deben instalarse primero:
sudo apt install ros-melodic-kobuki-*
sudo apt install libftdi-dev libusb-dev
sudo apt install libsdl1.2-dev libsdl-image1.2-dev
sudo apt install ros-melodic-navigation
sudo apt install ros-melodic-yocs-controllers
sudo apt install ros-melodic-ecl
Hay que instalar algunos paquetes, compilando desde el código fuente en git, estos incluyen los launchers necesarios para ejecutar programas sencillos:
git clone https://github.com/yujinrobot/kobuki.git # devel branch
git clone https://github.com/yujinrobot/kobuki_soft.git # kinetic branch (o indigo)
Controlando a la Kobuki
Se puede utilizar un control remoto de PlayStation 4 (comprobado) y otras marcas con el programa qjoypad. Se instala con sudo apt-get install qjoypad y se ejecuta con qjoypad –notray. Hay que conectar el control con un cable USB para sincronizarlo primero, después ya se puede usar con bluetooth.
Actividad: modificación del controlador Kobuki Noisy Controller
¿Y en la vida real?
Firmware
En caso de necesidad
Es posible que el firmware de la Kobuki requiera ser actualizado, usualmente lo indicará cuando se lance minimal.launch. Las indicaciones está en el Manual de la Kobuki.
Los archivos se descargan de Firmware.
Odometría
Ángulos
Objetivo: Que la kobuki se mueva en un cuadrado, verificando mediante el odómetro, que se siga moviendo con una velocidad dada, hasta haber completado el desplazamiento deseado, ya sea en línea recta o girando 90°. Para ello es necesario utilizar los mensajes publicados en '\odom'. En particular, la orientación viene dada en cuaterniones, para interpretar con mayor facilidad el movimiento, se recomienda pasar la información del cuaternión en la odometría a ángulos de Euler (roll, pitch, yaw).