MAVROS /mavros/manual_control/send doesn't work at all

Hello, I’m trying to build a ground control application using MAVROS. I am sending manual control messages to mavros (/mavros/manual_control/send) but I get no reaction from MAVROS or even from SITL’s console. When trying with a real pixhawk (APM), the motors don’t start when sending manual control messages. Psuedo-code:

        let manual_control_pub = ros::publisher::publisher::<mavros_msgs::ManualControl>(
        loop {
            let (x, y, z, r, buttons) = controller.generate_message();
            let header = rosrust_msg::std_msgs::Header {
                seq: counter,
                stamp: Time::now()
                frame_id: "keyboard_controller",
            counter += 1;
            let message = ManualControl {

More logs can be found at my github issue Manual Control doesn't work · Issue #1844 · mavlink/mavros · GitHub

My team and I had a few issues with the Pixhawk running ArduSub. You have to make sure you flash the correct version for your hardware, on qGroundControl you should be able to see a few options depending on the firmware. I would also ike to point out that you do not call the service to arm the ROV in the pseudo code provided. Even if you had been sending everything correctly no movement would be observed.

Another item we had issues with was that when running MAVROS you should have a parameter called /mavros/target_system_id this is an ID parameter that effectively acts as a firewall on the ROV. Digging around online you’ll see people force this by adding ?id=254,1 to the end of the fcu_url parameter in the launch file.

Unfortunately it didn’t help. Also I want to say that I push my arm button before.