This ROS package facilitates mapping, localization, and navigation for a Husky mobile robot within the cpr_orchard_gazebo simulation environment. It leverages RTK-GPS fusion for enhanced localization accuracy and generates 3D Octomaps using rtabmap_ros.
- Simulation Environment: Uses the CPR Orchard Gazebo world for realistic agricultural robotics simulation.
- Sensor Configuration:
- Fuses Wheel Odometry and IMU.
- Integrates RTK-GPS for global localization.
- Velodyne VLP-16 3D LiDAR for 3D mapping.
- SICK LMS1xx 2D LiDAR for obstacle avoidance.
- Mapping: Uses
rtabmap_rosto generate 3D Octomaps. - Navigation:
move_baseintegration for autonomous navigation on generated maps. - Analysis: Includes tools for analyzing odometry drift and logging navigation metrics (via
kon414_metrics).
- OS: Ubuntu 20.04 (Focal Fossa)
- ROS: Noetic Ninjemys
- Gazebo: Gazebo 11
Ensure the following common Husky and simulator packages are installed:
husky_gazebohusky_navigationcpr_orchard_gazebo(Simulation World)robot_localizationrtabmap_rosoctomap_server
-
Clone the repository into your catkin workspace
srcfolder:cd ~/ros_ws/src git clone <repository_url> husky_project_mapping
-
Install dependencies: There is a helper script provided to install additional dependencies like twist mux and teleop joys.
cd ~/ros_ws/src/husky_project_mapping chmod +x install_dependencies.sh ./install_dependencies.sh
It is also recommended to run rosdep:
cd ~/ros_ws rosdep install --from-paths src --ignore-src -r -y
-
Build the workspace:
cd ~/ros_ws catkin_make source devel/setup.bash
To start the simulation, localization, and mapping processes:
roslaunch husky_project_mapping main.launchWhat this does:
- Launches
cpr_orchard_gazebo. - Spawns the Husky robot with VLP-16 and RTK-GPS enabled.
- Starts
robot_localization(EKF) to fuse odometry, IMU, and GPS. - Starts
rtabmap_rosfor mapping. - Opens RViz with a pre-configured view.
To test autonomous navigation on a pre-recorded Octomap:
roslaunch husky_project_mapping nav_test.launch map_file:=/path/to/your/map.btArguments:
map_file: Absolute path to the.btOctomap file to load (default:~/ros_ws/maps/octomap_0_1.bt).
To visualize a saved Octomap in RViz without running the full simulation:
roslaunch husky_project_mapping view_map.launch map_file:=/path/to/your/map.btlaunch/: Contains main launch files (main.launch,nav_test.launch).include/: Modular launch files for localization and mapping.
config/: YAML configuration files forrobot_localizationand RViz.scripts/: Python scripts for analysis and testing.
Maintainer: furkanh