Holonomic drive messages

Hi,

I’m trying to do holonomic navigation in warehouse.

I replaced Kaya_REB instead of Carter_REB in “Warehouse Navigation with carter” sample.

added a lidar topic in Kaya_REB/base_link and added a REB_Lidar in Kaya_REB related to the lidar topic.

When play and create Application from Robot Engine Bridge, the lidar works and moves with the Kaya, then I ran the Isaac SDK part for holonomic navigation, the goal pose and path generated accordingly, but Kaya moved in wrong path.

screenshots:

I am not sure if it is the right steps to simulate holonomic navigation with Kaya.

  1. I didn’t modify the Kaya model to attach a lidar on it, I just added a lidar topic and REB_lidar and it can detect obstacles.

  2. Is that possible to check REB_HolonomicBase result? input/output messages? or the speed message that send from IsaacSDK and received by IsaacSim omniverse?

Appreciate for any helps!

Unfortunately, Kaya is not yet supported in Isaac Sim. Kaya’s holonomic drive base simulation scripts have not yet been implemented

Hi @ltorabi any news on this?

Hi @eliabntt94 ,

We have this basic example with joystick for Kaya: Kaya Sample Application — Omniverse Robotics documentation

Please see if this is helpful for you.

Kindly,
Liila

Hey, thanks for the fast response.

I’ve seen that. But I was looking more at a ROS component (like ROS_DifferentialBase) or at a REB component so that I can control that through code.
I’ve seen the REB_holonomic base but it’s not clear to me if it is also omnidirectional. I’ve experimented a lot today so I have a bunch of question that maybe you can answer:

  • Can I develop a custom ROS component to move my robot? smth like ROS_DifferentialBase but for my omnidirectional robot. If so is there any tip?
  • Is the REB_HolonomicBase also usable in a omnidirectional way?
  • Is it possible to send command to the REB_DifferentialBase (or any other component) through ros? For this I think I have to dig into rosbridge and the tutorials but I didn’t had time today ;)
  • Maybe, you can also check my other question regarding the rendering layers for the camera if you have time

Much appreciated,
Elia

One option is to do something like: How to set velocities of a mobile robot with /cmd_vel? - #4 by Hammad_M
along with the dynamic control extension to receive a custom ROS message in your extension, and then use set_articulation_dof_velocity_targets Dynamic Control [omni.isaac.dynamic_control] — isaac_sim 2021.1.1-beta.9 documentation for the driven joints.

Note that the drive should be set up for velocity control similar to this example: ROS TurtleBot3 Sample — Omniverse Robotics documentation

This is the most general solution as you can use any standard ROS message to pass the data around and write a controller either on the ROS side, or inside isaac sim with full access to physics state information through dynamic control.

1 Like

Yeah, I’ve done something similar in Gazebo since I didn’t model all the rollers as you’ve done with kaya. The only difference is that I used three virtual joints in that case :) I’ve to understand better how to use the REB_holonomicbase and how to expose that through ros though since I think that should solve the problem since it seems that it’s omnidirectional.
BTW, as a suggestion, exposing that to ROS would be great. Also, would be nice if we could code plugins/custom components following a blueprint to give a bit more flexibility :)