NUS ME5413 Autonomous Mobile Robotics Final Project
Authors: CHENXIN, ZHUYU, MAYUXUAN, ZHAOYUNSHUO, ZHANGBINLIN, and XIEYIKANG
- System Requirements:
- Ubuntu 20.04
- ROS Noetic
- C++11 and above
- CMake: 3.0.2 and above
- This repo depends on the following standard ROS pkgs:
roscpprospyrvizstd_msgsnav_msgsgeometry_msgsvisualization_msgstf2tf2_rostf2_geometry_msgspluginlibmap_servergazebo_rosjsk_rviz_pluginsjackal_gazebojackal_navigationvelodyne_simulatorteleop_twist_keyboardeasyocr
- And this gazebo_model repositiory
This repo is a ros workspace, containing three rospkgs:
interactive_toolsare customized tools to interact with gazebo and your robotjackal_descriptioncontains the modified jackal robot model descriptionsme5413_worldthe main pkg containing the gazebo world, and the launch filesMappingthe main pkg containing the FAST-LIO, and the launch filesNavigationthe main pkg containing the Local-Planner, and the launch filesPerceptionthe main pkg containing the Barrel & Number Detection, and the launch filesFSMthe main pkg containing the FSM, and the launch files3rdpartythe main pkg containing the Livox-SDK2 & livox_ros_driver2
To properly load the gazebo world, you will need to have the necessary model files in the ~/.gazebo/models/ directory.
There are three sources of models needed:
-
# Create the destination directory cd mkdir -p .gazebo/models # Clone the official gazebo models repo (assuming home here `~/`) git clone https://github.com/osrf/gazebo_models.git # Copy the models into the `~/.gazebo/models` directory cp -r ~/gazebo_models/* ~/.gazebo/models
-
# Copy the customized models into the `~/.gazebo/models` directory cp -r ~/ME5413_Final_Project/src/me5413_world/models/* ~/.gazebo/models
-
sudo apt-get install ros-$ROS_DISTRO-realsense2-camera ros-$ROS_DISTRO-realsense2-description ros-$ROS_DISTRO-gazebo-plugins
There are two driver for FAST_LIO:
-
mkdir -p Autonomous_Jackal_ws/src cd Autonomous_Jackal_ws git clone https://github.com/XinChen-stars/Autonomous_Jackal.git mv Autonomous_Jackal/* src/ rm -rf Autonomous_Jackal/ unzip src/3rdparty.zip -d ./ cd 3rdparty/Livox-SDK2/ mkdir build cd build cmake .. make -j8 sudo make install
-
cd Autonomous_Jackal_ws/src mkdir Mapping cd ../ cp -r 3rdparty/livox_ros_driver2/ src/Mapping/ cd src/Mapping/livox_ros_driver2 ./build.sh ROS1
-
cd Autonomous_Jackal_ws/ cp -r 3rdparty/FAST_LIO src/Mapping/ catkin_make
Dependence for Perception:
- EasyOCR
pip install easyocr pip uninstall opencv-python-headless pip install opencv-python
Note: Please intall the Livox-SDK2 & livox_ros_driver2 before install the FAST-LIO !!!
This command will launch the gazebo with the project world
# Launch Gazebo World together with our robot
roslaunch me5413_world world.launch# Launch fast_lio
roslaunch fast_lio mapping_velodyne.launch# Launch local planner
roslaunch mission_fsm jackal_navigation.launch# Launch Barrel & Number detection
roslaunch mission_fsm jackal_detection.launch# Launch mission fsm
roslaunch mission_fsm jackal_fsm.launchWe would like to thank the following open-source projects:
- Fast-LIO for localization
- EasyOCR
- cmu_planner for local_planner and terrain_analysis

