Skip to content

Commit

Permalink
Merge pull request #364 from jhwangbo/master
Browse files Browse the repository at this point in the history
v1.1.4
  • Loading branch information
jhwangbo authored Sep 5, 2022
2 parents b65a33d + 090402a commit 4d8f8aa
Show file tree
Hide file tree
Showing 368 changed files with 590,175 additions and 4,819 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10)
set(RAISIM_VERSION 1.1.3)
set(RAISIM_VERSION 1.1.4)
project(raisim VERSION ${RAISIM_VERSION} LANGUAGES CXX)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# RAISIM, A PHYSICS ENGINE FOR ROBOTICS AND AI RESEARCH (v1.13)
# RAISIM, A PHYSICS ENGINE FOR ROBOTICS AND AI RESEARCH (v1.14)

Click to watch the video

Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
project = 'raisim'
copyright = '2022, RaiSim Tech Inc.'
author = 'Yeonjoo Chung and Jemin Hwangbo'
version = '1.1.2'
release = '1.1.2'
version = '1.1.4'
release = '1.1.4'
# Output file base name for HTML help builder.
htmlhelp_basename = 'raisim_doc'
html_show_sourcelink = False
Expand Down
Binary file removed docs/image/RUnrealterrain_dune.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_marble1.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_marble2.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_marble3.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_snow.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_steel.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_wheat.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_wood1.png
Binary file not shown.
Binary file removed docs/image/RUnrealterrain_wood2.png
Binary file not shown.
Binary file added docs/image/SingleBodyObjects.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
75,692 changes: 75,692 additions & 0 deletions docs/image/SingleBodyObjects.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/image/raisimUnrealManuel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29,305 changes: 29,305 additions & 0 deletions docs/image/raisimUnrealManuel.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/image/rsu_maps.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
479,645 changes: 479,645 additions & 0 deletions docs/image/rsu_maps.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/image/rsu_timeOfDay.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/image/rsu_weather.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#############################
RaiSim
RaiSim v1.1.4
#############################

RaiSim is a cross-platform multi-body physics engine for robotics and AI.
Expand Down Expand Up @@ -57,6 +57,7 @@ The geometric model is created using the Full-body musculoskeletal model in Raja

sections/Introduction
sections/Installation
sections/Visualizers
sections/ConventionsAndNotations
sections/Math
sections/LoggingSystem
Expand Down
8 changes: 8 additions & 0 deletions docs/sections/ChangeLog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ Change Log
Here we only describe the changes to the RaiSim library.
Other peripheral codes are not tracked here.

**v1.1.4**
=========================================
This version contains significant improvements on the visualizers: RaisimUnity and RaisimUnreal.

* The new server does not reinitialize when a new object is added (try ``examples/src/server/balls` example to see the difference).
* New ``Map`` feature on `RaisimUnreal <https://raisim.com/sections/RaisimUnreal.html>`_.


**v1.1**
========================================
There have been huge changes in this version.
Expand Down
16 changes: 13 additions & 3 deletions docs/sections/Contact.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,17 @@ Collision group and mask in RaiSim uses bit operations as most other physics eng
In the above example, ``sphere0`` is in collision group 0 and can collide with collision group 0 and 1.
``sphere1`` is in collision group 1 and can collide with collision group 0 and 1.
``sphere2`` is in collision group 2 and can collide with collision group 1.
``sphere3`` is in collision group 2 and can collide with any object (-1 means all groups).
``sphere3`` is in collision group 3 and can collide with any object (-1 means all groups).

**The collision group and mask is AND logic**.
In order for A and B collide, A should be able to collide with B and vice versa.

``sphere0`` can collide with ``sphere1``.
``sphere1`` cannot collide with ``spehre2`` (both conditions must be satisfied).
``sphere3`` cannot collide with ``spehre0`` and ``sphere1`` but not with ``sphere2``.
``sphere3`` cannot collide with any objects (because ``sphere0``, ``sphere1`` and ``sphere2`` cannot collide with the collision group 3).

By default, movable object are in collision group 1 and can collide with anything (collision mask = -1).
All static objects (e.g., ground and height map) are in collision group 63 and can collide with anything.
All static objects (e.g., ground and height map) are by default in collision group 63 and can collide with anything.

Contacts
=========================
Expand Down Expand Up @@ -66,3 +69,10 @@ Here is an extensive example
}
}
API
=========
You can get a vector of collisions on an object using ``raisim::Object::getContacts``.
Each element in the vector has the following API:

.. doxygenclass:: raisim::Contact
:members:
2 changes: 1 addition & 1 deletion docs/sections/HeightMap_example_terrain_generator.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ The xml file is constructed as following:
<state pos="1 1 5" quat="1 0 0 0" linVel="0 0 0" angVel="0 0 0" />
</box>
<heightmap name="terrain" xSample="50" ySample="50" xSize="20" ySize="20" centerX="0" centerY="0">
<terrainProperties frequency="0.2" zScale="3.0" fractalOctaves="3" fractalLacunarity="2.0" fractalGain="0.25" stepSize="0" seed="0"/>
<terrainProperties frequency="0.2" zScale="3.0" fractalOctaves="3" fractalLacunarity="2.0" fractalGain="0.25" stepSize="0" heightOffset="0" seed="0"/>
</heightmap>
</objects>
</raisim>
Expand Down
92 changes: 2 additions & 90 deletions docs/sections/Introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,96 +14,8 @@ However, it is a generic rigid-body simulator and can simulate any rigid body ve
* A minimum number of dependencies (only on STL and Eigen)

Visualizer
=====================
There are three options available for visualization.
Most of the examples included in this repo requires raisimUnity to visualize.
You have to run raisimUnity before running the examples.

RaisimUnity
***************

.. image:: ../image/raisimUnity4.png
:alt: raisimUnity
:width: 600

* **If this doesn't work on your linux machine, try raisimUnityOpengl, which is a stripped-down version**
* binaries included in the ``raisimUnity`` directory
* easy to use but less features
* runs on a separate process
* works well in Linux, Mac and Windows

RaisimUnreal - Alpha
*********************

.. image:: ../image/raisimUnreal1.png
:alt: raisimUnity
:width: 600

* Currently available in Widnows and Linux
* Not well tested yet
* Easy to use.
* Can visualize graphs and bar charts
* runs on a separate process
* Closed source

RaisimOgre
************

.. image:: ../image/raisimOgre.png
:alt: raisimOgre
:width: 420

* harder to use but rich in features
* works well in Linux. Should work in other two major OS's but not tested
* easy to customize. Only C++ code
* source code available `here <https://github.com/raisimTech/raisimogre>`_ under the MIT license


Comparison between RaisimUnity and RaisimUnreal
==================================================

Here is a comparison between RaisimUnity and RaisimUnreal.

* **Graphics Quality (my personal opinion)**

* **RaisimUnity**: 7/10.
* **RaisimUnreal**: 10/10 (Somehow the quality is lower in Linux. This might be due to a driver issue.).

* **Compatibility**

* **RaisimUnity**: There is an alternate Opengl version for compatibility because many old or integrated GPU's do not have a proper vulkan-supporting GPU driver on Linux.
* **RaisimUnreal**: Not tested at all. I need your feedback on this. If you find issues, please post it on the github issue.

* **GPU utilization (based on a few examples on my pc)**

* **RaisimUnity**: 90%.
* **RaisimUnreal**: 98% (it runs much faster in Windows. It seems like the Unreal Engine is not working well on Linux. In addition, the weather preset affects the performance significantly).

* **GPU memory usage (with raisim examples)**

* **RaisimUnity**: ~2Gb.
* **RaisimUnreal**: ~2Gb.

* **Mesh loading time**

* **RaisimUnity**: Very fast.
* **RaisimUnreal**: Terribly slow! It also lacks a mechanism for instancing a mesh. This means that if you have 100 robots in the scene, it will create the same meshes 100 times.

* **Support**

* **RaisimUnity**: Will be supported and bug-fixed.
* **RaisimUnreal**: New visualization developments will be on raisimUnreal as it seems like a more promising option. Because Unreal is using C++, It is much easier to develop Simulation API (not just the visualization) as well. This might come sometime this year (2022).

* **Graphs (time series and bar charts)**

* **RaisimUnity**: none.
* **RaisimUnreal**: RaisimUnreal uses Kantan Chart to visualize user created graphs from the server. It can be a convenient way to visualize the training process. Check the ``examples/atlas.cpp`` for usage.

* **Vidoes Recording**

* **RaisimUnity**: Works in Linux.
* **RaisimUnreal**: Will be implemented soon.

=============
Raisim on its own cannot visualize the simulated environment. Please read the Visualizer section.

System Requirements
=====================
Expand Down
4 changes: 2 additions & 2 deletions docs/sections/RaisimServer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ Raisim Server
#############################

RaisimServer serializes ``raisim::World`` and streams the data to clients via tcp/ip.
We provide the raisimUnity (`doc <https://raisim.com/sections/RaisimUnity.html>`_) client, which visualizes a raisim World.
We provide the raisimUnity (`doc <https://raisim.com/sections/RaisimUnity.html>`_) client, which visualizes a ``raisim::World``.
The basic usage is described in the `doc <https://raisim.com/sections/RaisimUnity.html#how-to-use-raisimunity>`_.

Other than just visualizing a raisim world, RaisimServer can visualize additional visual objects.
Other than just visualizing a ``raisim::World``, ``raisim::RaisimServer`` can visualize additional visual objects.
An example can be found `here <https://github.com/raisimTech/raisimLib/blob/master/examples/src/server/visualObjects.cpp>`_.
The example will be displayed as following

Expand Down
7 changes: 6 additions & 1 deletion docs/sections/RaisimUnity.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#############################
RaiSim Unity
RaiSimUnity
#############################

raisimUnity is a visualizer for RaiSim.
Expand Down Expand Up @@ -48,3 +48,8 @@ You can disable auto-connection by unchecking the ``auto-connect`` checkbox.
.. image:: ../image/RSUinstruction2.png

.. image:: ../image/RSUinstruction3.png

Object Appearances
=====================
You can specify the appearance of an object using ``raisim::SingleBodyObject::setAppearance".
If you want to hide object completely in RaisimUnity, you can set appearance as ``hidden-unity``.
Loading

0 comments on commit 4d8f8aa

Please sign in to comment.