Affix a joint when in contact with floor (humanoid feet in ROS2)
Hi all. I'm using ROS2 eloquent. How do we affix a joint in space programatically and not in URDF? The joint is not permanently fixed nor do I want to affix to its parent frame but to a point in space relative to the world or odom frame. Basically, how do I tell the TF system that the foot should not move since it is in contact with the floor?
I've added an IMU to my humanoid and used robot_localization node to update the robot state/pose. However the robot IMU response rotates around the torso in RViz because the system knows nothing of the feet being planted on the floor. Since the feet are not fixed to the floor they are free to float around when TF is solved.Since the torso or base_link is the IK root I suppose it chooses this as the rotational root by default.
I believe the robot_state_publisher node is doing the TF based on the code I see there. It seems like there is no way to do this unless I modify robot_state_publisher but I'm thinking someone must have solved this already. Perhaps the footprint frame should be the IK root but this isn't the frame hierarchy that REP-120 recommends. With proper affixing of the feet I can then also compute proper odemetry as the humanoid walks.
Thanks, Colin