How to set up PID values and Effort Limits for Linear actuator mounted on an AGV


I have a lead-screw linear actuator mounted vertically on an AGV. It is powered by a Nema 17 stepper motor and moves at a constant speed of 1.5 m/minute (0.025 m/s) when stepper motor speed is set to 600 steps/minute.


I was trying to model the linear actuator in URDF for simulation testing in gazebo. However I was struggling to figure out how to simulate the specs above. By tinkering with the PID values, I managed to get roughly the correct speed when the actuator is moving up, however, when moving down, the actuator just seems to fall rapidly in simulation.

The PID values I used were:

P: 7000
I: 1.0
D: 10.0

Image of Robot System and Rqt_gui Plots