Anyway, my robot weighs 2.2Kg with battery included.
Oh, in that case, I don't think you'll have any issues with those particular stepper motors.
You will want to implement velocity and acceleration control to not jerk too much; basically the same idea as modern elevators: they increase acceleration from zero to maximum and then to zero when reaching maximum velocity, i.e. control
jerk, the third derivative of position. (The four quantities used are position, velocity, acceleration, and jerk; jerk is to acceleration like acceleration is to velocity, and like velocity is to position.)
Just ramping velocity linearly will work, but you may notice a "wobble". This is because then acceleration spikes momentarily, but otherwise is zero, which is the same as giving it a sharp kick.
If you use a constant jerk, acceleration increases/decreases at a constant rate
j, and acceleration
a(
t)=
jt+
a(0), velocity
v(
t)=0.5
jt2+
v(0), and position
x(
t)=
jt3/6+
x(0). This also causes the rover movement to become "less robotic" and "more carefulling"; it's hard to describe the two, but if you've seen the difference in real life, you'll know what I mean.
Ramping jerk linearly between zero and its extrema gives even better results, almost "sneaky", but the math becomes even harder to implement. If jerk
j(
t)=
j0(
t1-
t)/(
t1-
t0)+
j1(
t-
t0)/(
t1-
t0) i.e. a linear ramp from
j0 at time
t0 to
j1 at time
t1, then acceleration
a(
t)=((
j1-
j0)
t2+2(
t1j0-
t0j1)
t)/(2(
t1-
t0))+
a(0), velocity
v(
t)=((
j1-
j0)
t3+3(
t1j0-
t0j1)
t2)/(6(
t1-
t0))+
v(0), and position
x(
t)=((
j1-
j0)
t4+4(
t1j0-
t0j1)
t3)/(24(
t1-
t0))+
x(0).
As you can see, the math formulae is simple, but writing the "engine" to generate the pulses at appropriate times becomes a bit hairy, especially when you want to
count the exact number of pulses generated per stepper (so not using PWM), to know how much and in which direction the robot has (ostensibly) moved.
If you obtain four 6mm diametrically magnetized magnets, and superglue them on top of suitable isolating washers at the rear end of your stepper motors, you can use a cheap AS5600 sensor modules (4€ at fleabay) to detect the actual angular position of each stepper axle. Some of the modules do come with a suitable magnet, but don't assume they all do. Also, that won't tell you if the wheel slips on the surface, but it will tell you if you lose steps/microsteps (at something like 1/8 microstepping resolution).
(The AS5600 boards are truly trivial, just two pullup resistors for the I
2 (typically 10kOhm), and a 0.1µF/100nF decoupling capacitor for the supply voltage to the chip. You could easily make your own boards at e.g. EasyEda, so you could just screw them to the steppers with suitable bolts and extra nuts. If LCSC had any of these in stock -- they're more expensive than the fleabay boards at Mouser and Digikey; about 3€ apiece in small batches --, I would have done this myself already; they'd allow a closed-loop control for a 3D printer: no more lost steps at all.)