Actin  Version 5.5.5
Software for Robotics Simulation and Control
Simulation Properties

The Simulation Properties Plugin is used to enable and configure the EcDynamicSimulatorSystem and the individual dynamic simulators (EcIndividualDynamicSimulator) in the ActinViewer. It allows us to configure parameters used for dynamic simulation such as time steps, gravity direction, and parameters of the EcIndividualDynamicSimulator such as joint spring/damper properties and joint actuator properties. Please refer to Dynamic Simulation for detailed information about the Dynamic Simulation implementation in our application. To use this plugin load the simulationPropertiesPlugin.ecp file.

Using the Dynamic Simulation Properties Dialog

After loading the plugin, a menu item "Dynamic Simulation Properties" is added to the "Edit->Advanced" submenu as shown in Figure below. Clicking this menu item brings up a dialog we can use to configure the parameters for dynamic simulation.

simulationPropertiesMenu.png
Dynamic Simulation Properties Menu

Enable Dynamic Simulation

When we check the "Enable Dynamic Simulation" checkbox to enable dynamic simulation, we will be given the option to enable or disable the individual dynamic simulators (EcIndividualDynamicSimulator) for each manipulator as shown in the Figure below. In many cases it is not desired to dynamically simulate all manipulators in the simulation. For example, it is common to simulate objects and robots within an environment, but not the enviroment itself (the ground for example).

Dynamic Simulation OFF and ON

editDynSimProp.png
Dynamic Simulation Properties Dialog

If we enable the individual dynamic simulator for a manipulator, we can configure it's dynamic simulation properties.

System Simulation Properties

If dynamic simulation is enabled, we can edit the EcDynamicSimulatorSystem time step, which determines the frequency at which the various dynamics calculations are computed. This is independent of the time step for individual manipulators.

We can also specify the "Up Gravity" vector. The x, y, z fields under the "Up Gravity" groupbox are used to set the gravity vector for the dynamic simulation. This vector specifies the direction opposite of gravities pull. for example, if we look at the image above, we see that if we specify up as 0,0,9.8; then the force due to gravity will pull the rover in the negative z direction.

Configure Dynamic Simulation for a Manipulator

We can configure dynamic simulation properties for each manipulator in the simulation. Select a manipulator in the list and click on the button "Edit Selected", or double click on the manipulator. This will bring a dialog allowing us to configure the parameters for the manipulator as shown in the Figure below.

simPropertiesForManipulator.png
Dynamic Simulation Properties for a Manipulator

For each manipulator, we can specify some general dynamic simulation parameters such as "Time Step", "Integration order" etc and also configure the link level properties such as "Mass Properties", "Spring Damper Properties" and "Joint Actuator Properties". The fields to edit these are found on the left side of the dialog.

Individual Manipulator Dynamic Simulation Properties

  • Time Step: The "Time Step" allows to specify the frequency at which the various properties for the manipulator should be updated by the simulation thread. This value should be less than or equal to the value of the "Time Step" specified for the dynamic simulation in Time Step For Dynamic Simulation.
  • Time between mass matrix evaluations: This field is used to reduce the computation time when the CPU is overloaded. If this field is set to a non-zero value, the simulation thread will skip calls to EcCrbiAccelerationTool::calculateMassMatrix method at the specified interval. Ideally, this should have a value of zero but can be changed to reduce the cost of computation or optimize the seed.
  • Integration order: This field specifies the level of accuracy for calculations of dynamic simulation properties such as "joint accelerations", "joint rates", "base motion" etc. Higher the order of integration, higher is the accuracy of calculations. This field can vary between 1 and 4. For more details on levels of numerical integration provided, please refer to Numerical Integration
  • Simulation Type: This field specifies the method to be used for computing the dynamic simulation properties for a manipulator. Our application supports two methods:
    1. CRBI - Composite Rigid Body Inertia
    2. ARBI - Articulated Body Inertia

We can choose the "Simulation Type" to be specifically one of this or we can choose the option "AUTOMATIC" which will let the application choose the method. If the number of joints in the manipulator is less than 30, CRBI is chosen and if they are more than 30 then ARBI is chosen. Please refer to Dynamic Simulation Calculation Methods for futher details on the calculation methods.

  • Import and Export the Dynamic Simulation Properties: We can Import or Export the Dynamic Simulation Properties of a manipulator to a .xml or a .ecz file format. Click on the "Export" button, this will bring up a "File-Save" dialog prompting user to provide the path and the name of the file in which the exported values should be saved. Select the format and click "OK", this will create the desired file. We can import back these values into the same simulation or perhaps a different simulation that has the same manipulator. Click on "Import", this will bring a "File-Open" dialog prompting user to provide the path and file from which the values hve to be imported.

Link Dynamic Simulation Properties

To edit the properties of an individual link, select it from the "Link Properties" drop down. You can also right click on the link in the simulation and select "Edit dynamic link properties". Here we can edit the mass properties, spring/damper properties, and the joint actuator properties. Each of these are provided in three separate tabs.

editLinkPropContext.png

Joint Actuator Properties

Using this tab, we can edit the joint actuator properties of the joint between the selected link and the previous link. Notice that there is no joint actuator properties to edit if you select the base link, because there is no preceding link to form a joint.

simProp_jointActuatorProp.png
Joint Actuator Properties For a Link

Currently the following are available for edit. For more information please refer to the EcJointActuator class, and the section on Joint Actuator Modeling.

  • frictionCoefficient
  • gearRatio
  • inertia
  • isRigid
  • jointLowerLimit
  • jointUpperLimit
  • maxOutputRate
  • maxTorque
  • minTorque
  • stopperSpringCoefficient
  • stopperDampingCoefficient
  • stopperZone
  • staticCoulombFriction
  • kineticCoulombFrictionPercentage
  • staticCoulombSpringCoefficient
  • staticCoulombDamperCoefficient
  • limitingVelocityStickRegion
  • jointFlexibilityStiffness
  • jointFlexibilityDamping
  • backlash
  • maxEfficiency

Mass Properties

Using this tab, we can edit the "base" mass of the link. You can also edit the mass properties using the more powerful interface provided by the Mass Properties Plugin.

simProp_massProp.png
Mass Properties For a Link

Spring Damper Properties

Using this tab, we can create a spring and damper at the joint. This might be used for a vehicle suspension for example. The image below shows a spring and damper configured for a truck suspension.

simProp_springDamper.png
Spring Damper Properties For a Link

Spring and Damper on Suspension Joints

Time Scaling

An additional feature included with this plugin, is the ability to scale time using the widget in the toolbar. You simply need to click on the clock icon, and use the dial or spinbox to specify the time scale.

timeScalingWidg.png
Time Scaling