ROS_DOMAIN_ID

About_work·2023년 11월 15일
0

ros2

목록 보기
2/41
  • 네트워크 상에서 ROS 노드들이 서로를 찾고 통신하는 데 사용되는 도메인 ID를 설정
  • ROS 네트워크 상의 통신을 분리하고 관리하는 데 사용
  • ROS 2의 멀티테넌시(multi-tenancy, https://velog.io/@jk01019/Multi-tenancy) 기능을 활용하는 데 핵심적인 역할을 하며, 로봇 네트워크의 구성과 관리에 중요한 도구로 사용됩니다.

세부사항

DDS (Data Distribution Service) 도메인

  • ROS 2는 DDS라는 미들웨어를 사용하여 노드 간의 메시지 전달과 통신을 처리합니다.
  • ROS_DOMAIN_ID는 DDS 도메인을 식별하는 데 사용되며, 이는 네트워크상의 노드들이 서로를 찾고 통신할 수 있도록 합니다.

네트워크 분리

  • 서로 다른 ROS_DOMAIN_ID 값을 가진 노드들은 서로 통신할 수 없습니다.
  • 이를 통해 여러 팀이나 프로젝트가 같은 네트워크 환경에서 독립적으로 작업할 수 있게 해주며,
    • 특정 응용 프로그램이나 실험에 필요한 노드들만 통신하도록 제한할 수 있습니다.

컨피규레이션의 유연성

  • ROS_DOMAIN_ID를 설정함으로써, 사용자는 동일한 물리적 네트워크 상에서 여러 ROS 2 시스템이 공존하도록 할 수 있습니다.
  • 이는 대규모 로봇 시스템, 다중 로봇 실험, 또는 교육 환경 등에서 유용합니다.

값 범위

  • ROS_DOMAIN_ID는 0부터 232까지의 값을 가질 수 있습니다.
  • 이 범위 내에서 사용자는 적절한 ID 값을 선택할 수 있습니다.

환경 변수 설정

  • 일반적으로 ROS_DOMAIN_ID는 스크립트나 셸 환경에서 설정됩니다.
  • 예를 들어,
    • os.environ["ROS_DOMAIN_ID"] = "10"과 같은 코드를 통해 Python 스크립트 내에서 설정할 수 있으며,
    • 셸에서 export ROS_DOMAIN_ID=10와 같이 설정할 수도 있습니다.
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글