This is the official implementation of Alfred UGV (Report).
$ git clone git@github.com:vishweshvhavle/alfred.git
$ cd alfred/
$ conda create -n alfred python=3.8
$ conda activate alfred
$ pip install -r requirements.txt
We have only tested our GPU packages on Nvidia AGX Orin with Ubuntu 20.04. We use the NVIDIA Orin for simulation as well as for creating occupancy grids, path-planning, and waypoint navigation.
Main dependencies:
The network can be run with a standard 2D laser, but this implementation uses a simulated 3D Velodyne sensor. This package was developed on top DRL-Robot-Navigation.
Compile the workspace:
$ cd ~/alfred/gpu-packages/catkin_ws
$ catkin_make_isolated
Open a terminal and set up sources:
$ export ROS_HOSTNAME=localhost
$ export ROS_MASTER_URI=http://localhost:11311
$ export ROS_PORT_SIM=11311
$ export GAZEBO_RESOURCE_PATH=~/alfred/gpu-packages/catkin_ws/src/multi_robot_scenario/launch
$ source ~/.bashrc
$ cd ~/alfred/gpu-packages/catkin_ws
$ source devel_isolated/setup.bash
We have only tested our CPU packages on Intel NUC 12 Pro with Ubuntu 20.04. The SLAM node in this package was developed on top of F-LOAM.
Main dependencies:
- ROS Noetic
- PyTorch (CPU Version)
- Ceres Installation.
- PCL Installation.
Open a terminal and set up sources using the shortcut shell script (Ensure appropriate permissions are granted to the shell script):
$ cd alfred/gpu-packages/sim/
$ sh ./exportros.sh
$ cd alfred/gpu-packages/waypoint/
$ python3 waypoints.py
$ python3 path_planning_node.py
Open a terminal and set up sources with the ros master at GPU node:
$ export ROS_HOSTNAME=gpu-node-ip
$ export ROS_MASTER_URI=http://gpu-node-ip:11311
To switch on the bot operations:
$ cd alfred/cpu-packages/controller/
$ python3 controller.py
For object detection inferences:
$ cd alfred/cpu-packages/detection/
$ python3 detection.py
For F-LOAM based localization and mapping:
$ cd alfred/cpu-packages/floam
$ catkin_make
$ source devel/setup.bash
Launch ROS
roslaunch floam floam.launch
If you would like to create the map at the same time, you can run (more cpu cost)
roslaunch floam floam_mapping.launch
You may wish to test FLOAM on your own platform and sensor such as VLP-16 You can install the velodyne sensor driver by
sudo apt-get install ros-noetic-velodyne-pointcloud
Launch FLOAM for your own Velodyne sensor
roslaunch floam floam_velodyne.launch
Please open Github issues for any installation/usage problems you run into.
Thanks to Koustubh Heblikar for designing Alfred's chassis.
If you find this code useful for your research, please consider citing:
@misc{alfred_2024,
author = {Vishwesh Vhavle and Jatin Kumar Sharma},
title = {Alfred UGV},
year = {2024},
url = {https://github.com/vishweshvhavle/alfred},
note = {Version 1.0.0}
}