Giter Site home page Giter Site logo

botslab / ignis Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 4.32 MB

A collection of experiments involving swarms of robots manipulating pucks. The core simulator (Sim.hpp) models the physics of 2-d interactions between circular bodies.

CMake 0.89% C++ 92.27% Python 6.84%

ignis's Introduction

ignis

A collection of experiments involving swarms of robots manipulating pucks. The core simulator (Sim.hpp) models the physics of 2-d interactions between circular bodies.

Dependencies

vcpkg is used as the package manager to install most (but not all) dependencies. vcpkg itself is part of this repo as a git submodule.

While using vcpkg does much of the work required to install external packages there are some build tools needed on your machine. The following (at least) must be installed:

autoconf, cmake, libtool

The following is the procedure for adding packages using vcpkg. Actually, first you should make sure the package exists. This is how imgui was added:

    ./vcpkg/vcpkg add port imgui
    ./vcpkg/vcpkg install

    # Modify CMakeLists.txt as suggested

This last step is important and is not automated. Some guesswork is required to figure out exactly what to incoroporate into CMakeLists.txt.

Build instructions

The following two lines create the build subdirectory, building all executables within it:

    cmake --preset=default
    cmake --build build

Executables

./build/alife GUI-based application to demonstrate swarm-based foraging approach described in paper submitted to ANTS 2024. Loads parameters from last_parameters.dat.

./build/vorlife Combines the controller above with the idea of separating robots into Voronoi cells. This is an idea with some merit, but the implementation here is crude and collisions between robots are still quite possible.

./build/vorlife_headless Runs headless to generate experimental data for vorlife

./build/optimize Uses Pagmo2's Generational Particle Swarm Optimization algorithm to find parameters for alife.

./build/ignis A somewhat failed experiment to employ a planning-based approach to planar construction.

Private Notes

  • This is how vcpkg itself was added as a submodule:
    git submodule add https://github.com/microsoft/vcpkg
    ./vcpkg/bootstrap-vcpkg.sh
  • Using the following advice on switching between Debug/Release builds:

https://stackoverflow.com/questions/7724569/debug-vs-release-in-cmake/64719718#64719718

I succeeded (I think) in creating a debug build with the following sequence of commands

rm -fr build
cmake --preset=default
cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug
cmake --build build

ignis's People

Contributors

avardy avatar

Watchers

John Hawley avatar Mohammed Abdullhak avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.