- Ubuntu 20.04
- ROS Noetic
- stereo_image_proc
- rtabmap
-
Crear un workspace para correr los archivos. No se olvide de agregar el workspace en el .bashrc.
cd mkdir proyecto_ws cd proyecto_ws mkdir src catkin_make
- Debes colocar en .bashrc / .zshrc qué modelo del turtlebot 3 se usará y la identificación del workspace
export TURTLEBOT3_MODEL=waffle_pi source proyecto_ws/devel/setup.bash
-
Crear una carpeta con nombre 'Turtlebot3' para descargar todos los paquetes necesarios para correr el robot.
cd src mkdir turtlebot3 cd turtlebot3 git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
-
Clonar este repositorio y volver a compilar el workspace con los nuevos paquetes.
cd .. git clone https://github.com/Jimi1811/Visual_SLAM_in_turtlebot3.git cd .. catkin_make
cd src git clone https://github.com/ros-perception/image_pipeline.git cd .. catkin_make --only-pkg-with-deps stereo_image_proc
-
Dar acceso a los códigos a correr. En cada carpeta 'src' con los códigos de cada paquete:
roscd control_movimiento;cd src chmod a+x * roscd odom_imu;cd src chmod a+x * roscd stereo_camera;cd src chmod a+x *
-
Mover la carpeta my_ground_plane dentro del directorio /home/.gazebo/models/
cd .. # Si no lo realizas en RDS, debes buscar dónde se aloja la carpeta /models mv my_ground_plane /home/user/.gazebo/models
-
Para ejecutar todo el procedimiento ejecutar cada línea de abajo en distintos terminales.
roslaunch stereo_camera maze.launch
ROS_NAMESPACE=/stereo rosrun stereo_image_proc stereo_image_proc
roslaunch rtabmap_legacy stereo_mapping.launch stereo_namespace:="/stereo" rtabmap_args:="--delete_db_on_start" rviz:=true rtabmapviz:=false
-
De allí, controlar el robot para que se mueve por medio de todo el mapa. Se puede realizar con el teleop del turtlebot.
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
El turtlebot presente, usado en este paquete es modificado, por lo que es preferible correr los nodos respecto a los frames del presente paquete.
Por otro lado, colocar la carpeta my_ground_plane dentro del directorio /home/.gazebo/models/
Para realizar la calibración de las cámaras stereo, se usa https://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration
-
Deben crear el paquete de camera_calibration
catkin_make --only-pkg-with-deps camera_calibration sudo rosdep install camera_calibration rosmake camera_calibration
-
Ahora solo ejecutar el nodo de lectura de las imagenes de las cámaras y el siguiente comando para ejecutar el nodo de camera_calibration
rosrun camera_calibration cameracalibrator.py --approximate 0.1 --size 8x6 --square 0.108 right:=/my_stereo/right/image_raw left:=/my_stereo/left/image_raw right_camera:=/my_stereo/right left_camera:=/my_stereo/left
-
Los tópicos de las cámaras dependen de cómo estas son accedidas con los tópicos. Más info en https://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration