데브코스 자율주행 TIL 12일차

YUNJI·2023년 10월 14일
0
post-thumbnail

오늘 공부한 내용 📑


  • 3D 자동차 구동 제어

  • RVIZ 기반 차량 3D 모델링


새롭게 알게 된 점 😎


1. 자이카 모터 제어 : /xycar_motor 노드로 모터 제어 명령을 담은 /xycar_motor 토픽을 발행

  • xycar_motor topic 구성

    • std_msgs/Header header

      • seq : sequence 번호
      • stamp : time stamp
      • frame_id : xymotor 고유 ID
    • angle : 조향각 (-50 ~ 50) >> 스티어링 범위는 좌우 20도까지

    • speed : 주행속도 >> 양수이면 가속, 음수이면 감속 (-50 ~ 50)

    # 토픽 발행이 0.7초동안 없으면 속도, 조향각 모두 0으로 세팅 >> 정지 및 핸들 정면


2. RVIZ 3D 자동차 제어 : joint_state_publisher gui를 통해 joint_states 토픽 전송 >> 3D 자동차 제어

  • joint_states topic 구성

    • std_msgs/Header header

      • uint 32 seq
      • time stamp
      • string frame_id
    • string[ ] name : 조종할 대상

    • float64[ ] position : 각 대상의 현재 위치 정보 >> position을 조절해 대상을 움직일 수 있음
      (라디안 단위 사용, 0.01 라디안은 약 6도)

    • float64[ ] velocity

    • float64[ ] effort


3. RVIZ 오도메트리 활용

  • Odometry : 오도미터 등의 기기의 측정값으로 움직이는 사물의 위치를 측정하는 방법

  • Odom 토픽을 주어 Odometry 정보를 변환함으로써 사물을 이동시킬 수 있음

  • Odom topic 구성 : position(자세), Quaternion(기울기), linear(선속도), angular(각속도)


4. 모터 제어 토픽을 발행해 RVIZ 내 차량 주행하기

  • 무한루프에서 토픽이 도착하기를 기다리게 세팅

  • xycar_motor 토픽이 도착하면 callback 함수가 호출되도록 세팅

  • callback 함수를 통해 xycar_motor 토픽 내 데이터를 joint_state 구조에 맞게 변형하여 joint_states 토픽을 발행

  • Odometry 프로그램을 통해 /odom 토픽으로 변환해 발행


etc. launch 파일 내 주석 처리 : <!-- ..... -->

느낀 점 💖


  • RVIZ라는 3D 시뮬레이터를 처음 다뤄보게 되어 신기했다.

  • ROS를 공부하면서 느낀 거지만 노드와 토픽 이름이 너무 헷갈린다...🤨

  • 특히 여러 개의 센서를 동시에 활용하거나 이번 과제 같이 하나의 토픽을 다른 토픽 형태로 여러 번 변환하는 경우가 어려웠다.

0개의 댓글

관련 채용 정보