학습 내용 RVIZ Ordometry 활용 및 3D 자동차 주행프로그래밍 Odometery는 오도미터 등의 기기의 측정값을 의미하며 움직이는 사물의 위치를 측정하는 방법이다. 자동차의 이동거리는 바퀴의 회전수로 계산하며 모션 센서의 데이터를 사용한다. 필요한 자동차의 위치 정보는 다음과 같다. 현재 위치: (x, y) 좌표 + θ 세타 이동 속도: 선속도 v + 각속도 ω 조향각 δ 델타 ROS에서 Odometry 토픽은 /odom이며 메시지 타입은 nav_msgs/Odometry이다. 다음 명령어를 통해 이 메시지 타입의 구조를 확인할 수 있다. $ rosmsg show nav_msgs/Odometry 메시지 타입의 구조는 크게 두 개의 geometry_msgs로 이루어져 있다. 자동차의 자세와 관련된..
학습 내용 RVIZ 기반 3D 자동차 제어프로그래밍 이번 실습의 주제는 RVIZ에서 3D 자동차를 8 자 주행시켜 보는 것이다. RVIZ는 ROS에서 사용되는 3차원 시각화 도구이며 일반적으로 ROS를 설치할 때 ros-kinetic-desktop-full 명령어에 포함되어 설치된다. RVIZ를 실행하기 위해서 roscore 명령으로 마스터 노드를 실행시킨 후 터미널에 rviz 명령어를 작성하면 된다. $ rviz // 혹은 rosrun rvis rvis 주행하기 전에 먼저 바퀴가 정확히 원하는 대로 동작하는지 확인하는 실습을 해보자. rviz_xycar 패키지를 생성하고 코드를 작성하여 RVIZ를 통해 자동차 바퀴의 동작을 확인한다(*xycar_motor 패키지는 외부 공개 불가인 점 양해부탁드립니다)..
학습 내용 모터제어기 ROS 프로그래밍 이번에는 자율주행 실습을 위한 모터제어 ROS 프로그래밍에 대해 알아보자. 자이카 차량의 동작은 자율주행 SW 구동을 위한 메인 프로세서, VESC 모터제어기, 구동 모터(전후진), 그리고 조향 모터(핸들조작)으로 구성되어 있다. 구동 모터(Wheel Motor)는 전후진 제어를 담당하며 모터의 회전 속도는 공급되는 전력의 양에 따라 결정된다. 조향 모터(Steering Motor)는 핸들 조작을 위한 모터로 좌우 정해진 각도 내에서 왕복 동작한다. VESC 모터제어기는 프로세서보드로부터 USB I/F를 통해 모터 제어 신호를 받아 2개의 모터에 전달하는 역할을 하며 모터 배터리를 통해 전력을 공급받는다. 모터제어를 위한 ROS Package 모터제어기와 관련된 노..