Skip to content

Wang-Theo/ME5413_Mobile_Robot_Mapping_Navigation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Autonomous Mobile Robot Mapping & Navigation in Virtual Factory

Ubuntu 20.04 ROS Noetic C++ Python

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

virtual_factorymap_info

Table of Contents

1. Project Decription

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:
  • Map file:
    1. one 2D projection map file map.pgm
    2. one 3D pointcloud mapping file map_pointcloud.pcd available in :Google Drive Link

2. Prerequisites

2.1 Ubuntu and ROS

2.2 PCL && Eigen

2.3 livox_ros_driver

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 the ws_livox directory if you completely followed the livox official document).

2.4 robot-pose-ekf

sudo apt-get install ros-noetic-robot-pose-ekf

2.5 navigation global_planner

sudo apt-get install ros-noetic-navigation

2.6 folder to be created

create a folder named include insrc/aster_ws/src/Astar_planner. And an empty folder named astar_planner in it.

3. Execution

Part 1 Mapping

3.1.1 Build

cd ~/ME5413_Mobile_Robot_Mapping_Navigation
catkin_make

cd ~/ME5413_Mobile_Robot_Mapping_Navigation/src/FAST_LIO_
mkdir PCD

3.1.2 Run FAST-LIO

# First terminal
source devel/setup.bash
roslaunch me5413_world world.launch

# Second terminal
source devel/setup.bash
roslaunch me5413_world fast_lio.launch

mapping_result_image

3.1.3 EVO evaluation

# 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

evo

3.1.4 Convert pcd pointcloud to grid map

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

2d_map

Part 2 Navigation

3.2.1 Build

cd ~/ME5413_Mobile_Robot_Mapping_Navigation
catkin_make

Remarks:

  1. Uncomment corresponding algorithm you want to use in src/me5413_world/launch/move_base.launch
  2. The parameters of planning algorithms and costmap are in corresponding params files.
  3. 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.

3.2.2 Run navigation

# 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.

naviagation_result_image

Acknowledge

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

About

Final Project of ME5413 Autonomous Mobile Robotics @ NUS

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published