0309 » History » Version 24
Simon Lacroix, 2018-03-12 00:41
Slight updates from Simon
1 | 5 | Pierre Narvor | h1. 03/09 : PoM/Prism Discussion |
---|---|---|---|
2 | 1 | Pierre Narvor | |
3 | 11 | Pierre Narvor | *Participants :* |
4 | 3 | Pierre Narvor | Simon, Ellon, Quentin, Pierre |
5 | 1 | Pierre Narvor | |
6 | 11 | Pierre Narvor | *Goal of the meeting :* Discuss the PoM/Prism architecture (previously InSitu). Prism is the sub-task of PoM which handle the internal transform tree of a robot (RobotBaseFrame to SensorFrame(s)). |
7 | 5 | Pierre Narvor | |
8 | 24 | Simon Lacroix | *Note :* PoM is divided in two parts: Prism which handles the pose of sensors relative to the robot and (name undefined, default = MightyLocalizer) MightyLocalizer which handles the pose of the robot frame relative to the world frames (absolute, site, local). The meeting is only about Prism. |
9 | 9 | Pierre Narvor | |
10 | 21 | Pierre Narvor | |
11 | |
||
12 | |||
13 | 12 | Pierre Narvor | h2. Features of Prism |
14 | 7 | Pierre Narvor | |
15 | 24 | Simon Lacroix | * *Load and maintain the RobotBaseFrame to SensorFrame(s) tree of the robot up to date:* URDF configuration file for initialization. Is a client of moving sensor mounts (arms, orientable devices such as a Pan&Tilt Unit...) to update the internal transform tree. No memory of the past trees has to be maintained. Handles transform uncertainties. |
16 | 1 | Pierre Narvor | |
17 | 24 | Simon Lacroix | * *Sensor pose service:* Any sensor acquiring exteroceptive data (vision, stereovision, Lidar) must ask Prism for a time stamp and a sensor pose (= current transform RobotBaseFrame to SensorFrame + uncertainty). The pose and the time are stored by the sensor node as metadata of the sensor data (this pose will be of use only with this data, hence no memory is needed in Prism). |
18 | 10 | Pierre Narvor | |
19 | 24 | Simon Lacroix | * *Send time stamp to mighty-localizer for saving:* In the future, some poses in a world frame of the sensor that acquired data (or of the RobotBaseFrame at the time of data acquisition) may be revised (typically, by a SLAM node). For the MightyLocaliser to manage theses poses (to update them, or to deliver it to a node that need them - typically the DEM node), they must be memorised: by sending the time stamps associated to data acquisitions, Prism notifies the MightyLocaliser that the poses in the world frames must be memorised. |
20 | 6 | Pierre Narvor | |
21 | 21 | Pierre Narvor | |
22 | 1 | Pierre Narvor | |
23 | 17 | Pierre Narvor | h2. Details |
24 | |||
25 | 21 | Pierre Narvor | |
26 | |||
27 | 1 | Pierre Narvor | h3. Loading and maintaining internal tree |
28 | 14 | Pierre Narvor | |
29 | 24 | Simon Lacroix | * *Internal Tree :* all SensorFrames connected to the RobotBaseFrame through one or several edges. Two types of edges : fixed or moving. |
30 | 1 | Pierre Narvor | |
31 | 21 | Pierre Narvor | !Prism.png! |
32 | 14 | Pierre Narvor | |
33 | 24 | Simon Lacroix | * *Initialization:* Internal tree building form URDF file. Do we need default values for moving edges to define? |
34 | 1 | Pierre Narvor | |
35 | 24 | Simon Lacroix | * *Maintaining the tree :* Prism receives poses from all the moving sensor mounts. Movable edges in the internal tree are updated right away (no memory). To define: communication between joints and Prism (identification of joints etc...). |
36 | 1 | Pierre Narvor | |
37 | 21 | Pierre Narvor | |
38 | |
||
39 | 19 | Pierre Narvor | |
40 | h3. Sensor pose service |
||
41 | |||
42 | 1 | Pierre Narvor | Acquired sensor data has be associated with a pose of the sensor and a time stamp. |
43 | |||
44 | 24 | Simon Lacroix | The SensorFrame to RobotBaseFrame transform (furnished by Prism) is measured at the time of the acquisition and will NOT be modified later. Hence, no memory is needed in Prism and the SensorFrame to RobotFrame transform is recorded alongside the data outside of Prism. (the RobotBaseFrame to WorldFrame recorded at the time of acquisition may however be modified later by MightyLocalizer). |
45 | 1 | Pierre Narvor | |
46 | * *Content of a data structure :* The data is published in a structure alongside the time stamp and pose at the acquisition, and two FrameId (SensorFrameId and RobotBaseFrameId). |
||
47 | |||
48 | 19 | Pierre Narvor | * *Workflow :* |
49 | |||
50 | 24 | Simon Lacroix | # Data acquisition by sensor |
51 | # Sensor node asks Prism for a time stamp and a pose |
||
52 | # Sensor node publish a complete data struct |
||
53 | |||
54 | Two options can be foreseen: |
||
55 | # When a sensor acquires a data, it notifies Prism |
||
56 | # Prism gets the associated transform |
||
57 | # Prism delivers the sensor to RobotBaseFrame to the sensor (and its time stamp) |
||
58 | An alternate way is to have the moving sensor mounts permanently broadcast their transforms, and Prism systematically computes the associated tree branch. The corresponding transform is provided to the sensor when it acquires data (upon a request by the sensor node to Prism) |
||
59 | 1 | Pierre Narvor | |
60 | 21 | Pierre Narvor | |
61 | |
||
62 | 20 | Pierre Narvor | |
63 | h3. Send time stamp to mighty-localizer for saving |
||
64 | |||
65 | The time stamp at time of acquisition must be saved by MightyLocalizer for the case where a localization DFPC needs the RobotBaseFrame to WorldFrame pose at time of data acquisition. |
||
66 | 1 | Pierre Narvor | |
67 | 21 | Pierre Narvor | |
68 | !WorkFlow.png! |
||
69 | 20 | Pierre Narvor | !Prism_meeting_board.jpg! |