10. LiDAR를 이용한 전방 장애물 회피 주행
페이지 정보
작성자 관리자 댓글 0건 조회 1,844회 작성일 21-01-21 21:17본문
10. LiDAR를 이용한 전방 장애물 회피 주행
LiDAR를 이용하여 장애물을 회피하며 주행하도록 구현해보겠습니다.
Pop에서 LiDAR와 Pilot 라이브러리를 불러옵니다.
LiDAR 사용을 위해 Rplidar 객체를 생성하고, 장비 주행을 위해 AutoCar 객체를 생성합니다.
from pop import LiDAR, Pilot
lidar = LiDAR.Rplidar()
car = Pilot.AutoCar()
객체가 생성되면 connect()메소드로 LiDAR와 연결하고 startMotor() 메소드로 스캐닝 모터를 동작시킵니다.
또, AIot AutoCar 의 주행속도를 99로 설정합니다.
차량의 조향을 가운데로 설정합니다.
lidar.connect()
lidar.startMotor()
car.setSpeed(99)
car.steering = 0
LiDAR에서 벡터값들을 받아오고, 전방 120도 범위내에 700mm 이하로 감지된 값이 있다면 no_collision을 False 로 설정합니다.
no_collision을 False로 설정합니다.
no_collision이 True면 장애물이 없으므로 직진하고, False라면 장애물이 있으므로 좌회전합니다.
이 과정을 while문을 이용해 반복시킵니다.
while True:
no_collision = True
vectors = lidar.getVectors()
for v in vectors:
degree = v[0]
distance = v[1]
if degree <= 60 or degree >= 300 :
if distance <= 700:
no_collision = False
if no_collision:
car.steering = 0
car.forward(99)
else:
if car.steering == 0:
car.stop()
car.steering = -1
car.backward(50)
댓글목록
등록된 댓글이 없습니다.