Articulation of a 4-wheeled robot using ROS2

Dear community,

I want to create a robot with 4 wheels and control it with ROS2. So far, I have the robot model, I have the joints and I implemented the ROS2 interface. When I drive it forwards and backwards, it works fine. When I want to rotate it, it does not work properly. I can see the wheels spinning in the right direction, but the robot is barely rotating. It actually moves slightly forwards/backwards depending on the left/right movement I send.

I implemented the node graph as seen below, where I have 2 Articulation Controllers (one for the front wheels and one for the rear wheels).

I am trying to apply the same technique on two different robots: a Husky and a Leo Rover.

image

In both cases, I have the same behaviour. Unfortunately, all the ROS examples only use 2-wheeled robots, so I have no good reference if this is right the way I am trying to do it.

Are there any suggestions on this?

I am using Omniverse 2022.2.0 on a docker container, running on a remote computer with Ubuntu 20.04 as base.

Thanks for any suggestions.

I found this link related to my issue: Wheel robot with 4 joints can't move by Differential Controller using Action Graph and ROS - #9 by queque.daffer

Here, they use a single articulation controller to control all four wheels. I implemented that same structure, and the behaviour is exactly as before.

Also related is the following issue: 4 wheels differential drive robot issues

I have the same behaviour: the wheels are spinning and creating a circle with a very large radius instead of doing a spot turn.

Is there any way to figure out what is causing the issue? And is there a war to specify the distance between the front and rear wheels?