This demo showcases autonomous tractors operating in an agricultural field using ROS 2. The tractor is controlled using a conventional navigation stack. Sometimes, due to the ever-changing environment, the tractor may encounter unexpected situations. The conventional stack is not designed to handle these situations and usually ends up replanning the path. The tractor can handle this optimally by calling the RAI agent to decide what to do.
-
Download the Latest Release
Download the latest binary release for your ROS 2 distribution.
-
Unpack the Binary and Run the Simulation Unpack the binary
- For Jazzy:
unzip RAIAgricultureDemo_1.0.0_noblejazzy.zip
- For Humble:
unzip RAIAgricultureDemo_1.0.0_jammyhumble.zip
. /opt/ros/${ROS_DISTRO}/setup.bash ./RAIAgricultureDemoGamePackage/RAIAgricultureDemo.GameLauncher -bg_ConnectToAssetProcessor=0
-
Start the Tractor Node
python examples/agriculture-demo.py --tractor_number 1
You are now ready to run the demo and see the tractor in action!
The demo simulates a scenario where the tractor stops due to an unexpected situation. The RAI Agent decides the next action based on the current state.
RAI Agent's mission is to decide the next action based on the current state of the anomaly. There are three exposed services to control the tractor:
- continue
Used when the anomaly is flagged as a false positive.
- flash
Used to flash the lights on the tractor to e.g. get the attention of the animals
- replan
Used to replan the path/skip the alley.
- The node listens for the tractor's state and calls the RaiNode using ROS 2 action when an anomaly is detected.
- The RaiNode decides the next action based on the current state.
- The tractor performs the action and the demo continues.
For more details on configuring RAI for specific robots, refer to the RAI documentation.