File size: 1,218 Bytes
6ce4ca6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import type IUrdfLink from "./IUrdfLink";

export interface IUrdfJointLimit {
	lower: number;
	upper: number;
	effort: number;
	velocity: number;
}

export interface IUrdfJointSafetyController {
	soft_lower_limit: number;
	soft_upper_limit: number;
}

export default interface IUrdfJoint {
	name?: string;
	type?: "revolute" | "continuous" | "prismatic" | "fixed" | "floating" | "planar";
	// rpy = roll, pitch, yaw (values between -pi and +pi)
	origin_rpy: [roll: number, pitch: number, yaw: number];
	origin_xyz: [x: number, y: number, z: number];
	// calculated rotation for non-fixed joints based on origin_rpy and axis_xyz
	rotation: [x: number, y: number, z: number];
	parent: IUrdfLink;
	child: IUrdfLink;
	// axis for revolute and continuous joints defaults to (1,0,0)
	axis_xyz?: [x: number, y: number, z: number];
	calibration?: {
		rising?: number; // Calibration rising value in radians
		falling?: number; // Calibration falling value in radians
	};
	dynamics?: {
		damping?: number;
		friction?: number;
	};
	// only for revolute joints
	limit?: IUrdfJointLimit;
	mimic?: {
		joint: string;
		multiplier?: number;
		offset?: number;
	};
	safety_controller?: IUrdfJointSafetyController;
	elem: Element;
}