After looking at Nils Dohse’s BIN I saw that his DesLatAcc was smaller than mine. Went through to see what parameters were different and came across PSC_POS_P. His was lower than the “minimum” so I gave it a try. The smaller the number the better it got, went down to .006.
There is still an oscillation of the same duration but an almost manageable amplitude.
I have a feeling this is from the boat being more of a barge and less of a boat. Probably need to give it a keel so that it is more directional.
I have a hard time trying to understand why the line is more important than the waypoint. Wish you could change priority to “aim heading to waypoint” instead of “get to the line”.
Just wanted to update incase this could help anybody in the future, as this has been an absolute time sink.
Boat:1200lbs on barrels
Motors: 2 Minn Kota 40lbs thrust
ESC: Brushed Quicrun880 (50%limit)
RC Receiver: Arduino Uno with toggle switches.
Battery: Lead Acid
Biggest problem is that even though you put in your crafts limitations(acc/dec, turn radius, turn G, Rotacc, max turn rate, WP radius) it did not take any of that into account when trying to get the craft to the line. When you entered the waypoint circle, it would just turn after you pass “the wall.”
It wasn’t until I found PSC_POS_P, and lowered it way past its minimum .025, I made progress. Loosened up the pull to the line which is needed in a larger craft. Realized the limits are just suggestions so I put ATC_STR_RAT_P to 6.
Really happy with the results, some adjustments here and there probably.
If you have a similar size boat here is the BIN with all of the parameters:
For some reason this runs speed was targeted at MaxSpeed instead of WP Speed, never happened before, hopefully wont again. The corners look different because there was wind.
this looks promising. we are getting better slowly running waypoint missions but at the moment due to holiday season having problems finding enough space on the ocean to run waypoint missions without hitting other boats. most of the times we meet sailing boats so we have to stop and let them through. we will chech PSC_POS_P and ATC_STR_RAT_P to match your values and report back.
we wen’t for a ride today and after tuning ATR_STR_RAT_P = 2 yaw in Acro-Mode was steady ±.2 degrees and with PSC_POS_P we were strait on the planned route. now looking into heading-change at waypoint, it seems we are overshooting them. Heading to next waypoint changes after 20-50m of passing the actual waypoint so we start turning way to late instead of infront of a waypoint. Running ArduRover 4.5.4 on a Navio2 with an external Hemisphere GPS.
Hi, we moved forward a lot and made the vessel run fine with a couple of caveats. We completed the tuning-process to s-curves worked fine, crosstrack-error was minimal. We pushed it to the limits by trying to run search-pattern (parallel lines with about 25m distance in between).
I have to look into my notes on what parameters made the S-Curves work fine.
We running in auto mode we had the problem that the vessel would turn into corner to fast and then wobble around the upcoming straight till it settled on this. we could not solve this.
we then moved on into guided mode. there this woble after destination change was even worse. wo moved on to guided mode because our goal was to control the vessel from ROS2. We changed the FlightController from Navio2 to Pixhawk6x, results were comparable between these two flight controllers. The we started digging Tinto ArduPilot-Ros2-DDS. We could not make this work reliable to we changed to mavros, which was very stable. we could send speed and turn rate to the vehicle and control it from ros2. Then one of my crazy colleagues sat down 30 minutes on a ship ride and wrote an ros2-node to translate from cmd_vel vectors (speed/turn-rate) to our engines directly with pid-controllers for speed and turn rate and kicked out ardupilot.
we need ros2 for path-planning. our goal is an autonomous vessel that will obey shipping-rules like colreg-aware collision avoidance. In my personal opinion I tell an autounomous surface vehicle where it shall be at the and and it will obey the rules of shipping and get there on it’s own. To do collision avoidance and path-planning we utilize S63 SeaCharts, AIS, Radar (X-Band and mmWave Conti Ars-548) and Lidar (Ouster OS2, Blickfeld Cube).
Ardupilot has been a great help to get into the topic of vehicle-control, to learn and understand the controllers nessecary to control the vessel but we pushed it to the boundaries.
I think the issues you faced were mostly just tuning which can be difficult. I haven’t seen any logs though so it’s difficult to provide exact advice. We have ROS2 experts on the AP dev team as well which could help with the AP<->ROS2 integration (FYI @rfriedman)
Anyway, I’m pretty confident that AP can do the low level control and navigation better than ROS on it’s own so if you want to try again with AP please ping me. best of luck
Happy to help with 2D path planning. We have some ArduPilot partners who want that. Please share your requirements for what the constraints are to the planner, how big of an area, maybe some samples “hand-plannee” missions. Looks like a great project.