Ilia
Ilia Hardware, software and startups 24/7

BLD-120MM-PACK Complete Robot Build Instructions

BLD-120MM-PACK Complete Robot Build Instructions

Here are the most up-to-date and the most complete instructions to build, set up, bring up and operate Maker’s Pet BLD-120MM-PACK robot build pack with BDC-30P driver board.

As always, everything is open source.

Robot Assembly Instructions

Rechargeable Battery Holder Mod

If using 18650 battery holder option:

  • please read instructions and rechargeable (protected only!) battery use warnings in the FAQ section. Using rechargeable batteries to power the robot is AT YOUR OWN RISK!
  • mount the rear posts using the outer spare holes in the base
  • mount the battery holder backstop behind the battery to the two spare holes using two M3 countersunk screws
  • mount the LiDAR using a wider skirt that matches the rear posts positions

Robot mod using 18650 battery holder

PC Software Setup Instructions

Windows PC

Windows PC software download:

Linux PC

Window PC alternative approach

Use this approach if you have trouble installing WSL2.

  • Install Ubuntu 22.02 on your Windows PC using a virtual machine instead of WSL2 as shown in the video below.
  • Continue your installation as shown in this video
  • Optionally, install Arduino IDE on your Windows PC as shown in this video instead of Ubuntu virtual machine

Robot Bring-up Instructions

Docker launch command:

1
docker run --name makerspet -it --rm -p 8888:8888/udp -p 4430:4430/tcp -e DISPLAY=host.docker.internal:0.0 -e LIBGL_ALWAYS_INDIRECT=0 kaiaai/kaiaai:iron

  • config.yaml for BLD-120MM-PACK with a BDC-30P driver board. BDC-30P accepts ESP32 DOIT DevKit v1 dev board.

Robot Operation - Room Mapping Instructions

Docker launch command:

1
docker run --name makerspet -it --rm -v c:\maps:/root/maps -p 8888:8888/udp -p 4430:4430/tcp -e DISPLAY=host.docker.internal:0.0 -e LIBGL_ALWAYS_INDIRECT=0 kaiaai/kaiaai:iron

ROS2 command reference

Robot Operation - Self-Driving Instructions

FAQ and Troubleshooting

Where to Get Technical support

Can I use 18650 Li-Ion batteries instead of 6xAA?

Although Maker’s Pet boards can be powered using various power sources, Maker’s Pet BDC-30P, BDC-38C4 motor driver boards are designed to work with non-rechargeable alkaline batteries. There is no on-board protection for use with rechargeable batteries. Rechargeable batteries can be dangerous when mishandled.

If you do choose to power the BDC-30P board using rechargeable batteries instead of non-rechargeable, the 120mm base is large enough to accomodate a 2-cell 18650 battery holder. Also:

  • IMPORTANT: the cells would have to protected and connected in series
    • specifically, the cells must be protected from short circuit, overcurrent, overcharge, overdischarge, etc.
  • you would have to remove spent batteries from the battery holder and charge the batteries using your own battery charger
  • when you select cell brand/type/size/amperage/capacity, keep in mind the robot’s maximum power consumption of around 3A continuous and around 5A current. For typical power consumption, see the power consumption section in this post.

Use of rechargeable batteries is at YOUR OWN RISK.

How do I Troubleshoot the Robot

Watch Maker’s Pet YouTube videos for troubleshooting tips.

  • Debug ESP32-related issues using the Arduino Serial Monitor.
    • Connect ESP32 dev board to your PC
    • Open the Arduino Serial Monitor.
    • Make sure your Serial Monitor baud rate is set to 115200.
    • Inspect the Serial Monitor output.
    • Press the ESP32 reset (EN) button to reboot ESP32.
  • Debug ROS2-related issues using ROS2 tools
    • Inspect the command shell output.
    • Read ROS2 documentation.

docker run Fails on Windows PC

1
2
3
4
5
PowerShell 7.5.0
PS C:\Users\ilya> docker run --name makerspet -it --rm -p 8888:8888/udp -p 4430:4430/tcp -e DISPLAY=host.docker.internal:0.0 -e LIBGL_ALWAYS_INDIRECT=0 kaiaai/kaiaai:iron
docker: error during connect: Head "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/_ping": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
See 'docker run --help'.
PS C:\Users\ilya>

Solution - looks like your Docker engine is not running. Launch Docker Desktop on your Windows PC.

1
2
3
4
PowerShell 7.5.0
PS C:\Users\ilya> docker run --name makerspet -it --rm -p 8888:8888/udp -p 4430:4430/tcp -e DISPLAY=host.docker.internal:0.0 -e LIBGL_ALWAYS_INDIRECT=0 kaiaai/kaiaai:iron
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:4430 -> 0.0.0.0:0: listen tcp 0.0.0.0:4430: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
PS C:\Users\ilya>

Solution - try rebooting your Windows PC.

1
2
docker: Error response from daemon: Conflict. The container name "/makerspet" is already in use by container "e86601354246103f6d55f008b488bc4551f429c0de6dd37f22dca0932759e38d". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

Your container is already running - or was not shut down and is still running from your last invocation. When shutting down a container, be sure to exit all shells - as opposed to just closing the PowerShell window.

Solution - stop the container and retry your docker run.

1
docker container stop makerspet

docker pull Fails on Windows PC

1
2
3
PS C:\Users\ilya> docker pull kaiaai/kaiaai:iron
error during connect: Post "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.47/images/create?fromImage=kaiaai%2Fkaiaai&tag=iron": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
PS C:\Users\ilya>

Solution - looks like your Docker engine is not running. Launch Docker Desktop on your Windows PC.

ROS2 Command Fails

A ROS2 command does not exit even after pressing Ctrl-C.

Solution - kill ROS2 processes from another Bash window. For example, ps -al shows process number 272 running ros2 and process 334 running python3. Stop both those processes as shown below.

1
2
3
4
5
6
7
root@8ec422cb4258:/ros_ws# ps -al
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   272     1  0  80   0 - 107559 -     pts/0    00:00:00 ros2
4 S     0   334     1  0  80   0 - 210129 x64_sy pts/2   00:00:01 python3
4 R     0   713    66  0  80   0 -  1871 -      pts/1    00:00:00 ps
root@8ec422cb4258:/ros_ws# kill 334
root@8ec422cb4258:/ros_ws# kill 272

Windows WSL2 Install Fails

ROS2 GUI not Showing on Windows PC

Make sure you have launched the X server on your Windows PC.

Robot’s Motor(s) Appear to Malfunction

  • Make sure the battery power switch is ON.
  • Make sure the battery is connected to the board and the batteries are not low.
    • Check that the power LED on the ESP32 board lights up when the battery power switch is ON.
  • Common issue: double check motor connections
    • The motor connector housing can slide off, towards the motor’s magnet. Pull the connector housing carefully back into place.
    • Make sure the motor wires are connected to the correct board screw terminals.
    • The screw terminals connections can fail, e.g. wire breaks off, metal conductors fail to make a contact, etc. Follow instructions in the assembly video to make reliable wire connections.
  • Check the green LED light on the motor. The green LED is OFF means the motor’s encoder is not getting its power. For example, because the battery is disconnected, the power switch is off, the motor-to-cable connection failed, the cable-to-board connection failed, etc.

Run the teleop app (ROS2), press the w key to make the robot’s motor rotate forward.

  • If a motor does not move
    • Check for cables accidentally blocking the rotation of the motor’s encoder magnet
    • Check that neither of the motors is somehow mechanically stalled
    • Check the motor M1 and M2 are connected to the board reliably
    • Check that the batteries are fresh
  • If one motor works, but the other one does not
  • If a motor keeps rotating full speed in one direction only, no matter what the teleop command is (forward, backward, stop, etc.)
    • Try swapping the motor’s ENCA and ENCB encoder wires.
    • Check if both encoder wires are connected reliably.
  • If a motor rotates at full speed only, but changes its direction on teleop commands
    • Check if one of the encoder wires has a bad connection (to the board and/or to the motor).
  • If a motor rotates in the opposite direction, but otherwise responds correctly to the teleop commands
    • Try swapping the motor’s ENCA and ENCB encoder wires. Next, swap the motor’s M1 and M2 wires.
  • If a motor rotates “unevenly”
    • Check for flaky wire connections
    • If your are using third-party motor, i.e. not purchased at Maker’s Pet, you may need to tune your motors’ PID coefficient in the config.yaml driver board file.
  • Motor changes speed abruptly
    • check the motor encoder components soldering; carefully solder any loose components

Compilation Fails

1
2
3
4
5
6
7
8
9
10
aiaai-esp32:16:4: error: #error This code runs on ESP32
   #error This code runs on ESP32
    ^~~~~
In file included from /home/ilia/Arduino/kaiaai-esp32/kaiaai-esp32.ino:19:0:
robot_config.h:16:10: fatal error: SPIFFS.h: No such file or directory
 #include <SPIFFS.h>
          ^~~~~~~~~~
compilation terminated.
exit status 1
#error This code runs on ESP32

Go to Tools -> Board -> ESP32 Arduino and select your ESP32 board (usually ESP32 Dev Board). If you do not see ESP32 Arduino toolchain, add the Espressif ESP32 toolchain to your Arduino IDE as shown in the software setup videos.

Upload Fails on Ubuntu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Traceback (most recent call last):
  File "/home/ilia/.arduino15/packages/esp32/tools/esptool_py/4.5.1/esptool.py", line 31, in <module>
    import esptool
  File "/home/ilia/.arduino15/packages/esp32/tools/esptool_py/4.5.1/esptool/__init__.py", line 41, in <module>
    from esptool.cmds import (
  File "/home/ilia/.arduino15/packages/esp32/tools/esptool_py/4.5.1/esptool/cmds.py", line 14, in <module>
    from .bin_image import ELFFile, ImageSegment, LoadFirmwareImage
  File "/home/ilia/.arduino15/packages/esp32/tools/esptool_py/4.5.1/esptool/bin_image.py", line 14, in <module>
    from .loader import ESPLoader
  File "/home/ilia/.arduino15/packages/esp32/tools/esptool_py/4.5.1/esptool/loader.py", line 30, in <module>
    import serial
ModuleNotFoundError: No module named 'serial'
exit status 1
Error compiling for board ESP32 Dev Module.

Install pyserial on your Ubuntu machine, see instructions in the Ubuntu software setup video.

1
2
sudo apt install -y python3-pip
pip3 install pyserial

ESP32 Upload Fails

Your sketch compiles successfully, but Arduino IDE shows this error:

1
2
3
4
5
6
7
8
esptool.py v4.5.3
Serial port COM3
Connecting......................................

A fatal error occurred: Failed to connect to ESP32: No serial data received.
For troubleshooting steps visit: Troubleshooting - ESP32 - — esptool.py latest documentation
The selected serial port For troubleshooting steps visit: Troubleshooting - ESP32 - — esptool.py latest documentation
is not present or the board is not connected

This is a common problem. Retry the upload. When Connecting.. appears, immediately press the BOOT button on your ESP32 board. Keep holding BOOT for 3-5 seconds. Release the BOOT button and your upload should, hopefully, succeed this time.

Same applies to ESP32 sketch data uploads.

Robot’s ESP32 Fails to Connect to WiFi

  • Make sure the WiFi credentials you provided to your ESP32 during the web config are correct.
  • Try pressing the reset (EN) button on your ESP32. This often fixes WiFi connection failure problems as long as the WiFi has been configured correctly.
  • Make sure your WiFi is 2.4GHz - NOT 5GHz. ESP32 supports 2.4GHz WiFi only.
  • Do the WiFi configuration reset (see this FAQ) followed by the web WiFi config. Make sure the WiFi credentials you provide to your ESP32 are correct.

Robot’s ESP32 Connects to WiFi, but Fails to Connect to the Windows ROS2 PC

  • Make sure you have launched the kaiaai/kaiaai:iron image in Docker
  • Inside the Docker container running the kaiaai/kaiaai:iron image, make sure you have launched ros2 launch kaiaai_bringup physical.launch.py
  • Make sure both your robot and your PC are connected to the same local WiFi network
  • Make sure your local WiFi network allows devices to connect to each other and does not block ports. For example, WiFi networks in cafes, restaurants often block local-device-to-local-device connections.
  • Make sure your PC does not block incoming local connections.

How to Perform WiFi Configuration Reset

  • Power up your ESP32 dev board (e.g. using USB or battery power)
  • Press the reset (EN) button on your ESP32 dev board
  • Within 1 second or less, press and hold the BOOT button on your ESP32 dev board The ESP32 activity LED should start blinking very fast
  • Keep pressing the BOOT button for a few seconds until the ESP32 activity LED turns solid on.
  • Release the BOOT button. Your ESP32 should reboot and restart in the AP (WiFi configuration) mode.

Arduino IDE Fails to Detect ESP32 COM Port

  • Make sure your ESP32 is powered up and its power LED indicator is on.
  • Check if your ESP32-to-PC USB cable is damaged. Try replacing your USB cable.
  • Check if your ESP32-to-PC USB cable is for CHARGING ONLY. Try replacing your USB cable with a regular one.
  • Sometimes ESP32 dev board’s USB-to-serial hardware can fail.
    • Try connecting your ESP32 to another PC.
    • Try connecting another ESP32 to your PC.

Arduino IDE 2.x SPIFFS Upload Fails - COM Port not Found

Error in Arduino IDE attempting a SPIFFS upload:

1
2
3
4
SPIFFS Filesystem Uploader

Using partition: default
ERROR: No port specified, check IDE menus

Solution - restart your Arduino IDE and retry SPIFFS upload.

Error in Arduino IDE attempting SPIFFS upload:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Using partition: default
Building SPIFFS filesystem
C:\Users\ilya\AppData\Local\Arduino15\packages\esp32\tools\mkspiffs\0.2.3/mkspiffs.exe -c C:
\Users\ilya\OneDrive\Documents\Arduino\kaiaai-esp32/data -p 256 -b 4096 -s 1441792 C: \Users\
ilya\AppData\Local\Temp\tmp-16336-VVuaXOVTskId -. spiffs.bin
/config.yaml
/favicon.png
/index.html

Uploading SPIFFS filesystem
C:\Users\ilya\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.5.1/esptool.exe -- ch
ip esp32 -- port COM3 -- baud 921600 -- before default_reset -- after hard_reset write_flash -z
-- flash_mode dio -- flash_freq 80m -- flash_size detect 2686976 C:\Users\ilya\AppData\Local\Te
mp\tmp-16336-VVuaXOVTskId -. spiffs.bin
esptool.py v4.5.1
Serial port COM3

A fatal error occurred: Could not open COM3, the port doesn't exist
ERROR: Upload failed, error code: 2

Solution:

  • Close the Serial Monitor window in your Arduino IDE
  • Make sure your ESP32 is connected to the PC
  • Make sure your ESP32 USB serial port is not malfunctioning
    • Try another PC
    • Try another ESP32
1
2
SPIFFS_write error(-10010): unknown
error adding file!

A file in the sketch data folder has a name that is too long. Rename your files to keep the filename length to 30 characters or less.

1
2
A fatal error occurred: This chip is ESP32-S3 not ESP32. Wrong --chip argument?
SPIFFS Upload failed!

Select the correct board in Arduino IDE.

Arduino IDE 2.x SPIFFS Upload Fails - COM Port not specified

  • Restart your Arduino IDE

Arduino IDE Serial Monitor prints garbage

  • set Serial Monitor baud to 115200
  • press the EN (reset) button on your ESP32 board. This often happens right after firmware upload.

ESP32 Activity LED Status

  • Solid ON - AP mode
  • Slow blinking, once per second - connecting to WiFi
  • Very slow blinking, once per 20 seconds - connected to WiFi, connecting to ROS2 PC
  • Fast blinking - connected to ROS2 PC

Reference ESP32 Serial Monitor Outputs

Firmware Uploaded Without Sketch Data

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13260
load:0x40080400,len:3028
entry 0x400805e4

Kaia.ai firmware version 0.8.0-iron
ESP IDF version v4.4.7-dirty
SPIFFS mounted successfully
Sketch data not found. Please upload sketch data.

Firmware and Sketch Data Uploaded, WiFi not Configured

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13260
load:0x40080400,len:3028
entry 0x400805e4

Kaia.ai firmware version 0.8.0-iron
ESP IDF version v4.4.7-dirty
SPIFFS mounted successfully
/config.yaml found; loaded OK
WiFi SSID unknown
dest_ip unknown
To enter web config push-and-release EN, then push-and-hold BOOT within 1 sec
Setting up WiFi KAIA.AI; browse to http://192.168.4.1

WiFi Configuration - Connect Button Clicked

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Kaia.ai firmware version 0.8.0-iron
ESP IDF version v4.4.7-dirty
SPIFFS mounted successfully
/config.yaml found; loaded OK
WiFi SSID unknown
dest_ip unknown
To enter web config push-and-release EN, then push-and-hold BOOT within 1 sec
Setting up WiFi KAIA.AI; browse to http://192.168.4.1
Writing file /network.yaml, restarting ...
ets Jul 29 2019 12:21:46

rst: 0xc (SW_CPU_RESET) ,boot: 0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv: 0x00, q_drv:0x00, d_drv: 0x00, cs0_drv:0x00,hd_drv: 0x00, wp_drv: 0x00
mode: DIO, clock div:1
load: 0x3fff0030,len:1184
load: 0x40078000, len:13260
load: 0x40080400, len: 3028
entry 0x400805e4

Kaia.ai firmware version 0.8.0-iron
ESP IDF version v4.4.7-dirty
SPIFFS mounted successfully
/network. yaml found; loaded OK
/config.yaml found; loaded OK
To enter web config push-and-release EN, then push-and-hold BOOT within 1 sec
Board model MINI-BDC30P-BODY with BDC-30P, version v1.1.1, manufacturer makerspet.com
LIDAR model LDROBOT LD14P
LIDAR RX buffer size 1024, baud rate 230400
Battery ADC attenuation 7.00, voltage 2.60V
Motor driver type IN1_IN2; motor encoder type AB_QUAD
Motor Max RPM 180.00; encoder PPR 1035.00 TPR 4140.00

Connecting to WiFi NETGEAR48 ... connected, IP 192.168.93.127
Connecting to Micro-ROS agent 192.168.1.113 ...

Connected to WiFi, Robot Battery OFF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0

Kaia.ai firmware version 0.8.0-iron
ESP IDF version v4.4.7-dirty
SPIFFS mounted successfully
/network.yaml found; loaded OK
/config.yaml found; loaded OK
To enter web config push-and-release EN, then push-and-hold BOOT within 1 sec
Board model MINI-BDC30P-BODY with BDC-30P, version v1.1.1, manufacturer makerspet.com
LIDAR model LDROBOT LD14P
LIDAR RX buffer size 1024, baud rate 230400
Battery ADC attenuation 7.00, voltage 0.99V
Motor driver type IN1_IN2; motor encoder type AB_QUAD
Motor Max RPM 180.00; encoder PPR 1035.00 TPR 4140.00

Connecting to WiFi NETGEAR48 ...
Connecting to WiFi NETGEAR48 ... connected, IP 192.168.1.226
Connecting to Micro-ROS agent 192.168.1.113 ... 
Connecting to Micro-ROS agent 192.168.1.113 ... 
Connecting to Micro-ROS agent 192.168.1.113 ... 
Connecting to Micro-ROS agent 192.168.1.113 ... 
Connecting to Micro-ROS agent 192.168.1.113 ... 
Connecting to Micro-ROS agent 192.168.1.113 ... 
Connecting to Micro-ROS agent 192.168.1.113 ... 

Connected to ROS2 PC, Robot Battery OFF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0

Kaia.ai firmware version 0.8.0-iron
ESP IDF version v4.4.7-dirty
SPIFFS mounted successfully
/network.yaml found; loaded OK
/config.yaml found; loaded OK
To enter web config push-and-release EN, then push-and-hold BOOT within 1 sec
Board model BDC-30P, version v1.1.0, manufacturer makerspet.com
LIDAR model LDROBOT LD14P
LIDAR RX buffer size 1024, baud rate 230400
Battery ADC attenuation 7.00, voltage 0.99V
Motor driver type IN1_IN2; motor encoder type AB_QUAD
Motor Max RPM 180.00; encoder PPR 1035.00 TPR 4140.00

Connecting to WiFi NETGEAR48 ... connected, IP 192.168.1.5
Connecting to Micro-ROS agent 192.168.1.113 ... success
Syncing time ... OK
UTC time Tue Feb 11 23:02:53 2025
micro-ROS client key 0xDD9181CC; ROS2 node /pet
Micro-ROS initialized
LiDAR info Model: LDROBOT LD14P
startLIDAR() result: OK

Telem avg 106 max 5667ms, LiDAR RPM 0.00, wheels RPM 0.00 0.00, battery 0.99V, RSSI -59dBm
Telem avg 50 max 51ms, LiDAR RPM 0.00, wheels RPM 0.00 0.00, battery 0.99V, RSSI -59dBm
Telem avg 50 max 51ms, LiDAR RPM 0.00, wheels RPM 0.00 0.00, battery 0.99V, RSSI -58dBm

Power consumption

Conditions:

  • 9V battery, power switch ON
  • connected to ROS2 PC over WiFi
  • ESP32 with USB-C
  • LDROBOT LD14P LiDAR operating
  • two 12V N20 motors
  • ESP32 USB disconnected from PC
  • Kaia.ai firmware version 0.8.0-iron

Battery current draw:

  • around 240ma both motors off
  • around 430-450ma both N20 motors full on, spinning freely

Mapping and Self-Driving

Prepare your place before doing mapping and/or self-driving as follows.

  • LiDAR sensors have some limitations. Specifically, block objects that LiDARs cannot detect with, for example, cardboard:
    • non-reflective (black) objects
    • transparent objects
    • objects with height not enough to reach the LiDAR’s laser plane
    • objects that are too small, e.g. fine sparse mesh
    • objects illuminated too brightly using light sources that contain near-infrared spectra (e.g. sunlight, incandescent)
    • mirrors and highly reflective objects
  • This particular robot is too small to navigate over thick carpet or traverse thresholds exceeding around 5mm (1/5”)
  • Keep the scene as static as possible during mapping. For example, don’t open/close doors until the mapping process completes.
  • I recommend decluttering your place before doing mapping and/or self-driving.
  • Block off and don’t let the robot drive over angled ramps. Angled flooring can tilt the LiDAR laser plane and mess up the mapping process.

comments powered by Disqus