Little Bird
Lidar Bot AGV Mini Carkit
Description LidarBot is a powerful development kit for Automated Guided Vehicles(AGVs). Comes with a 360 Lidar sensor, 4 Mecanum wheels, M5 Core, RGB...
Get notified when back in stock
Description
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
Application
- Indoor Navigation
- Autonomous walking maze
- Route plan
- Autopilot
Learn
Example
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; lidarcar.Init(); 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; keyboard.Init(); // get joystick data and save to adX, adY GetValue(); -
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 TargetProtocol FormatExampleFunctionWheels0xAA,SpeedX(-7 ~ 7),SpeedY,SpeedZ,SpeedA,0x550xAA, 5, 5, 5, 5, 0x55(Go ahead, speed: 5)ControlWheel(5, 5, 5)One RGB0xAB,LedIndex,R(0 ~ 254),G,B,0x550xAB, 3, 20, 50, 100, 0x55(3th RGB displays specific color)setLedColor(3, 20, 50, 100)Front RGB Bar0xAC,R(0 ~ 254),G,B,0x550xAC, 20, 50, 100, 0x55(Front LED Bar displays specific color)setFrontLedBar(20, 50, 100)Back RGB Bar0xAD,R(0 ~ 254),G,B,0x550xAD, 20, 50, 100, 0x55(Back LED Bar displays specific color)setBackLedBar(20, 50, 100)All RGB0xAE,R(0 ~ 254),G,B,0x550xAE, 20, 50, 100, 0x55(All LED display specific color)setLedAll(20, 50, 100)ServoMotor00xAF,Angle(0 ~ 180),0x550xAF, 100, 0x55(Servo 0 turns angle 100 degree)setServo0Angle(100)ServoMotor10xB0,Angle(0 ~ 180),0x550xB0, 100, 0x55(Servo 1 turns angle 100 degree)setServo1Angle(100)PARAMETER
- 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)
Jargon buster
Plain-language definitions for the technical terms used above.
- AGV
- An AGV, or automated guided vehicle, is a mobile robot used to move materials without a human driver. This matters because controllers used in AGVs need reliable communication and industrial I/O for motors, sensors, and safety systems.
- LED
- A light-emitting diode (LED) is a small electronic component that emits light when current flows through it in the correct direction. Because it only conducts one way, its polarity matters, and a through-hole LED must be soldered the correct way around to light up.
- LiDAR
- A sensing method that uses laser light to measure distance and build a 3D picture of the surroundings. It matters for robotics and autonomous systems because LiDAR data can help with mapping, navigation and obstacle detection.
- LiPo
- A LiPo (lithium polymer) battery is a rechargeable lithium battery widely used in portable projects because it is light and compact. LiPo cells need correct charging circuitry and careful handling to stay safe, so equipment that supports LiPo generally includes charging or protection hardware suited to that battery type.
- RGB
- Short for red, green and blue, the three primary colours of light that are mixed in varying amounts to make a wide range of colours. In electronics RGB can refer to an LED or pixel that blends these three colours, or to a colour signal or interface that carries separate red, green and blue channels.
- servo
- A servo is a motor with built-in position control, usually told to move to a specific angle by a control signal. It matters when you need repeatable movement, such as steering, arms, flaps, or linkages, rather than continuous spinning.
- Type-C
- USB Type-C (USB-C) is a small, reversible USB connector used for charging, power, and data transfer on many modern devices. A Type-C port or plug indicates the cable and charger connection needed to power, charge, or communicate with a device.
Find this product in
Robotics & Motion
Related Tutorials
Free guides on learn.littlebird.com.au


