Description of [robot]_algo.json File

[robot]_algo.json is a robot configuration file which records the parameter information of the robot. It defines the robot type, DH parameters, range of motion, home position of joints, rotation of joints, etc.

The code fragment below is extracted from [robot]_algo.json file as an example.

{
	"algo_type": "SphericalWrist_SixAxis",
	#DH parameters [meter]
	"dh": [ A, B, C, D, E, F ],
	"dhPassive": [ A1X, A1Z, B0X, B0Z, B2X, B2Z ],
	#joint limits [degree]
	"min_limits": [ J1 min, J2 min, J3 min, J4 min, J5 min, J6 min ],
	"max_limits": [ J1 max, J2 max, J3 max, J4 max, J5 max, J6 max ],
	"link3_dynamic_limits": [Min, Max],
	#joint positions at standard pose [degree]
	"mastering_joints": [ J1, J2, J3, J4, J5, J6 ],
	#joint orientations [0/1]
	"axis_flip": "J1J2J3J4J5J6",
	#robot base location [meter,meter,meter,degree,degree,degree]. If robot has not been moved, robot base frame equals to World frame.
	"robot_frame_in_robot_base_frame": [ x, y, z, rx, ry, rz ],
	#robot flange frame orientation [x/y/z]
	"flange_frame_orientation": "z"
}

[robot]_algo.json File

Robot Configurations

Parameter

algo_type

Example

"algo_type": "SphericalWrist_SixAxis"

Description

The configuration type of the robot.
The robot models are divided into 15 categories in Mech-Viz 1.8.0. For more information about the robot configuration, please refer to Robot Configurations.

Robot DH Parameter

Parameter

dh

Example

"dh": [ 0.465, 0.2, 0.88, 0.21, 1.100, 0.225 ]

Description

The DH parameters of the active joints of the robot.
For more information about the definition and calculation methods, please refer to the illustrations in the Robot Configurations.

Parameter

dhPassive

Description

The DH parameters of the passive joints of the robot. For more information about the definition and calculation methods, please refer to the illustrations in the Robot Configurations.
dhPassive parameters are not divided individually in line with the robot configurations, but are all in the form of [ A1X, A1Z, B0X, B0Z, B2X, B2Z ] with zero fill in the blank space.

Robot Joint Motion Range

Parameter

minlimits

Example

"min_limits": [ -160, -65, -77, -360, -125, -360 ]

Description

This parameter defines the minimum motion range of axes of the robot.

Parameter

maxlimits

Example

"max_limits": [ 160, 120, 90 , 360, 125, 360 ]

Description

This parameter defines the maximum motion range of axes of the robot.

  • For most of the robots, you can obtain the accurate motion range of each axis of the robot from the robot’s product manual. The ranges of each axis on the product manuals of Nachi, Hyundai, and other brands are inaccurate and cannot be used directly.

  • For every joint, the two parameters, minlimits and maxlimits, are related to axis_flip. Under certain circumstances, the two parameters and their negative/positive values should be reversed if the value of axis_flip changes. For example, given that "axis_flip": "101010", "link3_dynamic_limits": [-204,80] , if "axis_flip": "100010", then "link3_dynamic_limits": [-80,240].

Parameter

link3_dynamic_limits

Example

"link3_dynamic_limits": [-204,80]

Description

The parameter of dynamic limits.

Parameter

link4_dynamic_limits

Description

The parameter of dynamic limits.

Pose of the Robot with the Angle of Each Axis Being 0°

Parameter

mastering_joints

Example

"mastering_joints": [ -90, 0, 0, 0, 0, 90 ]

Description

This parameter defines the pose of the robot with the angle of each axis being 0°.
When the value of parameters are all set to 0, the robot pose is the same as the one during modeling.

For some robots such as KUKA robots of all series, when the value of J2 and J3 are set to 0, its pose is not same as the default pose in Mech-Viz, and therefore the value of J2 and J3 in mastering_joints should be adjusted.

Rotation Directions of the Robot Axes

Parameter

axis_flip

Example

"axis_flip": "101010"

Description

This parameter defines the rotation directions of the robot axes.

  • After modeling the robot, you need to check whether the rotation orientation of each axis displayed in Mech-Viz is the same with that in the robot simulation software or real robot. If there is difference, you need to adjust the parameter.

  • This attribute will affect other attributes such as minlimits, maxlimits, link3_dynamic_limits, link4_dynamic_limits, etc.

Robot Reference Frame Parameter

Parameter

robot_frame_in_robot_base_frame

Description

This parameter defines the position of the robot reference frame with respect to the robot foundation.

  • For the robots of FANUC and YASKAWA brands, the robot reference frame is one dh1 above the foundation, so this parameter should be [ 0, 0, dh1, 0, 0, 0 ]. That is, the robot reference frame is located at position dh1 in the +Z direction of the robot base frame.

  • For the robots of KAWASAKI brand facing in the +Y direction, this parameter should be [ 0, 0, 0, 0, 0, -90]. That is, with respect to the robot base frame, the robot reference frame goes in a counterclockwise 90° rotation around the Z-axis of the base frame.

  • For YASKAWA MPL3500 Wall robot which has a special robot reference frame, adjust this parameter according to actual situation, and finally it should be [ 0, 0, 0.8, 0, -90 , 90 ]. That is, the robot reference frame is one dh1 higher above the robot base frame, and rotates around its Y-axis and Z-axis.

Robot Flange Frame Orientation

Parameter

"robot_flange_orientation": "x/y/z"

Example

"robot_flange_orientation": "x"

Description

For the robots of some brands such as TURIN, the Z-axis of their flange frames is not pointing outward relative to the flange surface as usual. Instead, the X-axis of the flange reference frame points outward. By configuring the parameter as "robot_flange_orientation": "x", you can change the axis pointing outward to the X-axis in the flange reference frame. When this parameter is not specified, the axis pointing outward defaults to the Z-axis.


Notes When Using a Newly Created Robot Model

When using a newly created robot model, please make sure that the settings of the following parameters correspond with the real robot:

  • axis_flip

    Compare the axis rotation direction of the real robot with that of the simulated robot in Mech-Viz to see if they agree.

  • dh

    You can check if the pose of the simulated robot in Mech-Viz corresponds to that of the real robot by using the following two methods.

    • Synchronize the JPs to compare the TCP.

    • Synchronize the TCP to compare JPs.

      The closer the DH parameters of the real robot are to the theoretical values in the parameter file, the more precise the robot is. An error within 1mm is generally considered acceptable.

  • mastering_joints

    Check if the pose of the simulated robot in Mech-Viz corresponds to that of the real robot.

    Please pay attention to axis-1, axis-4, and axis-6 while checking.

  • min_limits/max_limit

    Check if the pose of the simulated robot in Mech-Viz corresponds to that of the real robot.

    The soft limits of the robot must not exceed its hard limits.