All Projects → BorisBogaerts → CoppeliaSim-VR-Toolbox

BorisBogaerts / CoppeliaSim-VR-Toolbox

Licence: other
This repository contains the code to experience CoppeliaSim in VR

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
lua
6591 projects

Projects that are alternatives of or similar to CoppeliaSim-VR-Toolbox

Virtual-Robot-Challenge
How-to on simulating a robot with V-REP and controlling it with ROS
Stars: ✭ 83 (+245.83%)
Mutual labels:  virtual, v-rep
home-space
Startpage and WebXR home
Stars: ✭ 43 (+79.17%)
Mutual labels:  virtual, reality
visage
Add virtual makeup to picture of a face.
Stars: ✭ 97 (+304.17%)
Mutual labels:  virtual
PVGeo
🌍 Python package of VTK-based algorithms to analyze geoscientific data and models
Stars: ✭ 156 (+550%)
Mutual labels:  vtk
react-virtual-list
A tiny virtualization list component(gzipped 6KB), supports dynamic height: https://dwqs.github.io/react-virtual-list/
Stars: ✭ 45 (+87.5%)
Mutual labels:  virtual
robinjs-website
Alexa like assistant in 40 lines of code
Stars: ✭ 31 (+29.17%)
Mutual labels:  virtual
SlicerVirtualReality
A Slicer extension that enables user to interact with a Slicer scene using virtual reality.
Stars: ✭ 70 (+191.67%)
Mutual labels:  vtk
janusweb
An in-browser implementation of JanusVR
Stars: ✭ 145 (+504.17%)
Mutual labels:  virtual
vue-virtual-stream
Simple vue-virtualized package for Vue.js
Stars: ✭ 16 (-33.33%)
Mutual labels:  virtual
figaro
Real-time voice-changer for voice-chat, etc. Will support many different voice-filters and features in the future. 🎵
Stars: ✭ 362 (+1408.33%)
Mutual labels:  virtual
3d-nii-visualizer
A NIfTI (nii.gz) 3D Visualizer using VTK and Qt5
Stars: ✭ 86 (+258.33%)
Mutual labels:  vtk
react-virtual-container
Optimise your React apps by only rendering components when in proximity to the viewport.
Stars: ✭ 52 (+116.67%)
Mutual labels:  virtual
V-REP-YouBot-Demo
YouBot Control demos on V-REP platform.
Stars: ✭ 108 (+350%)
Mutual labels:  v-rep
trame
Trame let you weave various components and technologies into a Web Application solely written in Python.
Stars: ✭ 50 (+108.33%)
Mutual labels:  vtk
ros-vrep-slam
ROS and V-REP for Robot Mapping and Localization
Stars: ✭ 39 (+62.5%)
Mutual labels:  v-rep
rocket viewer
This simple and generic viewer allows you to visualize different kinds of data such as medical and biological images, 3D surfaces, electric signals (ECGs) and documents.
Stars: ✭ 22 (-8.33%)
Mutual labels:  vtk
sight
Surgical Image Guidance and Healthcare Toolkit
Stars: ✭ 38 (+58.33%)
Mutual labels:  vtk
mixed-reality-extension-sdk
The Mixed Reality Extension SDK enables developers to build 3D world extensions for AltspaceVR, using Node.JS.
Stars: ✭ 139 (+479.17%)
Mutual labels:  reality
dose
Digital Organism Simulation Environment (DOSE)
Stars: ✭ 44 (+83.33%)
Mutual labels:  virtual
l1vm
L1VM - a tiny virtual machine with a 64 bit core
Stars: ✭ 112 (+366.67%)
Mutual labels:  virtual

CoppeliaSim-VR-Toolbox

This repository contains virtual reality tools for VREP. CoppeliaSim is a robotics simulation software package that is available here: http://www.coppeliarobotics.com/

Currently two tools are available

  • CoppeliaSim-VR-Interface
  • VR 360 cam (omnidirectional stereo renderer)

CoppeliaSim-VR-Interface

This repository contains the code to experience CoppeliaSim in VR. It can visualize CoppeliaSim scenes in openvr compatible devices (HTC-VIVE and HTC-VIVE Pro are tested) and return user manipulations to CoppeliaSim. It is also able to visualize the coverage of camera systems (later more).

Installation instructions and a feature overview is now also available in a youtube video: https://www.youtube.com/watch?v=_GXVdgihVgQ An update video of new features in V2 and V2.1 is also available: https://youtu.be/ozam2Ew7RdA

Some Youtube videos showing the interface in action:

The interface has the following capabilities:

  • Read all renderable geometry from CoppeliaSim (colors, opacities and (moving) textures are also transfered)
  • Read dynamically generated geometry
  • Synchronize all poses in real time
  • Send the positions of controllers and headset to CoppeliaSim
  • Send all controller buttonpress/buttontouch events to CoppeliaSim as string signals
  • Send trackpad position to CoppeliaSim
  • Import standard interactions as dummies, that can be attatched to controllers
  • Add a customizable menu in VR that when menu items are selected, triggers the execution of CoppeliaSim scripts.
  • Visibility layers are respected, which allows for the possibility of hiding objects.

VR 360 cam

This tool renders omnidirectional stereo images for a CoppeliaSim vision sensor. You don't need any physical VR device to use this tool (only to view the result). The theory behind this rendering process is exelently explained here : https://developers.google.com/vr/jump/rendering-ods-content.pdf.

Some videos produced with this tool:

To use this tool, import the VR360_cam.ttm model in your CoppeliaSim scene. Next launch VR360_cam.exe (maybe as administrator, a file is saved in the location of the .exe file, this action could require administrator privileges). This process is demonstrated at the end of this video https://youtu.be/ozam2Ew7RdA.

Note that the HTC_VIVE.ttm model must be in the CoppeliaSim scene to do this (you don't need a VIVE for this to work).

Currently the performance is quite decent 1 image in a complex scene renders in approximately 15 seconds (requires 16.384 individual renders, approx 1100 fps).

If you make a video by composing multiple images, do not forget to inject the correct metadata https://github.com/google/spatial-media/releases for it to be interpreted correctly.

Installation (easy)

Installation instructions are now also available on youtube: https://www.youtube.com/watch?v=_GXVdgihVgQ

This repository can be installed by an installer package available under the release tab in this repository.

After running the installer the user needs to run the bat file (copyToVREP.bat) as administrator. This bat file can be found in the installation directory of the interface typically (C:\Program Files (x86)\CoppeliaSim VR interface). IMPORTANT if CoppeliaSim is not installed in the default (my default at least) location (C:\Program Files\CoppeliaSim3\CoppeliaSim_PRO_EDU), than the correct folder should be identified in the bat file. The bat file can be changed by opening it in your favorite text editor (be very precise in the way you specify the folder, no spaces etc).

The bat file will copy following files to your CoppeliaSim installation folder:

  • Lua scripts that will be accesed by CoppeliaSim objects belonging to the interface (required)
  • A custom remoteApiConnections.txt file which opens more ports (required, if coverage visualization is used at least)
  • Models used by the VR-interface (usefull)
  • Example scenes (usefull)

Usage

The basic principle of the interface is simple. Activate steam and make shure the device is running and recognized. And run the CoppeliaSim VR Interface.exe program. If the user starts a simulation in CoppeliaSim (if the scene contains the HTC-VIVE.ttm object) the interface will read all geometry and start the visualization. If the user stops the simulation, the interface will stop the visualization and wait for the next simulation start (can ba a different scene, doesn't matter).

More specific instructions are provided in demo scenes. The logical order of which are

  • Hello_vr_world.ttt
  • Hello_controls.ttt
  • Hello_signals.ttt
  • Hello_camera_coverage.ttt

Interactive Camera Network Design using a Virtual Reality Interface

The interface contains the implementation of the paper "Interactive Camera Network Design using a Virtual Reality Interface" available at https://arxiv.org/abs/1809.07593 (yt:https://www.youtube.com/watch?v=Dsh8oyN4sD0&t=2s)

The controls and usage are already explained in example Hello_camera_coverage.ttt.

Two scenes used in the paper are also provided:

  • VR_sensorPlacement_harbour.ttt
  • VR_sensorPlacement_office.ttt

Please cite this paper if the interface is used in a relevant context (camera placement/coverage visualization)

@article{bogaerts2019interactive, title={Interactive Camera Network Design Using a Virtual Reality Interface}, author={Bogaerts, Boris and Sels, Seppe and Vanlanduit, Steve and Penne, Rudi}, journal={Sensors}, volume={19}, number={5}, pages={1003}, year={2019}, publisher={Multidisciplinary Digital Publishing Institute} }

Enabling Humans to Plan Inspection Paths Using a Virtual Reality Interface

The interface also contains the implementation of the paper "Enabling Humans to Plan Inspection Paths Using a Virtual Reality Interface" available at https://arxiv.org/abs/1909.06077

The usage is the same as in the demo scene: Hello_camera_coverage.ttt. To visualize the quality on a mesh, just make the mesh a child of the Field model.

Additional signals:

  • To reset a measurement state: sim.setIntegerSignal("ResetMeasurement", 1)
  • To record a path: sim.setIntegerSignal("MeasurementInProgress", 1)

Please cite this paper if the interface is used in a relevant context (Robotic inspection planning)

@article{bogaerts2019enabling, title={Enabling Humans to Plan Inspection Paths Using a Virtual Reality Interface}, author={Bogaerts, Boris and Sels, Seppe and Vanlanduit, Steve and Penne, Rudi}, journal={arXiv preprint arXiv:1909.06077}, year={2019} }

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].