ROS2 with turtlesim (feat. zsh)

yun·2023년 11월 2일
0

ROS2

목록 보기
1/5

ROS1과의 차이점

  • 산업표준 통신 DDS 사용
    • DDS: Data Distribution Service 데이터 분산 서비스
    • UDP 기반의 신뢰성 있는 멀티캐스트(Reliable multicast) 구현
    • QoS(Quality of Services): 노드 간의 DDS 통신 옵션 설정 가능
    • 보안 이슈 해결: DDS-Security 적용
  • Python3 지원 (3.5 이상 버전 필요)
  • 개별 빌드 필요 (cf. ROS: CMake context 하나로 여러 패키지 빌드 가능)
  • devel space 부재: 모든 패키지는 빌드 후에 install이 되어야 사용 가능

서비스와 토픽

  • 서비스: 요청과 응답이 1:1 ex) 전원 on/off, 모터 on/off 등

    • 서비스 인터페이스 확인
      [형식]

      ros2 interface show [node]/srv/[service]

      [예시]

      ros2 interface show turtlesim/srv/TeleportAbsolute

      [조회결과 형식]

      Request
       ---
       Response

      [조회결과 예시] *turtlesim/srv/TeleportAbsolute

      float32 x
       float32 y
       float32 theta
      ---
      • 위 예시에서는 요청 시 float32 타입의 x(pitch), float32 타입의 y(yaw), float32 타입의 theta(roll)가 필요하고, 응답값은 없다.
      • theta는 반시계 방향(Counter Clock Wise)
      • 각도 단위는 radian[2π]으로 작성
        rad=degreeπ180rad = degree\frac{\pi}{180}
  • 토픽: 연속 동작 ex) 현재 위치 업데이트

    • 토픽 정보 확인
      [형식]
      ros2 topic info [node]/[topic]
      [예시]
      ros2 topic info /turtle1/cmd_vel
      [조회결과 예시]
      Type: geometry_msgs/msg/Twist
      Publisher count: 0
      Subscription count: 2

rqt_graph

  • ROS computation graph를 시각화하는 GUI 플러그인 제공

  • 보는 법
    • Nodes/Topics (all)
    • Debug Hide 해제
    • ◯: node
    • ▭: topic

zsh에서 ros2 명령어 자동완성 안될 때

autoload bashcompinit
bashcompinit

eval "$(register-python-argcomplete3 ros2)"
eval "$(register-python-argcomplete3 colcon)"

~/.zshrc에 위 내용 추가 후 source ~/.zshrc

참고자료

0개의 댓글