I’m trying to use RidgebackFranka robot (RidgebackFranka/ridgeback_franka.usd) for mobile manipulation task where I need to know the position and velocity of the robot. I use set_joint_velocity_targets to move the robot. It sets the target velocities for “dummy” prismatic joints that the RidgebackFranka is currently using. However when I try to get the world (or local) pose of the robot using get_world_poses I see that the poses remain unchanged even though I see that the robot has moved in the viewport and the dof positions that I can see from get_joint_positions have also changed.
Is there a better way to control the RidgebackFranka robot in such way that I can get the pose with get_world_poses? Or is there a way to setup the “dummy” prismatic joints so that they change the pose of the robot?
EDIT: Also, is there a way to set the RidgebackFranka robot to move in it’s local x-axis after rotation? Currently I need to calculate what the local x-axis movement would be in world coordinates. Eg. If I rotate the robot with the prismatic z-axis joint and then want to move forward, I need to calculate what that movement is in world x and y axes because now the world x-axis and local x-axis are not the same anymore.
Found out that I can create RigidPrimView for the base_link prim and then I will get the correct pose. But I’m still wondering is there a better way to move the robot forward in it’s local x-axis not global so that rotating the robot changes the forward direction.
What I want is for example
when the robot is controlled to rotate and move forward, I want the robot to move forward along the rotated direction.
However, the present robot move along the world x-axis direction not along the rotated direction