Gantry Mode in RMP

Hi community,

I would like to gain a better understanding about Gantry mode in RMP and its implementation.

Eg. I have 2 axes mechanically linked together (Gantry) and would like to synchronize the motion and homing processes while compensating for Yaw

I have a few questions regarding the implementation that would kindly require some clarification on:

  1. How is Gantry mode typically implemented in RapidSetup/RapidSetupX or using RapidCode?

  2. Is G-code required for implementing Gantry mode?

  • I noticed in RapidSetup that the LinearModelBuilder under MultiAxis tab requires G-Code for its usage (As I’m not sure if a kinetic model is required for Gantry) or is RapidSetup unable to implement Gantry mode usage and only applicable through RapidCode
  1. Is MultiAxis already sufficient for the mentioned use case? (with simultaneous homing in a multithreaded environment as per this forum post on MultiAxis homing)

I also noticed that the documentation only provided a C++ sample for Gantry and wonder whether Gantry mode is able to be implemented in a C# application as well:

  • In RMP 11.0.5, is the sample code for Gantry for C# examples path-setup-gantry.cs? (Located in “C:\RSI\11.0.5\examples\c#”)

Your clarification and explanation on this is much appreciated for furthering our understanding for Gantry in RMP. Many thanks!

Hi @gregory,

The Gantry Documentation covers torque control of a system where the feedback data from both motors are mixed to handle Yaw compensation.

The LinearModelBuilder in Caresian::Robot is a simple Gantry that wouldn’t have any internal Yaw compensation. You can use some external process for Yaw compensation and plug them into the model’s Offset. The path-setup-gantry.cs is an example of this.

  1. I recommend a gantry should be set up using RapidCode rather than RapidSetup/X.
  2. G-code isn’t required for either type of Gantry.
  3. A multiaxis doesn’t have any inheriting Yaw compensation. It would maintain the same degree of bind through the move. It could work with application processes to handle yaw to your standards. You would have to decide how to compensate and what is acceptable. A simple electronic gearing might work in some applications.

Gantry implementation should be fine for C++, C#, or Python. You are really just setting up a process which is handled in the RMP software and firmware.

1 Like

Hi @jacob,

Much appreciated on the explanation in regards with Gantry in RMP. We’ll give path-setup-gantry.cs a try using RapidCode C#, thank you for the clarification for this.

To help further our understanding, may I know if a RapidSetup/X testing on Gantry mode be possible and if so, what are some settings that I may have to configure?

Once again, thank you very much for your assistance and guidance on Gantry in RMP.

Hi @gregory,

You can’t use RapidSetupX for configurating a Gantry. I think you can partially setup one with RapidSetup, but can’t properly configure it. The Offset will be 0 and Scaling will be 1.0. I recommend going fully Rapidcode for using a Gantry for anything other than uncoupled axes on a work bench.

1 Like