I want to publish the pose of multiple simulated humans (omni.anim.people) with ROS2.
In a first attempt, I added the auto generated prims ‘/World/Characters/Tom’ to the targetPrims of the TF-Publisher node, however, these values did not change when the person was walking around.
With a bit of experimentation, I found that “/World/Characters/w3/male_adult_construction_01/ManRoot/male_adule_construction_01” has the correct transform so I added this to the target_prims for all of my humans (called b1, w1, w2, w3).
In the tf-message, I get these _child_frame_ids:
male_adult_construction_01
World_Characters_w2_male_adult_construction_01_ManRoot_male_adult_construction_01
World_Characters_w1_male_adult_construction_01_ManRoot_male_adult_construction_01
World_Characters_b1_male_adult_construction_01_ManRoot_male_adult_construction_01
I think the publisher uses the last part of the prim_path as name and if it detects a collision, it uses the whole prim_path as name. That works, but I guess it would be better to also use the full prim_path of the first element so that all prims use the same format. If I now want to use the data, I can parse the identifier from 3 out of 4 transforms, but need to implement a special rule for the first human.
So how about adding an optional value in the target_prims, e.g. in the format of ‘prim_path;tf_frame’ so it’s possible to explicitly set the child_frame_id instead of relying on the auto-naming?