How to apply continuous control input by virtual joystick (MANUAL_CONTROL message)?

Hello guys
I am planning to design the ROV to operate autonomously (program-controlled).
I found that the Manual control message and RC_input in Pymavlink can realize the behavior like a virtual joystick.
When I utilized a real joystick to control the yaw motion, for instance, the rotating speed of the thruster changed continuously by my control.
However, when I control the yaw motion by set_rc_channel_pwm(4, 1600), or
master.mav.manual_control_send(
master.target_system,
0,
0,
500,
100,
0)
I can only get an impulse response.

I also tried input hold in this way:
master.mav.manual_control_send(
master.target_system,
0,
0,
500,
100,
0)
master.mav.manual_control_send(
master.target_system,
0,
0,
500,
0,
button) # my input hold button according to joystick set up
The control is also discontinuous with strong chattering.
How can I program a continuous controller in the Raspberry PI by pymavlink?
Any suggestions are appreciated.
Thanks for any help.