@Brian He Could you provide more details about the Mecanum strafing? Because I think the Mecanum wheels that runs or spins must have the same motor speed in order for the robot to travel straight, at least in the H/U drive arrangement that we got. Isn't the faster it spins the more it strafe even it got 1:1 strafing ratio, so if the motor for each wheel aren't running in the same speed the robot may not travel straight.

This is correct. If your motors are not the same strength your robot will not go straight - we had this exact problem on our mecanum drive recently. This is the case for any drive, holonomic or not, although it may be more noticeable with mecanums because strafing them requires a reasonable amount of torque and weak motors will struggle with that. You just have to hope that all the motors you use are up to standard. If they aren't then, if you can, swap them out for ones that are.

@Brian He Which this also lead the another question of mine where if each Mecanum wheel travels exactly 45 degree, and when they are placed parallel or perpendicular with each other, they are able to travel/strafe straight as long as the weight distribution of the robot is quite balanced plus same motor speed?

Each wheel will exert the same force. If the wheels are in the standard rectangular configuration and the centre of gravity is centred between them, each one wheel will exert the same torque on the robot because the moment arms will be the same length. If the wheels are at different distances from the centre of gravity, as it looks like yours might be, then the moment arms will be of different lengths so there will be a torque imbalance and the robot may rotate.

Another consideration is that while mecanums are designed to exert force at 45 degrees to the orientation of the wheel, roller friction means this isn't always the case. As roller friction increases the direction of the force exerted by the wheel will become closer to the wheel's orientation (i.e. the wheel behaves more like a normal wheel). This doesn't affect the torque balance of a normal mecanum drive, but it will affect yours because your wheels are mounted in different orientations. This is the reason why I said your drive would produce non-straight strafe. It's possible that several conflicting factors will cancel each other out and make the robot strafe straight. If not, it's not a big problem because your driver can adjust for the wonkiness.

@Brian He In my opinion, I guess the intuition thing you’ve mentioned above is perhaps what I need to avoid when doing some relatively higher level of engineering. We started our actual robot construction quite late, around 2 weeks before the competition date and it was during that period of time I found that there are significant number of obstacles when transforming theories/conceptual ideas into actually working mechanicals.

This is true. Engineering involves some mathematical analysis and some intuition, with more of the former as complexity increases. There is a tendency when building Vex robots to forgo any kind of mathematical analysis and use intuition based on experience because Vex systems are simple enough that it's usually a more effective approach.

This is a bit of a pity from a engineering education point of view. I think the best approach if you're interested in learning more about the engineering (or perhaps if you're a mentor interested in teaching students more about the engineering, but that's not where my experience is) is to see mathematical analysis as complementary to an experience-based approach and to check whether the results of your analysis match up with what works. If not then your analysis is mising something and maybe you can learn from your mistake, if so then maybe you found a good solution quicker than you would have through trial and error.

@Brian He Would this provide a way for calculating the optimal gear ratio? :

Weight the robot then put it on a ramp and adjust to the maximum ramp angle -> calculate the friction force -> divide by the diameter of the wheel -> then compare the result force value with the motor's stalling torque value and see the ratio. The ratio represents the gear ratio...

but the ramp surface must be the same material with the competition field

This would calculate the minimum gear ratio (i.e. the one providing the most force) that you could use without the robot losing traction. This is because static friction measures the amount of force you can put on stationary object A which is in contact with stationary object B (usually the ground) before A will move. In the case of wheels it is the amount of force you can put on the wheel before the wheel will slip.

The optimal gear ratio will not involve static friction since your wheels should not be slipping - the force required to slip a Vex wheel on Vex foam is outside the bounds of what a normal robot will exert under normal (non-pushing) conditions. Calculating the optimal gear ratio for driving would involve making sure that your motors are giving as much power as possible. Power is torque multiplied by rotational velocity, so the motor gives zero power output while stalled (zero rotational velocity) or while freely spinning (zero torque). The optimum rotational speed for a motor is about halfway between these values, depending on the individual motor's characteristics. For a Vex motor halfway will be a good approximation because Vex motors are permanent magnet DC motors.

The optimal gear ratio will be the one that gives the greatest energy output when driving for a given amount of time, or the one that maximises the integral of power with respect to time over the time travelled. As I mentioned in my previous post the parameters of this calculation would be difficult to get accurate measurements for.