Code Monkey home page Code Monkey logo

nicol_coppeliasim's Introduction

NICOL-Coppeliasim

Bindings for the CoppeliaSim robot simulator similar to the ROS NIAS-API. The api uses the ZeroMQ interface of Coppeliasim in the back to map the NIAS-API calls to CoppeliaSim.

Publications

NICOL: A Neuro-inspired Collaborative Semi-humanoid Robot that Bridges Social Interaction and Reliable Manipulation (Matthias Kerzel, Philipp Allgeuer, Erik Strahl, Nicolas Frick, Jan-Gerrit Habekost, Manfred Eppe, and Stefan Wermter)

CycleIK: Neuro-inspired Inverse Kinematics (Jan-Gerrit Habekost, Erik Strahl, Philipp Allgeuer, Matthias Kerzel, Stefan Wermter)

Requirements

GPU: >= GTX 1050 TI

Python: 3.8, 3.10

Ubuntu: 20.04, 22.04

Installation

Download version 4.5.1 of CoppeliaSim here: https://www.coppeliarobotics.com/previousVersions

Current version: https://www.coppeliarobotics.com/downloads (will probably crash with a different version)

Add the following to your ~/.bashrc file: (NOTE: the 'EDIT ME' in the first line).

export COPPELIASIM_ROOT=EDIT/ME/PATH/TO/COPPELIASIM/INSTALL/DIR
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COPPELIASIM_ROOT
export QT_QPA_PLATFORM_PLUGIN_PATH=$COPPELIASIM_ROOT

Via script

The easiest way to install is via the setup.sh script.

git clone https://github.com/knowledgetechnologyuhh/nicol_coppeliasim.git
cd nicol_coppeliasim
source setup.sh

Run the demo

You should be good to go now. A good first start might be to check out the examples in the project. The demo.py file demonstrates the use of all functions that are implemented for the simulator.

python3 hri_demo.py

Documentation:

The implementation uses pydoc for documentation. You can build the documentation e.g. as html with:

pydoc -w nicol_api

Afterwards you can view the nicol_api.html

Physics

We use the mujoco physics engine for this project, since it is very fast and reasonable accurate. Getting a stable physics simulation right can be tricky anyhow. It helps a lot to increase the number of simulation steps to make the simulation more stable. In the example scene we use 2 steps per frame (see simulation settings). In addition, we switched to elliptic collision calculations since this seems to help as well. We are able to lift a cuboid of mass 0.001 with the default physics parameters like this. If you have trouble with objects flying away I suggest you reduce the first two parameters of the solimp variable in the engine properties of the object. If you have problems with objects slipping out of the hand you probably have to increase this attribute, but in that case you probably have to increase the simulation steps as well to keep the simulation stable. https://mujoco.readthedocs.io/en/stable/overview.html#softness-and-slip

Zero Mq Api

If you need more functionallyties from the simulator you can find the documentation of the API here: https://www.coppeliarobotics.com/helpFiles/en/apiFunctions.htm#objectParameters

Contact

- Lennart Clasmeier ([email protected]) 
- Jan-Gerrit Habekost ([email protected]) 

Knowledge Technology, MIN-Faculty, University of Hamburg

https://www.inf.uni-hamburg.de/en/inst/ab/wtm.html

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.