Packages for the simulation of the RB-Vogui
Este paquete contiene:
Contiene todos los archivos necesarios para lanzar la simulación completa del modelo del RBVogui dedicado al proyecto INMERBOT
Contiene los archivos necesarios para cargar los modelos del robot en el servidor de parámetros de ROS, además de las llamadas a los controladores.
- Ubuntu 18.04
- ROS Melodic
- Python 2.7 o superior
La simulación se ha testeadp usando Gazebo 11, para facilitar la instalación de los elementos que componen el repositorio usamos la herramienta vcstool
:
sudo apt-get install -y python3-vcstool
Instalamos catkin_tools
para compilar el workspace
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install python-catkin-tools
Instalamos rqt_joint_trajectory_controller
para mover el brazo joint a joint y moveit_commander
para moverlo vía script
sudo apt-get install ros-melodic-rqt-joint-trajectory-controller
sudo apt-get install ros-melodic-moveit-commander
Creamos un nuevo ws:
mkdir catkin_ws #Desde la carpeta que se quiera creamos el espacio de trabajo, como estándar catkin_ws
cd catkin_ws
mkdir src && cd src
Instalamos la versión estable del repositorio. Este repositorio se gestiona por medio de ramas. La rama principal, main, se considera la rama limpia y estable. Para nuevos desarrollos crearemos una nueva rama y realizaremos una pull request a la rama principal cuando hayamos terminado y comprobado los desarrollos.
Instalamos la versión estable:
git clone https://github.com/RobotnikAutomation/inmerbot --recurse-submodules
cd .. #En directorio catkin_ws
rosdep install --from-paths src --ignore-src -y
3) Instalamos los paquetes propietarios de Robotnik, entre ellos: controladores, robotnik_msgs y rcomponent:
sudo dpkg -i src/inmerbot/rbvogui_common/libraries/*
source /opt/ros/melodic/setup.bash
catkin build
source devel/setup.bash
Hay diferentes configuraciones disponibles:
- Vogui con manipulador UR-5
- Varios Voguis sin brazo
Para lanzar el rbvogui con el manipulador UR deberemos lanzar en terminal la siguiente llamada:
roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std_ur5_rg2.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=ur5
You can play with the arm by using the rqt_joint_trajectory:
ROS_NAMESPACE=robot rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller
Or even use moveit to plan trajectories:
ROS_NAMESPACE=robot roslaunch rbvogui_moveit_ur5 demo.launch
** Zona en construcción **
El robot se puede controlar de tres maneras:
- Rviz pad plugin
- Keyboard
- Joystick
Cuando lanzamos RViZ a través de la simulación, el plugin se carga automáticamente. Lo encontramos en la esquina inferior izquierda de la pantalla de RViZ.
Instalamos el nodo para control por teclado
sudo apt-get update
sudo apt-get install ros-melodic-teleop-twist-keyboard
Abrimos una nueva termianl y lanzamos el nodo:
ROS_NAMESPACE=robot rosrun teleop_twist_keyboard teleop_twist_keyboard.py
El robot puede ser controlado con el mando de la PS4, este es el método habitual de control manual de los robots desarrollados por Robotnik, también disponemos de integración para simulación.
Seguir la guía de instalación: guía de instalación del pad de robotnik
Una vez tengamos todo instalado, lanzamos la simulación con launch_pad:=true
Parámetro | Tipo | Descripción | Requisitos |
---|---|---|---|
launch_pad | booleano | Lanza el paquete de robotnik pad | ds4drv installado, ps4 joystick, conexión bluetooth |
Por ejemplo:
roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui launch_pad:=true
Con cualquiera de las anteriores configuraciones del robot podemos usar las siguientes acciones: Solo añadiendo los siguiente parámetros:
Param | Tipo | Descripción | Requisitos |
---|---|---|---|
run_mapping | Booleano | Lanza mapeado con gmapping | La localización no puede estar activa |
run_localization | Booleano | Lanzar localización con amcl | El mapeado no puede estar funcionando |
map_file | String | Mapa a cargar por la localización | Formato: map_folder/map_name.yaml |
run_navigation | Booleano | Lanza navegación con TEB como planificador local | La localización debe estar corriendo. No es compatible con el mapeado |
Lanza un rbvogui con un world por defecto y su mapa para la localización y la navegación
roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_localization:=true run_navigation:=true
Lanza rbvogui robot con gmapping:
roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_mapping:=true rviz_config_file:=rviz/rbvogui_map.rviz
Mueve el robot usando el plugin del pad teleop de RViZ (por ejemplo):
Cuando el mapa esté cargado, abre un terminal y accede al paquete rbvogui_localization
cd nombre_ws && source devel/setup.bash #Accede al ws, carga el setup.bash
roscd rbvogui_localization && cd maps #Accede a la carpeta maps del rospkg
Crea una nueva carpeta con el nombre del mapa. Por ejemplo:
mkdir demo_map
cd demo_map
Finalmente, guarda eñ mapa dentro de la carpeta
ROS_NAMESPACE=robot rosrun map_server map_saver -f demo_map
Para navegar con el rbvogui usando el mapa por defecto:
roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_localization:=true run_navigation:=true
O para cargar tu propio mapa:
roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_localization:=true run_navigation:=true map_file:=demo_map/demo_map.yaml
Existen varias maneras de crear tu propio mundo en Gazebo.
ADD CONTENT