Skip to content

Repository Layout#

This page shows the folders of the repository and the content of each folder.

Top Level#

Folder Content
Acres/ The Unreal project: the game module, the configuration, the shaders and the assets.
Core/ ACRES Core: the simulator without Unreal, its Python module, tests, tools and scripts.
ROS/ The ROS 2 Humble workspace: the messages, the ROS 2 bridge, the Core server and the Polaris description.
Learning/ The learning stack acres_learn. Refer to Learning.
Verification/ The formal proofs in Lean 4 and their differential tests. Refer to Verification.
Calibration/ The studies that compare the simulator with real data: the map, the Polaris, the tractor and the weather.
Tools/ The model tests without Unreal, the control tools, the benchmarks and the map and asset pipelines.
Demo/ Example sessions as scripts.
Documentation/ The source of this site.
mkdocs.yml The configuration of this site.
README.md, LICENSE The summary of the project and the Apache License 2.0.

The file .gitignore permits only these paths. Build outputs, packaged games and local environments stay local.

The Unreal Project#

Path Content
Acres/Acres.uproject The project file.
Acres/Config/ DefaultEngine.ini, DefaultGame.ini, DefaultGameUserSettings.ini, DefaultInput.ini.
Acres/Source/Acres/ The C++ game module. Architecture describes its file groups.
Acres/Shaders/ The shaders of the GPU LiDAR and the ground layer.
Acres/Content/Maps/V03ACRE The farm map.
Acres/Content/ACRE/ The farm assets: terrain, crops, structures, materials, weather, traffic.
Acres/Content/FarmEquipment/ The skeletal meshes of the Maxxum, the implements and the Polaris.
Acres/Content/Simulation/ The configuration files and the survey grids that the simulation reads at run time.
Acres/Content/Simulation/ACRE/ The map products: heights, soils, fields, surfaces, places.
Acres/Content/Simulation/ACRE/Scouting/ The map products of the scouting task.
Acres/Content/Simulation/implements/ One JSON file for each implement.
Acres/Content/Simulation/rigs/ The equipment rig maps.
Acres/Raw/farm-equipment/ The source models and the mechanics data of the farm equipment.

Configuration Files and Map Products give the formats.

ACRES Core#

Path Content
Core/CMakeLists.txt, Core/build.sh The build of the library, the Python module, the tests and the tools.
Core/Source/ The world, the terrain, the scene, the Polaris environment, the LiDAR, the farm state, the batch and the episode log.
Core/Python/ The pybind11 module acres_core.
Core/Tests/ The C++ tests and the Python tests.
Core/Tools/ The command-line tools core_replay and lidar_compare.
Core/Scripts/ The benchmark, the scene builder and the comparison tools.
Core/Data/acre_scene.json The static scene of the Core: buildings, trees and other obstacles.

The ROS 2 Workspace#

Path Content
ROS/Env/ The conda environment file and the scripts of the DDS loopback fence.
ROS/acres_interfaces/ The messages and services of the simulator.
ROS/acres_sim/ The ROS 2 bridge sim_bridge, the J1939 codec, the demonstration driver and the launch files.
ROS/acres_core_sim/ The Core server core_sim: ACRES Core behind the sockets of the game.
ROS/acres_description/ The Polaris description: URDF, meshes, RViz configuration and launch files.
ROS/vendor/ Third-party message packages: ds_dbw_msgs and rslidar_msg.
ROS/Tools/ The checks of the message definitions and the topic parity, and the benchmarks.

Tools#

Path Content
Tools/Terramechanics/ The tests and the bench of the Maxxum model and the tyre and soil model.
Tools/ImplementModel/ The tests of the implement model.
Tools/PolarisModel/ The tests of the Polaris model, the replay tool and the recorded drive-by-wire extracts.
Tools/LidarModel/ The tests of the LiDAR radiometry.
Tools/EpisodeLog/ The tests of the episode log and the schema generator.
Tools/SimControl/ The Python client of the simulator control channel and the determinism and render checks.
Tools/Performance/ The frame-rate benchmarks.
Tools/ACRE/Map/ The map pipeline: sources, lanes, fields, crops, buildings, surfaces, places.
Tools/ACRE/Structures/, Props/, Vegetation/ The generators of buildings, props and trees.
Tools/ACRE/Vehicles/ The import of the farm equipment and the export of the rig maps.
Tools/ACRE/Tools/ The editor scripts that import assets and change the level.
Tools/ui_text_check.py The check of the UI text style.

Tools and Scripts describes each tool.

Calibration#

Path Content
Calibration/Map/ The data sources of the map, the layers, the validation and the error budget.
Calibration/Polaris/ The inventory of the real logs, the LiDAR and camera studies and the closed-loop tests.
Calibration/Polaris/FieldDay/ The field-day kit.
Calibration/Tractor/ The soil and weather study of the Maxxum.
Calibration/Weather/ The ground conditions from the Purdue Mesonet record and the weather replay files.

Demo#

Path Content
Demo/gameplay.sh, Demo/record_all.sh, Demo/Menu/ A recorded session that the menu starts.
Demo/multi_agent_demo.sh, Demo/Multi/ A session with the Maxxum and the Polaris.
Demo/soil_weather.sh, Demo/SoilWeather/ The soil and weather study.
Demo/lockstep_drive.py A lockstep drive through ROS 2 with an episode log.

Documentation#

Path Content
Documentation/<Section>/ The pages of each section of the navigation.
Documentation/Assets/Diagrams/ The SVG diagrams.
Documentation/Assets/Images/ The screenshots.
Documentation/Stylesheets/, Documentation/JavaScripts/ The theme.
Documentation/Tools/ The generator and the checks.

Write Documentation gives the rules.

Folders outside the Repository#

These folders are local. Git does not contain them.

Path Content
Packaged/ The packaged game.
Acres/Saved/, Acres/Intermediate/, Acres/Binaries/ The outputs of the editor and the build.
Core/Build/ The build of ACRES Core.
ROS/build/, ROS/install/, ROS/log/ The build of the ROS 2 workspace.
ROS/vendor/purdue_ranger/ The vehicle package of the lab. It is proprietary.
site/ The built documentation.