I’m currently playing around adding navigation capabilities to the Kaya robot. In Omniverse Isaac Sim I added a lidar on top of the Kaya REB robot, and modified the Carter navigation sample to reflect changes from differential base navigation to a holonomic base navigation. However, I ran into issues with getting any decent navigation towards a desired pose with this configuration. The localization algorithm consistently would get thrown off whenever the robot would move towards its goal.
I then added a joystick commander component so I could visualize what was causing this problem and quickly found that whenever Kaya would move laterally, the robot frame in the localization viewer would move in the opposite direction. Moving right would move the frame left, moving left would move the frame right. I suspect that this may be an issue in the Kaya_REB model. The forward direction of the model does not line up with the robot coordinate frame direction defined in the coordinate frame documentation. Note that the forward direction of the Isaac SDK defined robot frame is +X, and the left is +Y. In Isaac Sim, the Kaya_REB robot is forward +Y, left -X (see image below).
A couple notes to get the navigation sample sort of working:
- I had to set the robotForward parameter to the +Y direction in the REB_HolonomicBase component in Omniverse
- I had to rotate the lidar frame -90 degrees along the Z axis to make sure the direction the robot is facing is accurate in Websight. Without that -90 degree lidar frame definition (in the kaya.json config in the zip file attached), the robot forward direction points towards the +X direction of the robot (which is to the right of the robot)
With these two changes, I ended up at the state where the tracked lateral movement is reversed. I also attempted rotating the robot model -90 degrees around the Z Axis to line up Kaya with the expected defined robot coordinate frame but that still doesn’t fix my issue.
Is the robotForward parameter working as expected in this case? Is there a workaround solution that I could implement to quickly move around this issue? I might be wrong about the Kaya_REB model frame being the primary cause of the problem, but I can’t seem to pinpoint anywhere else that could be wrong. Does anyone know what I might have gotten wrong in the configurations? Any help would be greatly appreciated.
You can find the zip file of the application config, python script, and the scene with the modified Kaya_REB model at the bottom of this post.
Thanks in advance!
kaya_navsim.zip (496.1 KB)