This is the ME5413 Autonomous Mobile Robotics @ NUS Final Project finished by Group18
Please consider referring to original readme of original project provided: Porject README Link
A mini-factory environment provided in Gazebo.
- 3 accessible areas
- 1 inaccessible area
The aim of the project is to design a robot navigation software stack that :
- From the starting point, move to the given pose within each area in sequence:
- Assembly Line 1, 2
- Packaging Area 1, 2, 3, 4
- Delivery Vehicle 1, 2, 3
Two main tasks included: Mapping & Navigation
Files included:
- Report: Group18_FinalProject.pdf
- PPT: Presentation.pptx
- Video Recording:
- Mapping: one fastlio.mp4 file available in: Google Drive Link
- Navigation: one Video_Uncompressed.mp4 file available in: Google Drive Link
- Map file:
- one 2D projection map file map.pgm
- one 3D pointcloud mapping file map_pointcloud.pcd available in :Google Drive Link
- Ubuntu >= 18.04
- ROS >= Melodic. ROS Installation
- PCL >= 1.8, Follow PCL Installation.
- Eigen >= 3.3.4, Follow Eigen Installation.
- Follow livox_ros_driver Installation.
Remarks:
- livox_ros_driver must be installed and sourced as FAST-LIO must support Livox serials LiDAR firstly.
- How to source? Add the line
source $Licox_ros_driver_dir$/devel/setup.bash
to the end of file~/.bashrc
, where$Licox_ros_driver_dir$
is the directory of the livox ros driver workspace (should be thews_livox
directory if you completely followed the livox official document).
sudo apt-get install ros-noetic-robot-pose-ekf
sudo apt-get install ros-noetic-navigation
create a folder named include
insrc/aster_ws/src/Astar_planner
. And an empty folder named astar_planner
in it.
cd ~/ME5413_Mobile_Robot_Mapping_Navigation
catkin_make
cd ~/ME5413_Mobile_Robot_Mapping_Navigation/src/FAST_LIO_
mkdir PCD
# First terminal
source devel/setup.bash
roslaunch me5413_world world.launch
# Second terminal
source devel/setup.bash
roslaunch me5413_world fast_lio.launch
# Third terminal (rosbag for EVO)
cd ~/ME5413_Mobile_Robot_Mapping_Navigation/EVO
rosbag record /gazebo/ground_truth/state /Odometry -o EVO_perform.bag
After doing mapping, pointcloud scans.pcd
will save in src/FAST_LIO_/PCD/
Using EVO to evaluate the mapping performence : evo_ape bag EVO_perform.bag /gazebo/ground_truth/state /Odometry -r full -va --plot --plot_mode xy
Firstly, change the filepath in pcdtomap.launch
to your own path (in the src/pcdtomap/launch/
)
# One terminal
source devel/setup.bash
roslaunch pcdtomap pcdtomap.launch
# Another terminal
cd ~/ME5413_Mobile_Robot_Mapping_Navigation/src/pcdtomap/map/
rosrun map_server map_saver
The pointcloud file after filtering map_radius_filter.pcd
is saved in src/FAST_LIO_/PCD/
The grid map file map.pgm
and map.yaml
is saved in src/pcdtomap/map/
We backup copy the good result in the /backup
folder
cd ~/ME5413_Mobile_Robot_Mapping_Navigation
catkin_make
Remarks:
- Uncomment corresponding algorithm you want to use in
src/me5413_world/launch/move_base.launch
- The parameters of planning algorithms and costmap are in corresponding
params
files. - For localization, amcl, ekf_template and robot_pose_ekf had been used. Then, the global planner has three choice can be select, finally, the local planner has two method had been provide. Pick the corrspending choice and comment specific command in those files can implement them.
# First terminal
source devel/setup.bash
roslaunch me5413_world world.launch
# Second terminal
source devel/setup.bash
roslaunch me5413_world navigation.launch
Choose corresponding topic in global path
and click the button in simplePanel
to select the goal pose.
This project is finished from NUS ME5413 Autonomous Mobile Robotics
Many Thanks to Professor. Marcelo and Ph.D. Candidate Shuo SUN @ NUS Advanced Robotics Centre