4WD 4WS gps guided lawnmower.
- Johnsinski
- Offline
- Junior Member
-
- Posts: 28
- Thank you received: 3
So my new concept with the 4 SDUs would have 2 distinct drive modes:
1. conventional curve follow mode. this would pretty much act like a 4WD platform and it would use front and rear steering to gently follow medium size curves up to straight lines. The "body" of the platform would align with the direction of motion following the curve. Say during a mild left curve the front 2 SDUs would turn a bit left and the rear 2 SDUs would turn a bit right to allow a nice following of the curve and keep the platform aligned with the direction of motion.
2. transition to next "parallel" row. this would be kind of like a zig pattern in machining. The idea is to transition at the end of one row to the beginning of the next row without any tight turns or reversing wheels spinning on the grass. If the machine is moving say, directly East and it arrives at the end of it's row, the main platform is pointed East and will maintain that Eastward direction as the 4 SDUs "slew" each steering unit through a 180 degree rotation that drives it to the next row, say to the South, all 4 SDUs would turn say 30 degrees to the right and keep driving "forward". During this transition, "forward" eventually become directly to the West (after each SDU has completed a 180 degree arc), but the platform body is still facing East. Each SDU will follow a "perfect" 180 degree equi-radius path bringing the still-facing-East-platform to the next row. The exact opposite of this would happen at the end of the West running row (and untangling the SDUs wires) to bring everything back to normal at the beginning of the next East facing row.
So Ardupilot is a system used for RC airplanes and drones and such that allows GPS guided "missions". By using RTK GPS you can get cm level accuracy. The software already has a "rover" version that can do conventional mowing patterns but it can't do the kind of motion I'd like to try.
So I asked AI if Linuxcnc could help with this. Of course it said, "That is some next level genius engineering solution, just let HAL take care of it for you." And I said "can you just make that happen for me?"
At this point it's just a thought exercise, but if you understand what I'm trying to do, could you give me advice as to how I should learn how HAL works? I run Linuxcnc on my DIY 3 Axis router, so I'm familiar with that, but not HAL.
I'm imagining loading a lawnmower path g-code into LinuxCNC and it would use 8 Axii (4 drive motors and four rotational axii for steering). Maybe it could use custom M-codes to specify which mode it's running in (curve follow or slew mode row transition). Somehow we would need to get GPS feedback into LinuxCNC to correct for slip. There would actually be two GPSs on the platform to provide a heading instead of the unreliable magnetic compass. I think I would just use the Ardupilot Mission Planner to read the GPSs and somehow that needs to get to LinuxCNC for feedback.
I'm imagining the code would all be G1 moves and for the tight turns at the end, simply allow the path look ahead to decelerate the drives and accelerate the steering as setup on each axis physical limits.
I'll try to draw up some diagrams if the turning strategy is confusing as I'm not sure I explained it right.
Please Log in or Create an account to join the conversation.
- Johnsinski
- Offline
- Junior Member
-
- Posts: 28
- Thank you received: 3
Please Log in or Create an account to join the conversation.
- rodw
-
- Offline
- Platinum Member
-
- Posts: 12153
- Thank you received: 4146
I think the new motion.interp.heading pin in master branch could solve this. You give the mmachine fake XY g1/g2/g3 moves including the arc at the end and tell the tyres (eg A axis) to follow the heading. If the front and rear wheels need to follow differing arcs on a turn, you might need to adjust/scale the heading using a real time component. Perhaps the spindle speed (S command) might set the rpm on the wheels.
I think with this new feature, solving your problem is a lot simpler than you think.
Please Log in or Create an account to join the conversation.
- Johnsinski
- Offline
- Junior Member
-
- Posts: 28
- Thank you received: 3
oh well, tried to attach gifs of the two motion strategies, but didn't work.
Please Log in or Create an account to join the conversation.
- tuxcnc
- Offline
- Elite Member
-
- Posts: 256
- Thank you received: 46
Inspired by your text, I also asked AI a question. Honestly, I'm surprised because I got the absolutely correct answer:So I asked AI if Linuxcnc could help with this.
Well, either you asked the wrong AI, or you asked the question wrong...Can Intel i9 with 64 GB RAM control a microwave oven?
Yes, a computer with an Intel i9 processor and 64 GB of RAM can technically control a microwave oven, but this is a complete overkill.
How is this possible?
Processing power: An i9 processor and 64 GB RAM have a million times more power than needed to run a microwave.
Connection: The computer must send signals through ports (e.g. USB) to an additional electronic circuit.
Control: This additional circuitry (such as an Arduino or network relay) must physically push the buttons buttons or turn on the microwave's power.
Why doesn't this make practical sense?
Microcontrollers: A regular microwave uses a small, simple chip (microcontroller) that costs a few dollars.
Power consumption: A computer with an i9 processor uses a lot of power when idle, while a microcontroller uses trace amounts of it.
Safety: A failure of the operating system on a powerful computer could accidentally turn on the microwave without supervision.
Please Log in or Create an account to join the conversation.
- rodw
-
- Offline
- Platinum Member
-
- Posts: 12153
- Thank you received: 4146
Yes the heading gives you an arc tangent to a G2/G3 move which is the direction the wheels should be pointing to drive it. When you revert to a G0 or G1 move, the heading is simply the direction of travel which should also be where both wheels are pointingrodw, oh I saw you on youtube! The new motion.interp.heading pin looks to give you the tangent angle of the current point on a path? That seems helpful.
oh well, tried to attach gifs of the two motion strategies, but didn't work.
Now in the case of the inside wheel needing to travel a shorter arc radius than the outer wheels, you should be able to calculate that from the outer arc.
Please Log in or Create an account to join the conversation.