Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!

Лазером можно. как в лазертаге устроено. Была у меня такая идея, может и сделаю ещё, только матчасть по оптике надо подтянуть.
Рекомендую всем брать шасси с амортизаторами, иначе робот будет очень жестко ездить по неровностям. (Для экспериментов в доме хватит и обычного).
Автор — я веду схожий хобби проект, было бы интересно пообщаться.
mask = cv2.erode(mask, None, iterations=2)
mask = cv2.dilate(mask, None, iterations=2)
cv2.erode(mask, dst=mask, kernel=None, iterations=2)
cv2.dilate(mask, dst=mask, kernel=None, iterations=2)
cv2.morphologyEx(mask, dst=mask, op=cv2.MORPH_OPEN, kernel=None, iterations=2)
thresh = cv2.bitwise_not(thresh)
thresh = ~thresh
Робот-танк на Raspberry Pi с OpenCV