Handling of collision geometries
Created by: jmirabel
GeometryData
contains a vector of GeometryObject
built from the robot model. There are two points that should be discussed now, with a priority order:
- Add obstacles,
- Add robots.
Add obstacles
The obstacles will be added to the GeometryData
of the device. So far, GeometryData
has a vector of CollisionObject
. To handle static objects, we can:
- add a
GeometryObject
whose parent joint is 0. Any time the geometry placement is updated, we apply aData::oMi[0] := SE3::Identity()
transformation to the geometry, - add them at the end and keep the index of the last moving geometry. In other words, keep the vector so that the moving geometries are first. This may cause an issue later, when loading several robots and environments in an undefined order.
- add a second list of static geometries.
The corresponding GeometryData
has to be updated accordingly but this won't be an issue as the object having a GeometryData
are already notified when an obstacle is added.
Append a robot
I haven't really thought of this but it would be good to start the discussion. Is there a way of:
- either appending a model to another,
- or read a URDF directly into a model, providing the joint to which the model from URDF must be appended ?