Switch nozzle contact probe auto leveling with Marlin 2.0
Basically, you are also using a probe, the nozzle is the probe. So this is very similar to an auto levelling setup using a capacitive or inductive sensor, the difference is that your M851 nozzle to probe distance is zero, and may receive a positive value to slightly raise it to get a sheet of paper in between the nozzle and printing surface.
Please note that below only changes for levelling are addressed, not other specifics in Marlin 2.x for the Robo R1+!
First you define the nozzle offset in Configuration.h, which is exactly at the nozzle, so X and Y (and Z) are zero.
#define NOZZLE_TO_PROBE_OFFSET { 0, 0, 0 }

You can also set:
define NOZZLE_AS_PROBE

Furthermore, you need to define a levelling method in the same configuration file:

//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

For safety, we usually home Z at the center of the printing surface:
#define Z_SAFE_HOMING

Also be sure the following statement is active:
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

Next, you need to define the boundaries of the &quot;probe&quot;, which is exactly where the nozzle may come (apart from a small safety offset at all edges called MIN_PROBE_EDGE); how you do that is described in question &quot;How to set Z-probe boundary limits in firmware when using automatic bed leveling?&quot;, in Marlin 2.x this needs to be set in Configuration_adv.h:

#if PROBE_SELECTED && !IS_KINEMATIC
  #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
  #define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE
  #define MIN_PROBE_EDGE_FRONT MIN_PROBE_EDGE
  #define MIN_PROBE_EDGE_BACK MIN_PROBE_EDGE
#endif