A package for Active visual SLAM using the structure of the underlying pose-graph.
Code used for the paper "ExplORB-SLAM: Active Visual SLAM Exploiting the Pose-graph Topology", accepted for presentation in the Fifth Iberian Robotics Conference (ROBOT 2022).
Tested by jplaced for Ubuntu 20.04, ROS Noetic.
Contact: jplaced@unizar.es, jjgomez@unizar.es
Placed, J. A., Gómez-Rodríguez, J. J., Tardós, J. D., & Castellanos, J. A. (2022). ExplORB-SLAM: Active Visual SLAM Exploiting the Pose-graph Topology. In 2022 Fifth Iberian Robotics Conference (ROBOT).
- Eigen
- OpenCV
- Python3
- Numpy
- Sklearn
- Numba
- OpenCV
- Gazebo
- ROS Noetic
- rviz
- turtlebot3_teleop
- gazebo_ros
- octomap_ros
- octomap_rviz_plugins
- move_base
Absolutely! Here is a step-by-step installation and setup guide for all the listed dependencies to implement a ROS Noetic project like ExplORB-SLAM or similar. This assumes you are using Ubuntu 20.04 (the standard for ROS Noetic).
sudo apt update
sudo apt upgrade -y# Setup sources
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
# Install ROS Noetic Desktop-Full (includes rviz, turtlebot3_teleop, move_base, etc.)
sudo apt install ros-noetic-desktop-full
# Initialize rosdep
sudo rosdep init
rosdep update
# Add ROS setup to .bashrc
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# Install rosinstall tools
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essentialmkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrcsudo apt install libeigen3-devsudo apt install libopencv-dev python3-opencv(Ubuntu 20.04 ships with Python3.8 by default)
pip3 install numpy scikit-learn numbasudo apt install ros-noetic-rviz \
ros-noetic-move-base \
ros-noetic-gazebo-ros-pkgs \
ros-noetic-octomap-ros \
ros-noetic-octomap-rviz-plugins \
ros-noetic-turtlebot3-teleop- Tip: Some packages like
gazebo_roscome withgazebo_ros-pkgs.
sudo apt install gazebo11- If you need integration with ROS:
sudo apt install ros-noetic-gazebo-ros-controlcd ~/catkin_ws/src
git clone https://github.com/WhiZTiM/ExplORB-SLAM.git # replace with the actual repo
cd ~/catkin_ws
catkin_make- If using TurtleBot3 for simulation:
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
source ~/.bashrc# Check ROS packages
roscd rviz
roscd move_base
roscd octomap_ros
roscd gazebo_ros
# Check Python libraries
python3 -c "import numpy, sklearn, numba, cv2; print('All Python libs imported successfully!')"- Test RViz:
roscore
# In a new terminal:
rviz- Test Turtlebot3 teleop:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch-
Always source your workspace before launching nodes:
source ~/catkin_ws/devel/setup.bash
-
Some dependencies (like
octomap_rosorgazebo_ros) may require additional ROS environment variables if you use a different workspace or multiple ROS versions. -
If you use Ubuntu 22.04 or ROS2, installation steps and package names will be different.
- Clone repo:
git clone [https://github.com/JulioPlaced/ExplORBSLAM.git](https://github.com/Lawaries/ExplORB-SLAM-test.git)
- Build repo:
cd ExplORBSLAM/
catkin build
- Remember to source the ExplORBSLAM workspace:
source devel/setup.bash
If sourcing doesn't work properly, try
catkin config --no-install
catkin clean --all
and rebuild.
- Launch the scenario:
AWS house environment:
roslaunch robot_description single_house.launch
Or AWS bookstore environment:
roslaunch robot_description single_bookstore.launch
- Launch the decision maker
roslaunch decision_maker autonomous_agent.launch