본문 바로가기

Simulation/CARLA

ROS2 기초(2)

서비스

 Client 노드가 Server 노드로 requiest를 요청(call이라 부름)하면, Server가 해당 request에 대응하는 적절한 response를 전달한다. 

Topic은 여러 노드가 수신하여 사용가능하지만, Service는 요청한 노드에게만 데이터를 송신한다.

동시 처리가 안되기 때문에, 현재 request가 처리될때까지 다른 request는 기다리고 있어야한다.

 

 Topic은 message 타입, Sevice는 srv라는 타입.

 서비스 타입은 아래 명령어로 확인 가능하다.

ros2 service type 서비스명

 

또는 특정 타입의 서비스를 찾고싶은경우 아래 명령어로 찾을 수 있다.

ros2 service find 서비스타입

 

각 서비스타입에 대한 상세한 정보는 아래 명령어로 확인.

ros2 interface show 서비스타입

 

서비스는 Server와 Client가 구분됨.

init에서 server와 client를 각각 생성함.

 

 

 

Action

액션은  goal, feedback, result 로 구성된다. 

client가 goal을 요청 - server가 goal에 대한 response 반환

client가 result를 요청 - server가 feedback 반환하다가 완료 후  result를 반환.

 

 

ODOM (항법장치)

 바퀴가 얼마나 회전했는지  알 수 있음.  대부분의 오픈소스에서 odom을 사용함.

 

 

 

Galactic에서 derived_object_msgs.msg 라는 메세지 타입이 없어서, carla ros bridge 실행 시에 에러가 발생하고 있다.

 

 

 

Launch 파일 프로그래밍

LaunchConfiguration ? param_dir을 생성자로 할당하는 부분. 

    param_dir = LaunchConfiguration(
        'param_dir',  # ???
        default=os.path.join(
            get_package_share_directory('패키지명'),
            '디렉토리경로',
            '파일이름'))

 

 

launch.actions.DeclareLaunchArgument?  LaunchDescription에서 사용할 파라미터 설정

 

launch.actions.IncludeLaunchDescription?

 다른 런치파일 불러오기 : 다른 패키지의 launch 파일을 불러오는 것은, get_package_share_directory 함수를 이용해 해당 패키지명을 함께 입력해줌으로써 가능하다. 

 

 

 

'Simulation > CARLA' 카테고리의 다른 글

CARLA Build PythonAPI Error(cannot find -lstdc++)  (0) 2023.01.26
Autoware installation  (0) 2023.01.20
ROS2 기초  (0) 2023.01.11
Carla Autoware (3)- dependencies 설치  (0) 2023.01.09
Carla Autoware(2)-CUDA/cuDNN/TensorRT 설치  (0) 2023.01.05