Disclaimer— I am a complete noob with the ardusub and ROV. In fact, I am a mechanical engineer so when it come to programming and electronics gizmo you’ll need to use small word and basic descriptions.
I took my heavy configuration for the maiden splash today and have most things set, configured and calibrated except in the Depth and Stabilize modes the vehicle has a steady yaw to the starboard while the compass holds steady. If I correct the heading with control I put, the compass swings with the vehicle. The compass (and vehicle) is steady if sitting in manual mode.
Example: if the vehicle is pointed north and depth (or stabilize) mode is engaged, the vehicle will start to yaw right at about 1 rpm. Even as the vehicle turns the compass still pointing north. If the vehicle yaws 90 degrees and I correct with control input back to the north heading, the compass turns too and with the vehicle back to a north heading the compass will now show east.
I have done the compass calibration, controller calibration, accelerometer calibration and am now out of ideas.
I am experiencing a similar issue, we are offshore and had a system failure, which required us to redirect all the motors to their channels(and lights, laser, camera).
Since the reprogramming, whenever I go into depth hold mode, the ROV rolls and behaves completely erratically. Is there anyone who can help me regain normal operations of the Depth hold Function?
That sounds really odd. My first thought is some form of electrical noise causing incorrect compass readings, but that doesn’t seem consistent with the compass seemingly working fine when you’re using manual controls (you’re still controlling the same thrusters). I’m not sure what exactly could be going on here, so I’ve brought this up internally, and should hopefully have a useful response for you soon.
In the meantime, can you confirm that the compass turns as expected if you turn the ROV while it’s disarmed in the air? And does it actually work correctly when manually controlled (e.g. does it rotate back to where it started when the ROV does a full turn?)
This seems to be a different issue - @K.Kraz is discussing unexpected steady yaw, which is likely a compass-related problem, whereas your issue is for roll and erratic behaviour, which would seem more likely to be a gyroscope problem. I’ll leave it here for now in case they are in fact related (they’re at least seemingly both rotation-focused?), but if it turns out they’re separate then I’ll split your comment out into a separate thread
This sounds like a parameter reset. Is it possible one or more of the motor numbers or directions were mis-assigned when they were being set back up in QGroundControl? Does the ROV control as expected in manual mode?
I’d recommend you try a motor test to ensure each motor is the one you’ve specified it is, and you can swap any that are the wrong way around. Once that’s done I’d recommend you do an automatic direction detection (same link) to ensure that each thruster is rotating the way the ROV expects it to be.
This issue seems be be related to Gyro calibration. Since subs are often operated in water, we have INS_GYR_CAL set to 0 (Never). That seems to cause some issues where the EKF is unable to cope with a large gyro offset in YAW.
We need INS_GYR_CAL set to “Never” because the gyro calibration routine waits for the gyro values to settle down, which is not likely to happen on a moving boat.
we are investigating a good solution for this issue.