BlueROV PID vs Statespace

Question and then the explanation:

Are the Attitude Control and Position Control only PID? I know there is an EKF, but the actual control is just PID, right?

Explanation:

My use case for the BlueROV2 is to look at a vertical wall underwater in a turbulent flow. I tried to use OpenCV with Ardupilot but I just could not get it to work. Also, I have read that the Raspberry Pi Camera has a latency of at least 200ms, which may be too slow. I realized I can use the PX4Flow camera to get Optical Flow measurements directly rather than having to stream the frames up to a laptop via ROS, calculate flow and then send the control signals back down. If I can do that Ill toss the ROS stuff. But I am looking at AC_AttitudeControl currently and all I see is PID. I would like to take each of the states from the EKF and do full state feedback or something similar. I presume this has not been attempted yet.

I don’t think this has been attempted yet. Ardupilot uses nested PID loops to control rate+angle and acc+vel+pos.

You could also try using a dvl pointing forward to lock the wall.

An interesting idea, thanks. I assume that these PID’s are in the AC_AttitudeControl_Sub.cpp, in AC_AttitudeControl_Sub::rate_controller_run(). But I dont see how they are nested?