Skip to content

brenocq/atta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atta is a robotics simulator, mainly focused on multi-robot systems with tons of similar robots. The objectives for this simulator are:

  • 📚 Easy to get started
  • :shipit: Distribute processing across CPUs / GPUs / Clusters
  • 🏃 Fast development (with hot-reload)
  • 🔌 Interface between simulated and physical robots
  • 📂 Easy to share simulation with others (published projects)
  • 💻 Cross-platform (linux/macos/windows/web)

Check out the atta website for a getting started guide.

Progress

Check the atta progress by clicking on the buttons below. Issues with bugs and discussions with new ideas are very welcome :bowtie:.

ComponentModule EventModule FileModule GraphicsModule IOModule MemoryModule PhysicsModule ResourceModule ScriptModule SensorModule UIModule Docs

Obs: There is a github workflow to update the progress bar of each icon automatically heh

Architecture

Atta is composed of decoupled modules, the current modules are:

  • Component Module: Manage entities and components
  • Event Module: Publish and subscribe to atta internal events
  • File Module: OS agnostic interface to serialize and deserialize data to files
  • Graphics Module: Online and offline rendering with different levels of realism
  • IO Module: OS agnostic interface to peripherals (USB, socket, bluetooth, serial, ...)
  • Memory Module: Manage atta internal memory to allow fast allocation and deallocation with minimum memory fragmentation
  • Physics Module: Manage supported physics engines, simulate physics, and solve physics queries (collision, ray casting, ...)
  • Resources Module: Load, save, and manage memory for resources like meshes, textures, video, ...
  • Script Module: Compile and link user scripts automatically (hot reloading)
  • Sensor Module: Update simulated/real sensors at each step
  • UI Module: User interface graphics layer and UI rendering helpers

Arrows show dependencies between modules. Green boxes show which features are implemented.

Why Atta?

"Atta" comes from the scientific name of a type of leaf-cutting ant that can build nests of up to millions of individuals capable of working together to perform complex tasks. This project aims to simulate complex systems like this, mainly composed of robots.

Build & test

Windows

Dependencies

To build atta properly, you need to have cmake installed.
choco install cmake
Also, be sure that your compiller supports C++17 (g++ >= 9.0).

Run

git clone git@github.com:brenocq/atta.git
cd atta
mkdir build
cd build
cmake ..

You can now use Visual Studio to open the atta.sln file.

MacOS

Dependencies

To build atta properly, you need to have cmake installed.
brew install cmake
Also, be sure that your compiller supports C++17 (g++ >= 9.0).

Run

git clone git@github.com:brenocq/atta.git
cd atta
./scripts/build.sh --help
./scripts/build.sh
./build/release/bin/atta_test
./build/release/bin/atta
Linux

Dependencies

To build atta, you need:
  • g++ >= 9.0
  • cmake >= 3.14

Ubuntu:

sudo apt-get install g++ cmake git xorg-dev curl

Note: If your ubuntu is old, you may need to install the latest cmake/g++ manually.

Fedora:

sudo yum install g++ cmake git glfw-devel curl

Arch:

sudo pacman -Sy g++ cmake git glfw-x11 curl

Run

git clone git@github.com:brenocq/atta.git
cd atta
./build.sh --help
./build.sh
./build/release/bin/atta_test
./build/release/bin/atta

If you found any errors, please do not hesitate to create an issue 😉.

Discussions

If you want to contribute, have ideas, or have questions about atta, feel free to start a discussion.

References

License

This project is licensed under the MIT License - check LICENSE for details.