Support for Omni Boats coming in Rover-3.5

@labomat,

We don’t support propeller’s that heading can be rotated around (yet) I’m afraid. I’ve seen some expensive looking research boats that have this so it has crossed my mind to add support. it’s not terribly hard but it’s certainly a few days of effort for someone. Probably the first step is to raise and issue in the issues list so the request isn’t forgotten.

@RezaB

Have you tried the motors test in the MP? After that a log file is probably the best way for someone to look into this.

Hi @rmackay9,

I have just tried the motors test but receive the error: Command denied by autopilot. This is with the vehicle armed. I assume this is the problem I am having, how can I fix it?

Thanks,
Reza

Hi Reza,

Just disarm the boat and the motors test should work. If the vehicle is automatically always armed after startup then there’s a parameter, ARMING_REQUIRED that must be set to “1” to allow arming/disarming.

Even with the vehicle disarmed, I am running into this problem.

Maybe it ist already there: I think this is about my issue: https://github.com/ArduPilot/ardupilot/issues/7481

@Erl77 do you think you could describe the steps you took in setting up your vehicle? I am trying to do the same thing, but have not managed to get it to work…

Hey mate

Im heading out of town for 2 days then will be back. I have seen your posts and have been thinking of what the issue could be.

Assuming you have it armed and your motor assignment correct eg motor 1 set to 34.

Then it might be a radio calibration issue, maybe!!!

I will write a step by step with some photo of what i did to get it going when I gat back.

Cheers

Hello Reza

Sorry for the late reply, I have been away. I hope you have got your X frame boat going by now, but if not I will share what I found with the new revision of the firmware.

I managed to setup my omni boat again, (I use the flight control for different boat setup)

I flashed the latest firmware 3.5 rc1. I then :-

  1. set Frame Class to 2 , set the FRAME_TYPE to “2” for OmniX

  2. set the SERVO1_FUNCTION to motor1, SERVO2_FUNCTION to motor2, SERVO3_FUNCTION to motor3, SERVO4_FUNCTION to motor4.

Now what happens was that the flight controller didn’t detect that it was a omni boat automatically and map the servo functions to the motors.

This may be happening with you, because they are not mapped you don’t get any motor output.

I changed this by just randomly changing all the servo function to a different motor numbers, eg servo1 to motor3. This seemed to help kick off the mapping of the motors. Once mapped i changed them back to the correct order and they stayed mapped.

I hopes this helps.

Cheers

We’ve started beta testing for Rover-3.5 now so I’m keen we get to the bottom of this. I think it’s very possible we have a bug because the developer didn’t actually have access to a 4 thruster boat when writing the code nor do we have a simulated model of this sort of boat.

Hi ERL,

Does it always fail to map the servo functions?

I think it can’t map them properly when Throttle and GroundSteering are already set, but usually when I disable them, set the FRAME_TYPE parameter and reboot the flight controller, the servo functions are mapped without problems.

Hey Ammarf

I did have it set previously as a skid steer boat so those those left right parameter where set, so this may have been problem, for not correct mapping.

I don’t swap between omni and skid all that often so this priblem was a First.

Thought it might help sharing the issue.

On a side note, has the been any progress on omni directional auto code yet. I realise it will be difficult to implement.

Hey ERL

I finished writing the code for Auto a couple of months ago but I reckon it will need a few adjustments after testing it. Unfortunately I haven’t had the time to test it and I don’t have access to the omni rover I used to test on at the moment.

If you still have access to an omni frame and would like to test the auto code, I could share the code in a week or two.

I’m more than happy to help test the code, thanks for taking the time to write it.
My wish list includes a heading hold or stabized mode , to allow easier lateral driving in manual and acro, also auto mission with a set heading angle, using either a set_yaw type command.

As I said before I’m more that happy to help anyway​ i can.

Thanks

Hello Ammarf

Have you made any headway with the Lateral Auto code for omni rover config?

I’m more than happy to help out with the testing ASAP.

Cheers

Hi there!

Yes, I have the code here and I attached a flashable firmware. It looks like it should be OK to test now but as I have mentioned I don’t have access to an omni boat, so your feedback would be greatly appreciated.

As of now, all it does is use the lateral output to stay on the line connecting 2 waypoints. This should be a good place to start I think. You can search for ATC_LTR_LAT parameters if you’d like to play with the PID.

Thanks again.

ardurover.apj (769.3 KB)

Great

I will load it tonight and will try to run a few waypoint missions.

Do you think a do_set_yaw type command will work? Will see soon enough I guess.

Thanks for working on this!!!

Cheers.

I don’t think that would work now, but I will look into how can this be added.

Hello All

I managed to test the Lateral movement Beta code, it does seem to work well after some tuning.

It took awhile to to figure out that it needed some feed forward on the lateral tuning PID’s.

You can see in the video that after turning at the WP the boat moves laterally back to the line between the waypoints without changing the heading/yaw.

So Ammarf I think the code works well. I had only one chance on the weekend to try. I will follow up with further test this week, It has been very hot.

Cheers

2 Likes

nice video, looking good!