eduardo98m / RoboSim

RoboSim is a project aimed at creating a user-friendly and customizable rigid body physics simulator for robotics.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RoboSim Logo

License: MIT GitHub issues GitHub pull-requests

RoboSim

RoboSim (ROBOtics + SIMulator) is a projects that aims to create an easy to use and easy to customize rigid body physics simulator for robotics applications. The project is currently under early development.

RoboSim

Current State of the Simulator

You can see the current state of the simulator in the following video:

RoboSim Demo

Installation

Note: These instructions have been tested on Linux, but there should be no problems following them on Windows (or Mac) as well.

Prerequisites

Before you begin, ensure you have met the following requirements:

  • You have installed the latest version of raylib and CMake.

For the collision detection and response we decided it was a better option to use an already available package (I could not take the burden of programming all of the collisions)

  • hpp-fcl (Human path planner fast collision library) : (We use the 2.4.4 version)
    • For linux :
    mkdir build
    cd build
    cmake .. -DBUILD_PYTHON_INTERFACE=OFF
    make
    sudo make install
  • octomap : (We use the 1.9.6 version)
    mkdir build
    cd build
    cmake .. 
    make
    sudo make install
  • You also need eigen :
sudo apt install libeigen3-dev

Installing RoboSim

To install RoboSim, follow these steps:

  1. Clone this repository recursively:
git clone --recursive https://github.com/your_username/RoboSim.git
  1. Navigate to the cloned repository:
cd RoboSim
  1. Use CMake to build the project :
mkdir build
cd build
cmake ..
make

TODO:

  • URGENT : Fix a bug related to memory management: Currently it is not possible to create a world instance in a sub context and return a pointer of that instance to the current context (An issue with the colliders from hpp::fcl shared poiters arises).
  • Build intructions/Tutorial
  • Documentation
  • [-] Interface Simulator <-> Visualizer (WIP)
  • Collisions
    • [-] Add collision shapes
      • Sphere
      • Box
      • Cylinder
      • Capsule
      • Plane (There might be issues with the plane)
      • Heightmap
    • Collision detection and respose implemeted using hpp::fcl (human path planner fast colision library).
    • Collision groups.
  • Constraints
    • Contact constraints.
    • Prismatic joint constraint
      • Limited
      • Driven
      • Damped
    • Revolute joint constraint
      • Limited
      • Driven
        • Position driven
        • [-] Speed driven (It is implemented but there are errors on the implementation: target speed doesnt match the actual speed).
      • Damped
    • Spherica joint
      • Limited
      • Damped
  • URDF importer
  • Paralelization with OpenMP

Screenshots

Alt text

About

RoboSim is a project aimed at creating a user-friendly and customizable rigid body physics simulator for robotics.


Languages

Language:C++ 98.7%Language:CMake 1.1%Language:Shell 0.2%