@@ -1104,216 +1104,3 @@ message Polygon3d
11041104 //
11051105 repeated Vector3d vertex = 1 ;
11061106}
1107-
1108- //
1109- // \brief A skeleton representing the posture of a person.
1110- //
1111- // This is a generic skeleton model that can be used for any person
1112- // representation, such as vehicle occupants or pedestrians.
1113- //
1114- // The skeleton is defined relative to a root point. The root point itself
1115- // is positioned relative to the bounding box center of the containing
1116- // entity using \c #bbcenter_to_root.
1117- //
1118- // \note The \c Bone message and \c Bone::Type enum are structurally
1119- // equivalent to the ones defined in
1120- // \c MovingObject::PedestrianAttributes::Bone. The duplication exists
1121- // because Protocol Buffers does not support message type aliases,
1122- // and \c PedestrianAttributes::Bone cannot be changed without a breaking
1123- // change. In OSI 4, \c MovingObject::PedestrianAttributes is planned to
1124- // adopt this common \c PersonSkeleton type, eliminating the duplication.
1125- //
1126- message PersonSkeleton
1127- {
1128- // Position offset from the bounding box center of the containing entity
1129- // to the current position of the root point of the skeleton model.
1130- //
1131- // For an occupant this is the offset from the vehicle's bounding box
1132- // center (\c MovingObject::base . \c BaseMoving::position) to the
1133- // skeleton root, analogous to
1134- // \c MovingObject::VehicleAttributes::bbcenter_to_rear.
1135- //
1136- // For a pedestrian this is the offset from the pedestrian's bounding
1137- // box center to the skeleton root, analogous to
1138- // \c MovingObject::PedestrianAttributes::bbcenter_to_root.
1139- //
1140- optional Vector3d bbcenter_to_root = 1 ;
1141-
1142- // List of all bones of the person.
1143- //
1144- // The number of bones may vary, based on the detail level of
1145- // the model used. For example, some simulators will not include
1146- // detailed data about the hands.
1147- //
1148- // \note A bone of each type can be provided, or left out, depending
1149- // on the desired level of detail, or available data. However, if a
1150- // bone is defined, all bones in the chain from that bone back to
1151- // the root point must be provided to create a complete chain.
1152- //
1153- repeated Bone skeleton_bone = 2 ;
1154-
1155- //
1156- // \brief A bone in the skeleton of a person.
1157- //
1158- // Each point represents a joint, or otherwise important point in the
1159- // skeleton. For example pelvis, knee or shoulder. The naming convention
1160- // should be followed for identifying bones.
1161- //
1162- // \note This message is structurally equivalent to
1163- // \c MovingObject::PedestrianAttributes::Bone. See the note on
1164- // \c PersonSkeleton for the rationale behind the duplication.
1165- //
1166- message Bone
1167- {
1168- // Bones are identified by their type, combined with which body side
1169- // they are on.
1170- //
1171- // To properly identify the bones the pre-defined naming convention
1172- // must be used.
1173- //
1174- // \image html OSI_SkeletonNamingConvention.svg
1175- //
1176- // A bone's name, position, and orientation is defined by the end-point
1177- // closer to the root. For example: the "LOWER_ARM_L" will define the
1178- // point in the left elbow of the model.
1179- //
1180- // If a bone which is more than one layer detached from the
1181- // root point is used, all bones between that bone and the root also
1182- // need to be defined in order to create a complete chain!
1183- //
1184- // If information about bones are missing, they may be left empty.
1185- //
1186- optional Type type = 1 ;
1187-
1188- // Position of the bone.
1189- //
1190- // Reference system is the root, defined by
1191- // \c PersonSkeleton::bbcenter_to_root.
1192- //
1193- optional Vector3d position = 2 ;
1194-
1195- // Orientation of the bone.
1196- //
1197- // Reference system is the root, defined by
1198- // \c PersonSkeleton::bbcenter_to_root.
1199- //
1200- optional Orientation3d orientation = 3 ;
1201-
1202- // Length of the bone.
1203- //
1204- // Measured along its major axis.
1205- //
1206- // Unit: m
1207- //
1208- optional float length = 4 ;
1209-
1210- // Determines whether a bone is explicitly missing from the model.
1211- //
1212- // In case a person has missing limbs this can be explicitly
1213- // communicated by setting this boolean to TRUE.
1214- //
1215- optional bool missing = 5 ;
1216-
1217- // The velocity of the bone.
1218- //
1219- // Reference system is the root, defined by
1220- // \c PersonSkeleton::bbcenter_to_root.
1221- //
1222- optional Vector3d velocity = 6 ;
1223-
1224- // The orientation rate of the bone.
1225- //
1226- // Reference system is the root, defined by
1227- // \c PersonSkeleton::bbcenter_to_root.
1228- //
1229- optional Orientation3d orientation_rate = 7 ;
1230-
1231- // The type of the bone.
1232- //
1233- // \image html OSI_PedestrianModelHierarchy.jpg
1234- //
1235- enum Type
1236- {
1237- // Root point of the person. Defined by
1238- // \c PersonSkeleton::bbcenter_to_root.
1239- //
1240- TYPE_ROOT = 0 ;
1241-
1242- // Bone defining the hip.
1243- //
1244- TYPE_HIP = 1 ;
1245-
1246- // Bone defining the lower part of the spine.
1247- //
1248- TYPE_LOWER_SPINE = 2 ;
1249-
1250- // Bone defining the upper part of the spine.
1251- //
1252- TYPE_UPPER_SPINE = 3 ;
1253-
1254- // Bone defining the neck.
1255- //
1256- TYPE_NECK = 4 ;
1257-
1258- // Bone defining the head.
1259- //
1260- TYPE_HEAD = 5 ;
1261-
1262- // Bone defining the left shoulder.
1263- //
1264- TYPE_SHOULDER_L = 6 ;
1265-
1266- // Bone defining the right shoulder.
1267- //
1268- TYPE_SHOULDER_R = 7 ;
1269-
1270- // Bone defining the left upper arm.
1271- //
1272- TYPE_UPPER_ARM_L = 8 ;
1273-
1274- // Bone defining the right upper arm.
1275- //
1276- TYPE_UPPER_ARM_R = 9 ;
1277-
1278- // Bone defining the left forearm.
1279- //
1280- TYPE_LOWER_ARM_L = 10 ;
1281-
1282- // Bone defining the right forearm.
1283- //
1284- TYPE_LOWER_ARM_R = 11 ;
1285-
1286- // Bone defining the left hand.
1287- //
1288- TYPE_FULL_HAND_L = 12 ;
1289-
1290- // Bone defining the right hand.
1291- //
1292- TYPE_FULL_HAND_R = 13 ;
1293-
1294- // Bone defining the left thigh.
1295- //
1296- TYPE_UPPER_LEG_L = 14 ;
1297-
1298- // Bone defining the right thigh.
1299- //
1300- TYPE_UPPER_LEG_R = 15 ;
1301-
1302- // Bone defining the left shin.
1303- //
1304- TYPE_LOWER_LEG_L = 16 ;
1305-
1306- // Bone defining the right shin.
1307- //
1308- TYPE_LOWER_LEG_R = 17 ;
1309-
1310- // Bone defining the left foot.
1311- //
1312- TYPE_FULL_FOOT_L = 18 ;
1313-
1314- // Bone defining the right foot.
1315- //
1316- TYPE_FULL_FOOT_R = 19 ;
1317- }
1318- }
1319- }
0 commit comments