This work was done collaborating with Or Tslil and Tal Feiner, please follow their works.
ROS implementation of online semantic SLAM. Used for large unkown indoor environments. Object detector node is based on yolo and forked from https://github.com/zzh8829/yolov3-tf2 Line extration node is forked from https://github.com/bguplp/laser_line_extraction.git
- Python version > 3.5
- TensorFlow 2.* (GPU version)
- numpy
- pandas
- openCV
- pip3 install
- hector_mapping http://wiki.ros.org/hector_mapping
- yolov3-tf2 https://github.com/zzh8829/yolov3-tf2
- laser_line_extraction https://github.com/bguplp/laser_line_extraction.git
- depthimage_to_laserscan http://www.ros.org/wiki/depthimage_to_laserscan
- gazebo_models_worlds_collection https://github.com/chaolmu/gazebo_models_worlds_collection.git
- robot_description https://github.com/TalFeiner/robot_description
- Copy, install and make the repository:
$ cd ~/your_catkin_worspace/src
$ git clone https://github.com/elbazam/sparse_slam.git
$ cd sparse_slam
$ pip3 install -e ./object_detector
$ pip3 install -e ./exits_detector
$ pip3 install -e ./room_slam
$ cd ..
$ catkin_make
- Execute .sh file:
$ cd ~/your_catkin_worspace/src
$ https://github.com/TalFeiner/robot_description
$ cd ..
$ catkin_make
$ cd src/robot_description
$ chmod +x ./python3_alongside_python2.sh
$ ./python3_alongside_python2.sh
- Replace the following contents:
-
In <your_workspace_name>/src/sparse_slam/object_detector/object_detector/ros/object_localizer_node.py , line 89, replace the written path to your path:
-
self.real_path = '/home/<Computer_name/<your_workspace_name>/src/yolov3-tf2>'
-
Go to the xarco file ~/robot_description/blattoidea/urdf/kinect.xarco
-
Change the orientation of the kinect to 0 0 0 from 0 0.3 0
Create files:
$ cd
$ mkdir '/home/melodic/data'
$ mkdir '/home/melodic/data/complex_sslam_data'
$ mkdir '/home/melodic/data/complex_hector_data'
$ mkdir '/home/melodic/data/complex_sslam_dt'
$ mkdir '/home/melodic/data/complex_hector_dt'
- Big environment:
roslaunch agent big_test.launch
- Small environment (the example above):
roslaunch agent Test.launch
$ rosrun room_slam sslam_node.py
- Each package has its own Pipeline readme