István,
With the mobile bases, it's best if you can use all actuators of the same type. The reason the actuators track differently is that the X5-9s have significantly more torque compared to the X5-1s, so they track the velocity command more easily under acceleration load and wheel friction. I don't know what actuators you have access to, but even if you can swap out the X5-1s for X5-4s, things should get a good bit better.
However, if you don't have 4 of the same actuator, it may be possible to tune the actuators to respond similarly. To start with I would try adding
Velocity I gain and increasing it on the X5-1s. You may also need to raise the I-Clamp value from its default setting. It is also important to limit the overall acceleration of the system, since the X5-1s will reach their torque limits much sooner than the X5-9s.
Another thing that should help is to command positions as well as velocities. If you are currently sending just velocity commands, you can forward-integrate those commands at each timestep by your
dt to get get a commanded position, and send those to the actuators as well. This will act similarly to the
Velocity I gain, with the benefit that it will only 'wind up' to the proper wheel position. Note that you will now also have to tune the
Position P gains as well.
We do this combined position/velocity method in our kit Matlab example code, and also make use the HEBI Trajectory API to get smooth velocity profiles. This also has the advantage of making it easy to limit the commanded acceleration of the base, which is probably important in your case. An example is here:
https://github.com/HebiRobotics/hebi-ma ... emo.m#L148
Finally, commanding positions also will help you get the 'braking' behavior you're looking for, since you're always actively commanding wheels to a certain position, even if it's stationary.
Hope this helps,
-Dave