모터제어
- xycar_device/xycar_motor 패키지 사용
- 모터를 조작하려면 xycar_motor로 토픽을 보내주면 됨.
- 토픽이름 xycar_motor. 아래의 5가지 값을 가지는 구조체이다.
- seq
- stamp
- frame_id
- angle(-50(좌) ~ 50(우))
- speed(-50(후진) ~ 50(전진))
- 0.7초동안 도착하는 토픽이없으면 속도는 0, 조향각도는 0으로 초기화된다.
wheel motor
: 전진/후진, 속도제어
steering motor
: 핸들링, 방향조절
자율주행
- 바닥에 그려진 차선을 인식하여 차선을 벗어나지 않도록 운전
- 왼쪽 차선과 오른쪽 차선을 통해 차선의 중앙을 검출하고 이를 차량의 중앙과 비교하여 차량의 조향모터를 조절한다.
- 차량의 전방 이미지를 토픽으로 보내면 자율주행노드가 이를 받아 모터에 xycar_motor 토픽을 발행
자율주행기능에 실행되는 노드와 토픽들
장애물 회피 기능
- 거리 센서로 장애물의 위치를 찾아 후진해서 장애물을 피해 운전.
- 장애물 거리를 측정하는 xycar_lidar 노드가 sensor_drive 노드로 scan 토픽을 보내면 xycar_motor 노드로 xycar_motor 토픽을 발행.
사람인식 주행
- 영상에서 사람을 찾아 사람이 있는 방향으로 운전.
- 장애물이 있으면 피해서 운전.
- 사람이 없으면 회전하면서 사람을 탐색.
- YOLO 사용.
사용되는 노드와 토픽들
자이카 수동조작
- 휴대폰이나 무선조종기로 자이카를 수동으로 조종.
- 자이카의 전방 이미지를 송출해줌