Simulation Parameters#

Parameters of the simulation, including physics parameters (eg. friction, gravity) and visualization parameters (eg. render mode, render FPS), are defined in the Parameters class. This class, however, does not include parameters that are specific to the NeuroMechFly model itself (eg. which body segments are included in collision tracking; where the model is spawned at the beginning of the simulation).

class flygym.mujoco.Parameters#

Parameters of the MuJoCo simulation.

Attributes:
timestepfloat

Simulation timestep in seconds, by default 0.0001.

joint_stiffnessfloat

Stiffness of actuated joints, by default 0.05.

joint_dampingfloat

Damping coefficient of actuated joints, by default 0.06.

actuator_kpfloat

Position gain of the actuators, by default 18.0.

tarsus_stiffnessfloat

Stiffness of the passive, compliant tarsus joints, by default 2.2.

tarsus_dampingfloat

Damping coefficient of the passive, compliant tarsus joints, by default 0.126.

frictionfloat

Sliding, torsional, and rolling friction coefficients, by default (1, 0.005, 0.0001)

gravityTuple[float, float, float]

Gravity in (x, y, z) axes, by default (0., 0., -9.81e3). Note that the gravity is -9.81 * 1000 due to the scaling of the model.

contact_solref: Tuple[float, float]

MuJoCo contact reference parameters (see MuJoCo documentation for details). By default (9.99e-01, 9.999e-01, 1.0e-03, 5.0e-01, 2.0e+00). Under the default configuration, contacts are very stiff. This is to avoid penetration of the leg tips into the ground when leg adhesion is enabled. The user might want to decrease the stiffness if the stability becomes an issue.

contact_solimp: Tuple[float, float, float, float, float]

MuJoCo contact reference parameters (see MuJoCo docs for details). By default (9.99e-01, 9.999e-01, 1.0e-03, 5.0e-01, 2.0e+00). Under the default configuration, contacts are very stiff. This is to avoid penetration of the leg tips into the ground when leg adhesion is enabled. The user might want to decrease the stiffness if the stability becomes an issue.

enable_olfactionbool

Whether to enable olfaction, by default False.

enable_visionbool

Whether to enable vision, by default False.

render_raw_visionbool

If enable_vision is True, whether to render the raw vision (raw pixel values before binning by ommatidia), by default False.

render_modestr

The rendering mode. Can be “saved” or “headless”, by default “saved”.

render_window_sizeTuple[int, int]

Size of the rendered images in pixels, by default (640, 480).

render_playspeedfloat

Play speed of the rendered video, by default 0.2.

render_fpsint

FPS of the rendered video when played at render_playspeed, by default 30.

render_camerastr

The camera that will be used for rendering, by default “Animat/camera_left”.

render_timestamp_textbool

If True, text indicating the current simulation time will be added to the rendered video.

render_playspeed_textbool

If True, text indicating the play speed will be added to the rendered video.

vision_refresh_rateint

The rate at which the vision sensor is updated, in Hz, by default 500.

enable_adhesionbool

Whether to enable adhesion. By default False.

draw_adhesionbool

Whether to signal that adhesion is on by changing the color of the concerned leg. By default False.

adhesion_forcefloat

The magnitude of the adhesion force. By default 20.

draw_sensor_markersbool

If True, colored spheres will be added to the model to indicate the positions of the cameras (for vision) and odor sensors. By default False.

draw_contactsbool

If True, arrows will be drawn to indicate contact forces between the legs and the ground. By default Fasle.

decompose_contactsbool

If True, the arrows visualizing contact forces will be decomposed into x-y-z components. By default True.

force_arrow_scalingfloat

Scaling factor determining the length of arrows visualizing contact forces. By default 1.0.

tip_lengthfloat

Size of the arrows indicating the contact forces in pixels. By default 10.

contact_thresholdfloat

The threshold for contact detection in mN (forces below this magnitude will be ignored). By default 0.1.

draw_gravtiybool

If True, an arrow will be drawn indicating the direction of gravity. This is useful during climbing simulations. By default False.

gravity_arrow_scalingfloat

Scaling factor determining the size of the arrow indicating gravity. By default 0.0001.

align_camera_with_gravitybool

If True, the camera will be rotated such that gravity points down. This is usful during climbing simulations. By default False.

camera_follows_fly_orientation: bool

If True, the camera will be rotated so that it aligns with the fly’s orientation. By default False.