Farm_ng_Amiga

Ag-CyPhER Lab (UD)

Amiga Robot - Bonsai Robotics (Farm_ng)

The following Github Repository contains the description, video recordings, ROS2 package files, installation steps and documentation of the SLAM Navigation of the Amiga robot. This work done in the Ag-CyPhER Lab at University of Delaware by integrating the the MID-360 Livox Lidar to the existing Amiga Robot (Base Model).

Problem Statement:

To enable Autonomous navigation for the Amiga Robot in indoor/GPS-denied environments like green houses and warehouses.

Description:

As the problem states we are trying to enable and solve the autonomous navigation of Amiga robot in small farms, greenhouses and warehouses kind of environment where having a multi-camera tracking setup/GPS is not feasible and economical. So inorder to solve this issue we tried to put a cost-effective lidar called MID-360 from the company livox on the base model of the Amiga Robot from Farm_ng company.

An additional reason for using the MID-360 Lidar is because of it’s range and FoV. As the greenhouse environments mainly have structures like pillar and Vertical poles. We initially recorded pointcloud (3D Map) data inside our test environment (Nursey) and we were able to get more reliable and dense pointcloud results but the space is not big enough for our robot, So we tested the SLAM Navigation in our Hop_field which has high vertical structure and setup like green house but it is an outdoor environment.

So as proof of concept we recorded the 2D occupance grid map of Hop Field and added a stvl layer additionally in Nav_2 stack for much more accurate obstacle detection, localization and successfully performed, tested and validated SLAM autonomous navigation.

Brief of my Work:

Package Files:

1) config - The folder contains the config and parameter files for Lidar, Slam_tool Box and Nav_2 Bringup.

2) fast_lio_note - The directory contains the modified Fast_lio mapping C++ file code file which needs to be swapped with the file in your existing fast_lio package in the src folder and rebuild it to make the effective changes. It changes the reliability policy to best effort where there is less data loss.

3) launch - The following directory contains all the launch files of the package

4) livox_note - The directory contains the modified livox_ros_driver2 C++ code files which needs to be swapped with the file in your existing fast_lio package in the src folder and rebuild it to make the effective changes. It changes the reliability policy to best effort where there is less data loss.

5) maps - The folder contains the 2D occupancy grid maps recorded using the lidar which acted as our test environments.

6) meshes - The folder contains the stl files required for the urdf and Robot Model.

7) pcd - The folder contains the 3D pointcloud maps of our test environments which was mapped using the MID-360 LiDAR.

8) rviz - The folder contains the rviz config files for visualization of the data streaming and Maps.

9) slam_nav - The directory contains all the code files of nodes and controllers and so on.

10) urdf - The folder contains the urdf files of the Robot.

11) Documentation - The file contains the commands to run in the respective terminals to launch the nodes required for autonomous navigation.

Installation Guide (for ROS2):

Step 1: Clone and install the livox_ros_driver2 package from the github repository and follow the respective instruction for successfull installation to publish msgs and access the sensor via ROS2.

Step 2: Clone and install the FAST_LIO package from the github repository and follow the respective instruction for successfull installation to use the fast_lio mapping algorithm and generate 3D maps.

Step 3: Replace the files from fast_lio_note and livox_note to change the QoS policy to best_effort and rebuild it and source it to make the effective changes.

Step 4 : Clone and install the slam_nav package in your ROS2 workspace and then edit the MID_360.yaml config file from the livox_ros_driver2 with your respective IP address and required parameters of your lidar.

Step 5: Then refer the commands from Documentation.txt and run the following commands as per your scenario nad needs.

Media: