Scene objects

The main elements in CoppeliaSim that are used for building a simulation scene are scene objects (objects in short). Objects are visible in the scene hierarchy and in the scene view. In the scene view, objects have a three dimensional representation as illustrated in following figure:

[Object types in CoppeliaSim and their three dimensional representation]

Following list gives a brief functional description of each object type:

  • Shapes: a shape is a rigid mesh that is composed of triangular faces.
  • Joints: a joint object is a joint or actuator. Four types are supported: revolute joints, prismatic joints, screws and spherical joints.
  • Graphs: a graph is used to record and visualize simulation data.
  • Dummies: a dummy is a point with orientation. Dummies are multipurpose objects that can have many different applications.
  • Proximity sensors: a proximity sensor detects objects in a geometrically exact fashion within its detection volume. CoppeliaSim supports pyramid-, cylinder-, disk-, cone- and ray-type proximity sensors.
  • Vision sensors: a vision sensor is a camera-type sensor, reacting to light, colors and images.
  • Force sensors: a force sensor is an object able to measure forces and torques that are applied to it. It also has the ability to break if a given threashold is overshot.
  • Cameras: a camera is an object that allows seeing the simulation scene from various view points.
  • Lights: a light is an object that allows illuminating the simulation scene.
  • OC trees: an OC tree is a spacial partitioning data structure made up by voxels.
  • Point clouds: a point cloud is an OC tree structure that contains points.
  • Paths: a path is a succession of points with orientation in space. As path is a pseudo scene object, since it is built using merely dummies and a customization script that describes its functionality and behaviour.
  • Some of above objects can have special properties allowing other objects or various functionality to interact with them. Objects can be:

  • Collidable: collidable objects can be tested for collision against other collidable objects.
  • Measurable: measurable objects can have the minimum distance between them and other measurable objects calculated.
  • Detectable: detectable objects can be detected by proximity sensors.
  • Viewable: viewable objects can be looked through, looked at, or their image content can be visualized in views. Refer to the pages and views-section for more information
  • Each object has a position and orientation within the simulation scene. We refer to an object's position and orientation as configuration of the object. Objects can be attached to other objects (or built on top of each other). If object A is built on top of object B, then object B is the parent and object A is the child. To create a parent-child relationships between object B and object A, select object A, then select object B (the selection order is important). Then select [Edit > Set parent, keep pose(s)]. Following figure illustrates this operation:

    [(1) Before attaching object A to object B, (2) after attaching object A to object B]

    Alternatively, you can drag and drop an object onto another one in the scene hierarchy to obtain a similar result. Notice that object A's configuration was not changed (both objects kept their respective configuration). However, looking at the scene hierarchy, you can see that object A became child of object B. If you now move object B, object A will automatically follow, since object A is attached to object B. Object A can be detached by selecting it, then selecting [Edit > Set parent-less]. Doing so will detach object A without changing its configuration. Alternatively, you can drag and drop an object onto the world icon to obtain a similar result.

    Every object has an absolute configuration (or cumulative configuration) that is relative to the world's reference frame, and a local configuration (or relative configuration) that is relative to the parent object's reference frame. In above example, when object A became child of object B, object A's absolute configuration didn't change, but its local configuration was modified.

    The absolute configuration of the last selected object is displayed in the information text. To modify or adjust the absolute or local configuration of an object, refer to the coordinates and transformations dialog and the section on object position/orientation manipulation.