You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-3Lines changed: 18 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,7 @@ This package also supports most of FCL's object shapes, including:
17
17
* Ellipsoid
18
18
* Capsule
19
19
* Cone
20
+
* Convex
20
21
* Cylinder
21
22
* Half-Space
22
23
* Plane
@@ -25,10 +26,11 @@ This package also supports most of FCL's object shapes, including:
25
26
26
27
## Installation
27
28
28
-
First, install [octomap](https://github.com/OctoMap/octomap), which is necessary using OcTree. For Ubuntu, using`sudo apt-get install liboctomap-dev`
29
+
First, install [octomap](https://github.com/OctoMap/octomap), which is necessary to use OcTree. For Ubuntu, use`sudo apt-get install liboctomap-dev`.
29
30
Second, install FCL using the instructions provided [here](https://github.com/flexible-collision-library/fcl).
30
31
If you're on Ubuntu 17.04 or newer, you can install FCL using `sudo apt-get install libfcl-dev`.
31
32
Otherwise, just compile FCL from source -- it's quick and easy, and its dependencies are all easily installed via `apt` or `brew`.
33
+
Note: the provided install scripts (under `build_dependencies`) can automate this process as well.
32
34
33
35
In order to install the Python wrappers for FCL, simply run
34
36
```shell
@@ -39,8 +41,7 @@ pip install python-fcl
39
41
40
42
### Collision Objects
41
43
The primary construct in FCL is the `CollisionObject`, which forms the backbone of all collision and distance computations.
42
-
A `CollisionObject` consists of two components -- its geometry, defined by a `CollisionGeometry` object,
43
-
and its pose, defined by a `Transform` object.
44
+
A `CollisionObject` consists of two components -- its geometry, defined by a `CollisionGeometry` object, and its pose, defined by a `Transform` object.
44
45
45
46
#### Collision Geometries
46
47
There are two main types of `CollisionGeometry` objects -- geometric primitives, such as boxes and spheres,
@@ -88,6 +89,20 @@ m.addSubModel(verts, tris)
88
89
m.endModel()
89
90
```
90
91
92
+
If the mesh is convex, such as the example above, you can also wrap it in the `Convex` class. Note that the instantiation is a bit different because the `Convex` class supports arbitrary polygons for each face of the convex object.
In addition to a `CollisionGeometry`, a `CollisionObject` requires a `Transform`, which tells FCL where the `CollisionGeometry` is actually located in the world.
93
108
All `Transform` objects specify a rigid transformation (i.e. a rotation and a translation).
0 commit comments