Lidar Bot AGV Mini Carkit


Regular price $399.00

2 In Stock

Standard Shipping Estimated Delivery Time: 7-20 days

LidarBot is a powerful development kit for Automated Guided Vehicles(AGVs). Comes with a 360 Lidar sensor, 4 Mecanum wheels, M5 Core, RGB Bars and a remote conroller with Joystick panel and more. With 4 Mecanum wheels, you can make it move to any direction, forward, backward, to left and to right. The Lipo Batteries enpower the Robot to run long-hours. You can display the map data, that obtained from the lidar sensor, on the screen or upload somewhere else thru Wi-Fi and program it into any format.

we have implemented Real-time communication via ESP-NOW between robot and remote, Mazing-runing , self-tracing and more. If you are interest in AGV development, We especially encourage you to modify the open source code we have offered on github and enhance it yourself.

Product Features

  • Lidar: 8m @ 6Hz
  • Programming Support
    • Arduino
    • UIFlow (Blockly)
    • Python
  • Compatible LEGO

Kit includes

  • 1x LidarBot
  • 1x Remote Control Handle
  • 2x Battery(1300mAh @ 11.1V)
  • 1x Power Charger
  • 1x Type-C USB Cable


  • Indoor Navigation
  • Autonomous walking maze
  • Route plan
  • Autopilot


To get complete code, please click here

Tree for Example Directory

├─LidarBot_CarMain_V1.1 - Main program of LidarBot

├─LidarBot_RemoteController_V1.0 - Program of RemoteController V1.0

└─LidarBot_RemoteController_V1.2 - Program of RemoteController V1.2(twice precision)

Program analysis:

1. Main program of LidarBot:

/* Main program */
void loop()
  espnow.BotConnectUpdate();// ESPNOW reconnect
  lidarcar.MapDisplay();// display map
  esp_now_send(espnow.peer_addr, lidarcar.mapdata, 180);// ESPNOW sends map data
  • Single function resolution:

    • Usage of reading radar data

      #include "lidarcar.h"
      LidarCar lidarcar;
      GetData();//save radar data to array distance[]
    • Usage of line following

      #include "rprtrack.h"
      Rprtrack rprtrack;
      SensorStatus();// save line following data to array sensorValue[]
      CalTrackDev();// handle array sensorValue[], get car offset and save it
    • Usage of ESP_NOW

      Please refer to https://github.com/m5stack/M5-espnow

2. Program of RemoteController

/* Main program */
void loop()
  espnow.RemoteConnectUpdate();// ESPNOW reconnect
  keyboard.GetValue();// read data of joystick
  // ESPNOW sends joystick data to car
  esp_now_send(espnow.peer_addr, keyboard.keyData, 3);
  MapDisplay();// display map
  accessport.AnalzyCommand();// send map data to PC software
  • Single function resolution:

    • Usage of JOYSTICK

      #include "keyboard.h"
      KeyBoard keyboard;
      // get joystick data and save to adX, adY
    • Usage of communication with PC software

      #include "accessport.h"
      AccessPort accessport;
      accessport.AnalzyCommand();// send map data to PC software
More information

Protocol for CarBottomBoard

Protocol Format: Data Header ( command type ) + Data Packet + Data Tail

Control Target Protocol Format Example Function
Wheels 0xAA,SpeedX(-7 ~ 7),SpeedY,SpeedZ,SpeedA,0x55 0xAA, 5, 5, 5, 5, 0x55(Go ahead, speed: 5) ControlWheel(5, 5, 5)
One RGB 0xAB,LedIndex,R(0 ~ 254),G,B,0x55 0xAB, 3, 20, 50, 100, 0x55(3th RGB displays specific color) setLedColor(3, 20, 50, 100)
Front RGB Bar 0xAC,R(0 ~ 254),G,B,0x55 0xAC, 20, 50, 100, 0x55(Front LED Bar displays specific color) setFrontLedBar(20, 50, 100)
Back RGB Bar 0xAD,R(0 ~ 254),G,B,0x55 0xAD, 20, 50, 100, 0x55(Back LED Bar displays specific color) setBackLedBar(20, 50, 100)
All RGB 0xAE,R(0 ~ 254),G,B,0x55 0xAE, 20, 50, 100, 0x55(All LED display specific color) setLedAll(20, 50, 100)
ServoMotor0 0xAF,Angle(0 ~ 180),0x55 0xAF, 100, 0x55(Servo 0 turns angle 100 degree) setServo0Angle(100)
ServoMotor1 0xB0,Angle(0 ~ 180),0x55 0xB0, 100, 0x55(Servo 1 turns angle 100 degree) setServo1Angle(100)


  • The size of LidarBot: 142mm x 117mm x 120mm
  • Communication Parameter
    • M5Core <-> Lidar (U1RXD(GPIO16) <-> Lidar sensor) Serial Configuration: "230400bps, 8, n, 1"(8 bits data, no parity, 1 stop bit)
    • M5Core <-> Bottom Board (U2TXD(GPIO17) <-> Bottom Board) Serial Configuration: "115200bps, 8, n, 1"(8 bits data, no parity, 1 stop bit)
  • PinMap
    • ServoMotor0 <-> A0(MEGA328)
    • ServoMotor1 <-> A1(MEGA328)
    • RGB <-> 11(MEGA328)

Customer Reviews

Based on 9 reviews

Wonderful product in beautiful retail packaging. Works out of the box with pre-programmed functions such as roaming with automatic obstacle avoidance in two speed modes. The remote also works out of the box already configured to control the bot like a standard RC vehicle. A charger is not included for the remote but it can be charged via a USB-C connection. The downside to this is that the remote will power on once a USB-C cable is connected and can not be powered off without disconnecting the cable. Other than that, perfectly happy with this purchase. I’ll be implementing custom functionality into the device soon. Note: the lidar sits about 115mm off of the ground so smaller obstacles will not be detected. I recommend getting some VL53L0X distance sensors also available in the M5 stack store to deal with that.


Lidar Bot AGV Mini Carkit


Lidar Bot AGV Mini Carkit


Lidar Bot AGV Mini Carkit


Thank you, Very fast shipping.