Skip to content
/ atta Public
forked from brenocq/atta

Simulator for multi-robot systems (early stages)

License

Notifications You must be signed in to change notification settings

capf-2011/atta

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atta

Linux MacOS Windows Web License: MIT

Atta is a robot simulator for 2D and 3D applications mainly focused on multi-robot systems with tons of similar robots. The objectives for this simulator are:

  • Fast to develop new simulations
  • Easy to understand
  • Distribute the processing across CPUs / GPUs / Clusters
  • Interface between simulated and physical robots
  • Cross-platform (including web support to easily share the simulations)

Check out the atta website for a getting started guide. You can also test the web build online here.

Progress

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

ComponentSystem EventSystem FileSystem GraphicsSystem IOSystem MemorySystem PhysicsSystem ResourceSystem ScriptSystem SensorSystem UISystem Docs

Architecture

Atta is composed of decoupled system, the current systems are:

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

Arrows show dependencies between systems. Green boxes show which systems/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

Dependencies

To build atta properly, you need to have cmake installed. You will also need the dependencies for glfw (necessary to create windows) and cpprestsdk (necessary to access the network).

Dependencies for some operating systems:

Windows:

choco install cmake
vcpkg install cpprestsdk cpprestsdk:x64-windows

MacOS:

brew install cmake boost openssl 

Ubuntu:

sudo apt-get install cmake xorg-dev openssl libssl-dev libboost-all-dev

Clone

This step is operating system indepentent. Be sure to have your github ssh key properly configured. Atta should build without errors when the compiller supports C++17. If you found any errors, please do not hesitate to create an issue.

git clone [email protected]:brenocq/atta.git
cd atta
mkdir build && cd build
cmake ..
make -j
./bin/atta_test
./bin/atta

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.

About

Simulator for multi-robot systems (early stages)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.7%
  • GLSL 2.6%
  • CMake 2.0%
  • Other 0.7%