Rover-3.5 will include basic support for “Omni” boats (and cars) that can move laterally using 4 thrusters as shown in the diagram above. It’s “basic” because for now, the ability to move laterally is only supported in Manual mode. Auto, RTL, etc will work but the vehicle will turn to get back onto the line towards the next waypoint instead of moving laterally to get back on the line.
The code hasn’t been tested yet because neither the main developer AmmarF nor I has a boat like this. So if anybody does we would greatly appreciate help in testing. The setup is like this:
- load the “latest” ArduPilot Rover firmware onto the flight controller. If using the Mission Planner on a pixhawk go to the Install Firmware screen and press Ctrl-Q. The label under the Rover icon should change to “ArduRover V3.5.0-dev”. Click on the icon to install this firmware.
- connect the thrusters to the flight controller’s main outputs using the mapping shown in the pic above
- set the SERVO1_FUNCTION to motor1, SERVO2_FUNCTION to motor2, SERVO3_FUNCTION to motor3, SERVO4_FUNCTION to motor4.
- set the FRAME_TYPE to “2” for OmniX, “3” for OmniPlus.
You should find that the yaw stick allows moving the vehicle laterally in Manual mode.
Thanks in advance to any one who can help us test this new frame type!
I have two spare thrusters that I could probably adapt and install on my Catamaran for testing. The pain in the butt part is wiring up the ESC’s though.
I am short a motor ATM, but will have it sorted for the weekend, I will give both x & + a go hopefully by then.
I have a dev boat/board that can easily mount different setups on.
I have tested the X frame config, I can get forward/reverse and lateral left/right working but not correct yaw. It seems that I have to reverse motor 2 & 4 so yaw works then it makes the other directions not work.
I have spent a lot of time double checking my setup and I’m fairly confident
that it is a code issue.
I will test the + config tomorrow and see how it goes.
Tested + frame today, all worked well. Very well in fact, tested loiter mode worked fine, maybe better than a skid steer as it can correct the yaw orientation very quickly and independently of the propulsion motors.
Also ran a small 5 waypoint auto mission, after some quick tuning, the boat ran happily around the waypoints at 1m/s. As it can turn very tight having the bow thruster, no weaving and stuck in line with waypoints well. With more tuning could be even better. All depends on use case I guess.
Lateral movement was ok, I did need to input a little yaw to keep it straight.
Mainly due to propulsion thruster drag at the rear. What would really help that is a “stablized” mode that holds the last yaw angle that the driver stops at, this would make it “stickier” ( lack of a better discription) to drive. Similar to copter or ardusub versions.
I did shot a rough vid, I will try to post soon, I haven’t really done one yet.
Great, thanks for trying this out! I’m really looking forward to seeing the video.
I suspect @Ammarf will have a peek at the OmniX code to see if he can spot the issue.
Re the “stabilized” mode… I think Acro mode would probably be want you’re looking for but that won’t work yet. We’re planning to extend the lateral control to all the modes eventually.
Here is the video as promised.
It is a bit dodgy as i was driving and filming at the same time.
It does give a rough idea of the capabilities of what the frame type can do.
Great to see the video, thanks!
Thanks for the feedback and the video, looks great!
I will take a look at the OmniX code, I suspect it’s just a matter of the steering factors being switched so it shouldn’t be difficult to fix.
Glad I can help, I did go go over my setup on the X Frame a lot to make sure it wasn’t a problem on my end.
I don’t want to waste the time of both of you for my mistake if possible.
I look forward to the amended code if that turns out to be the problem.
Very nimble platform for sure.
I may have found the problem for the X frame, this motor layout was on Github
And this motor layout above.
I think Ammarf was thinking that i might be something with the motor assignment.
I hope this helps.
OK thanks. I certainly hope we use the motor numbering from the bottom pair of pictures. The top set looks like the number are borrowed from the multicopter plus and X frames which suffers from having been set in stone about 6 years ago when someone had the crazy idea that that was a better order.
Sorry for the delay, I just posted a PR that I think should fix the problem.
The fix is in “master” (aka “latest”) so it should be possible to load the firmware by going to the MP’s install firmware screen and pressing “Ctrl-Q”. The label under the car icon should change to something like Rover-3.5-dev. I think other GCS (like QGroundControl) will also allow loading “latest”.
Yep I will download tonight and give it a try on the weekend.
Just to be clear the motor out put is set to the latest diagram?
Hi just tested the X frame Omni Boat
All worked well in the steering/mixing (see vid)
Loiter didn’t work for some reason and auto didn’t seem to play the game, I will give it another go tomorrow in a different location.
One thing I noticed is that you defiantly get more roll angle in the X frame config when moving laterally.
Great, thanks for trying this out.
I guess this was Manual mode? I wonder if you could try Acro?
Yes the previous videos are in manual mode, I had a quick go of Acro mode the afternoon(see vid).
There is defiantly oscillations going forward and turning.
The PID settings were left over from the + frame config auto mission which worked quite well for that setup.
I assume with some tuning this could be sorted out.
Would this explain why loiter wouldn’t work at all?
Great, thanks for that. Yes, it looks like the ATC_STR_RAT_** parameters are set too high… but basically ACRO seems to work.
Loiter and Auto should both work but they don’t yet take advantage of the lateral motors. If you have a log I can take a peek…