Skip to content

Commit 26f69d8

Browse files
Merge branch 'gz-sim9' into Amal-python-system-GIL
2 parents 1d01094 + 76305df commit 26f69d8

File tree

5 files changed

+109
-25
lines changed

5 files changed

+109
-25
lines changed

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,13 @@ where the YAML files for the packages are found, such as
106106
export GZ_CONFIG_PATH=/usr/local/share/gz:$HOME/ws/install/share/gz
107107
```
108108

109-
where `$HOME/ws` is an example colcon workspace used to build Gazebo
109+
where `$HOME/ws` is an example colcon workspace used to build Gazebo.
110+
111+
On Windows, `gz sim` (i.e. running both server and GUI in one command) doesn't yet work.
112+
To run Gazebo Sim on Windows, you need to run the server in one terminal (`gz sim -s <other args>`)
113+
and the GUI in another terminal (`gz sim -g <other args>`). Remember this when reading through
114+
all Gazebo Sim tutorials. Also remember that Conda and `install\setup.bat` need to be sourced
115+
in both terminals (as well as any changes to `GZ_PARTITION` and other environment variables).
110116

111117
# Documentation
112118

@@ -116,7 +122,7 @@ See the [installation tutorial](https://gazebosim.org/api/sim/9/install.html).
116122

117123
See the [installation tutorial](https://gazebosim.org/api/sim/9/install.html).
118124

119-
See the [Writing Tests section of the contributor guide](https://github.com/gazebosim/gz-sim/blob/main/CONTRIBUTING.md#writing-tests) for help creating or modifying tests.
125+
See the [Writing Tests section of the contributor guide](https://gazebosim.org/docs/all/contributing/#writing-tests) for help creating or modifying tests.
120126

121127
# Folder Structure
122128

tutorials/install.md

Lines changed: 72 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
\page install Installation
22

3-
These instructions are for installing only Gazebo. If you're interested
4-
in using all the Gazebo libraries, not only Igniton Gazebo, check out this
3+
These instructions are for installing only Gazebo Sim. If you're interested
4+
in using all the Gazebo libraries including gz-launch, or to install all
5+
libraries from source, check out
56
[Gazebo installation](https://gazebosim.org/docs/latest/install).
67

78
We recommend following the binary install instructions to get up and running as
@@ -50,6 +51,27 @@ installing Gazebo from source.
5051
brew install gz-sim<#>
5152
```
5253

54+
### Windows
55+
56+
1. First, follow the steps 1-4 of [Gazebo source install](https://gazebosim.org/docs/ionic/install_windows_src/#install-dependencies)
57+
tutorial to install Conda, Visual Studio and set up a Conda environment (we'll call it `gz-ws`).
58+
59+
Do not forget to activate the Conda env (if not already activated)
60+
inside the Visual Studio Command Prompt:
61+
62+
```
63+
conda activate gz-ws
64+
```
65+
66+
2. Now install Gazebo.
67+
68+
```
69+
conda install gz-sim<#> --channel conda-forge
70+
```
71+
72+
Be sure to replace `<#>` with a number value, such as 8 or 9, depending on
73+
which version you need.
74+
5375
## Source Install
5476

5577
Install from source if you're interested in changing the source code or need a
@@ -115,6 +137,50 @@ feature which hasn't been released yet.
115137
sudo make install
116138
```
117139

140+
### Windows
141+
142+
1. First, follow the steps 1-4 of [Gazebo source install](https://gazebosim.org/docs/ionic/install_windows_src/#install-dependencies)
143+
tutorial to install Conda, Visual Studio and set up a Conda environment (we'll call it `gz-ws`).
144+
145+
Do not forget to activate the Conda env (if not already activated)
146+
inside the Visual Studio Command Prompt:
147+
148+
```
149+
conda activate gz-ws
150+
```
151+
152+
2. Install Gazebo dependencies:
153+
154+
You can view available versions and their dependencies:
155+
```
156+
conda search libgz-sim* --channel conda-forge --info
157+
```
158+
159+
Install the dependencies, replacing `<#>` with the required versions:
160+
```
161+
conda install gz-cmake<#> gz-common<#> gz-fuel-tools<#> gz-gui<#> gz-math<#> gz-msgs<#> gz-physics<#> gz-plugin<#> gz-rendering<#> gz-sensors<#> gz-tools<#> gz-transport<#> gz-utils<#> sdformat<#> --channel conda-forge
162+
```
163+
164+
3. Navigate to where you would like to build the library, and clone the repository.
165+
```
166+
# Optionally, append `-b gz-sim#` (replace # with a number) to check out a specific version
167+
git clone https://github.com/gazebosim/gz-sim.git
168+
```
169+
170+
4. Configure and build
171+
```
172+
cd gz-sim
173+
mkdir build
174+
cd build
175+
cmake .. -DBUILD_TESTING=OFF # Optionally, -DCMAKE_INSTALL_PREFIX=path\to\install
176+
cmake --build . --config Release
177+
```
178+
179+
5. Optionally, install
180+
```
181+
cmake --install . --config Release
182+
```
183+
118184
## Documentation
119185

120186
API documentation and tutorials can be accessed at [https://gazebosim.org/libs/gazebo](https://gazebosim.org/libs/gazebo)
@@ -123,7 +189,10 @@ You can also generate the documentation from a clone of this repository by follo
123189

124190
1. You will need [Doxygen](http://www.doxygen.org/). On Ubuntu Doxygen can be installed using
125191
```
192+
# Linux
126193
sudo apt-get install doxygen
194+
# Windows
195+
conda install doxygen --channel conda-forge
127196
```
128197

129198
2. Clone the repository
@@ -137,7 +206,7 @@ You can also generate the documentation from a clone of this repository by follo
137206
mkdir build
138207
cd build
139208
cmake ../
140-
make doc
209+
cmake --build . --target doc
141210
```
142211

143212
4. View the documentation by running the following command from the `build` directory.

tutorials/physics.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ by default.
1010

1111
Downstream developers may also integrate other physics engines by creating new
1212
Gazebo Physics engine plugins. See
13-
[Gazebo Physics](https://gazebosim.org/api/physics/7/tutorials.html)'s
13+
[Gazebo Physics](https://gazebosim.org/api/physics/8/tutorials.html)'s
1414
tutorials to learn how to integrate a new engine.
1515

1616
## How Gazebo finds engines
@@ -25,24 +25,32 @@ If you've created a custom engine plugin, you can tell Gazebo where to find it
2525
by setting the `GZ_SIM_PHYSICS_ENGINE_PATH` environment variable to the
2626
directory where the plugin's shared library can be found.
2727

28-
For example, if you've created the following physics engine shared library on
29-
Linux:
28+
For example, if you've created the following physics engine shared library:
3029

3130
```
31+
# Linux
3232
/home/physics_engines/libCustomEngine.so
33+
# Windows
34+
C:\Users\Robot\physics_engines\CustomEngine.dll
3335
```
3436

3537
You should set the variable as follows:
3638

3739
```
40+
# Linux
3841
export GZ_SIM_PHYSICS_ENGINE_PATH=/home/physics_engines
42+
# Windows
43+
set GZ_SIM_PHYSICS_ENGINE_PATH=C:\Users\Robot\physics_engines
3944
```
4045

4146
If you have several libraries installed in different paths, you can add more
4247
paths, for example:
4348

4449
```
50+
# Linux, separate with :
4551
export GZ_SIM_PHYSICS_ENGINE_PATH=/home/physics_engines:/home/more_engines
52+
# Windows, separate with ;
53+
set GZ_SIM_PHYSICS_ENGINE_PATH=C:\Users\Robot\physics_engines;C:\MoreEngines
4654
```
4755

4856
## Tell Gazebo what engine to load
@@ -52,6 +60,7 @@ There are a few different ways of telling Gazebo which engine to load.
5260
For any method, you should provide the name of your plugin's shared library,
5361
but the `lib` prefix and the file extension are optional. So in this example,
5462
the file is `libCustomEngine.so` but it's enough to set `CustomEngine`.
63+
That is also prefered to support multiple operating systems.
5564

5665
### From SDF
5766

@@ -103,23 +112,23 @@ Gazebo supports the following physics engine configurations through SDF.
103112
These options are available to all physics engines, but not all engines
104113
may support them. The default physics engine, DART, supports all these options.
105114

106-
* [//physics/dart/collision_detector](http://sdformat.org/spec?ver=1.8&elem=physics#dart_collision_detector)
115+
* [//physics/dart/collision_detector](http://sdformat.org/spec?ver=1.11&elem=physics#dart_collision_detector)
107116
* Options supported by DART: `ode` (default), `bullet`, `fcl`, `dart`.
108117

109-
* [//physics/dart/solver/solver_type](http://sdformat.org/spec?ver=1.8&elem=physics#solver_solver_type)
118+
* [//physics/dart/solver/solver_type](http://sdformat.org/spec?ver=1.11&elem=physics#solver_solver_type)
110119
* Options supported by DART: `dantzig` (default), `pgs`
111120

112121
## Troubleshooting
113122

114123
> Failed to find plugin [libCustomEngine.so]. Have you checked the
115124
> GZ_SIM_PHYSICS_ENGINE_PATH environment variable?
116125
117-
Gazebo can't find out where `libCustomEngine.so` is located.
126+
Gazebo can't find out where `libCustomEngine.so` or `CustomEngine.dll` is located.
118127

119128
If that's an engine you believe should be installed with Gazebo Physics,
120129
check if the relevant plugin is installed.
121130

122-
If that's a 3rd party engine, find where the `.so` file is installed and add
131+
If that's a 3rd party engine, find where the `.so` or `.dll` file is installed and add
123132
that path to the environment variable as described above.
124133

125134
> Unable to load the [/home/physics_engines/libCustomEngine.so] library.

tutorials/point_cloud_to_mesh.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ After installing, open CloudCompare and import your point cloud file by going to
2121
Depending on the number of points in your point cloud, this could take several minutes.
2222
Once loaded, you should see the following tunnel section:
2323

24-
![Opening the point cloud](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/cloudcompare2.png)
24+
\image html files/point_cloud_to_mesh/cloudcompare2.png
2525

2626
Many 3D scans will be composed of millions, sometimes hundreds of millions of points.
2727
Converting a scan to a 3D model with that many points would be very difficult due to the number of polygons that would be created and the long processing time necessary to compute the normals.
@@ -35,21 +35,21 @@ We'll still walk through reducing points, however, to make the process quicker.
3535

3636
To reduce the number of points in your cloud, click on the tunnel so a yellow cube outline appears around it, then go to `Edit` > `Subsample`.
3737

38-
![Min. space between points](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/min_space.jpg)
38+
\image html files/point_cloud_to_mesh/min_space.jpg
3939

4040
The number you will need to enter in the `min. space between points` field will vary depending on your point cloud.
4141
A value of .01 was sufficient to bring our point cloud to an easy-to-manage 1 million points.
4242
Point count is visible in the `Properties` window on the lower left side of the screen.
4343

44-
![Point count of subsample](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/properties.png)
44+
\image html files/point_cloud_to_mesh/properties.png
4545

4646
How many points you reduce down to will largely depend on how long you are willing to wait for the point cloud to be converted into a mesh.
4747
The more points you start with, the longer it will take to compute the normals and create the mesh.
4848

4949
After the operation is complete you’ll have two clouds in your scene: the original point cloud and your subsampled point cloud.
5050
Most operations in CloudCompare will create new point clouds and keep the original, so make sure that you have the new point cloud selected before running an operation.
5151

52-
![Selecting the new point cloud](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/secondcloud.png)
52+
\image html files/point_cloud_to_mesh/secondcloud.png
5353

5454
### Create a Polygonal Mesh
5555

@@ -60,7 +60,7 @@ A normal is essentially the direction a polygon is facing.
6060
To do this, go to `Edit` > `Normals` > `Compute`.
6161
You'll see this dialog box:
6262

63-
![Choose Triangulation surface model](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/compute_normals.png)
63+
\image html files/point_cloud_to_mesh/compute_normals.png
6464

6565
You’ll see various options in the dialog box that appears.
6666
The main thing you’ll want to consider is what `Local surface model` to use.
@@ -73,7 +73,7 @@ Now we get to actually convert our point cloud to a mesh.
7373
To do this go to `Plugins` > `PoissonRecon`.
7474
You'll see this dialog box:
7575

76-
![Octree depth and output density selection](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/outputdensity.png)
76+
\image html files/point_cloud_to_mesh/outputdensity.png
7777

7878
The value you enter in the `Octree depth` field will determine the polygon count of the created model.
7979
You may have to run the surface reconstruction a couple times with varying values before you land on a polygon count that is suitable for your needs.
@@ -94,18 +94,18 @@ Our tunnel has turned into a blob shape.
9494
This is because the mesh that CloudCompare creates will always be water tight even if it has to add polygons where there are no points.
9595
We just want our tunnels, though, so we need to remove those unnecessary polygons.
9696

97-
![The blob shape](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/blob2.jpg)
97+
\image html files/point_cloud_to_mesh/blob2.jpg
9898

9999
This is where our scalar field comes in.
100100
In the mesh's `Properties` window go to `SF display params` and take the left handle in the graph and drag it to the right until it hits the area where the bulk of the scalar field starts.
101101

102-
![Adjusting scalar filed params](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/sf_display.png)
102+
\image html files/point_cloud_to_mesh/sf_display.png
103103

104104
This will display only the polygons that were created from the point cloud and hide the polygons used to make the model watertight.
105105
The polygons are only hidden however.
106106
We still need to actually remove them.
107107

108-
![Display original polygons](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/hidden_polygons2.jpg)
108+
\image html files/point_cloud_to_mesh/hidden_polygons2.jpg
109109

110110
To remove the hidden polygons go to `Edit` > `Scalar fields` > `Filter By Value`.
111111

@@ -114,11 +114,11 @@ Hitting export will simply export the mesh within that range.
114114
Instead, we'll hit `Split` to create two meshes.
115115
One with the polygons inside our specified range and one containing polygons outside that range.
116116

117-
![Splitting the mesh](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/split.png)
117+
\image html files/point_cloud_to_mesh/split.png
118118

119119
It is possible that you will get error "Visibility table not instantiated". This error causes only the "wanted" part of the mesh to be created when splitting, while the other ("unwanted") part will not be generated. But that is not a problem for our use-case.
120120

121-
![Error "Visibility table not instantiated"](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/error.jpg)
121+
\image html files/point_cloud_to_mesh/error.jpg
122122

123123
### The Completed Model
124124

@@ -128,6 +128,6 @@ Your file format will depend on the software you want to use but `.obj` is a wid
128128

129129
Before exporting, check your mesh for holes. If still checked, disable display of the pointcloud, so that only your output mesh is shown. Inspect ground parts of the mesh (or any other parts you are most interested in) and check if there aren't holes in it. If there are some, you can try to repeat the trimming step with more relaxed threshold.
130130

131-
![The completed mesh](https://raw.githubusercontent.com/gazebosim/gz-sim/main/tutorials/files/point_cloud_to_mesh/complete2.png)
131+
\image html files/point_cloud_to_mesh/complete2.png
132132

133133
You can find more information on CloudCompare and a more in depth look at the tools we used in this tutorial on [the CloudCompare website](https://www.cloudcompare.org/) and the [CloudCompare wiki](https://www.cloudcompare.org/doc/wiki/index.php?title=Main_Page).

tutorials/terminology.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ to developers touching the source code.
2626

2727
* **System**: Logic that operates on all entities that have a given set of
2828
components. Systems are plugins that can be loaded at runtime.
29-
Gazebo ships with various systems, and downstream develpers can
29+
Gazebo ships with various systems, and downstream developers can
3030
[create their own systems](createsystemplugins.html).
3131

3232
* **Entity-component manager** (**ECM**): Provides functions for

0 commit comments

Comments
 (0)