LIMO
이 섹션에서는 LIMO 로봇용 시뮬레이터에서 지원하는 ROS 통신에 대한 네트워크 설정 방법을 설명한다.
시뮬레이터 버전 v.S2.230728.Wego09
이후 배포 버전을 기준으로 가이드한다.
LIMO 는 WEGO에서 개발한 AI 모듈 및 오픈 소스 ROS 패키지가 포함된 혁신적인 다중 모드, 소형 및 맞춤형 모바일 로봇이다.
ROS 네트워크 설정
사용자 자율주행 SW와 LIMO 시뮬레이터 간의 ROS 통신을 위한 네트워크 설정 정보를 입력한다.
Bridge Setting
시뮬레이터 Network > Networks Settings (단축키: F5)에서 ROS Bridge Setting 정보를 아래와 같이 입력한다.
ROS Bridge의 IP와 Port를 입력
Bridge IP 는 rosbridge를 실행 하고 있는 사용자 서버의 IP를 입력
Local 환경 :
127.0.0.1
Virtual 환경 : 가상환경 설치할때 세팅했던 IP
네트워크 설정 저장 & 불러오기
Network > Load Settings > Save 를 클릭하여 현재 네트워크 설정 정보를 저장할 수 있다. 또한 하단의 Load를 클릭하여 저장한 네트워크 설정 정보를 불러올 수 있다.
저장된 네트워크 설정 정보는 File List에 표시되며, Del을 클릭하면 삭제할 수 있다.
LIMO ROS Message
LIMO 시뮬레이터 차량을 제어하고 차량 및 주변 상태 정보를 전송하는 ROS 메시지를 설명한다.
Ego Ctrl Cmd: 차량 제어 명령 메시지
LIMO Ego Vehicle를 제어하는 Ego Ctrl Cmd ROS 메시지로 두가지 타입(std_msgs/Float64 , geometry_msgs/Twist)을 지원한다.
std_msgs/Float64
Message Type : std_msgs/Float64
Default Topic : /commands/motor/speed
타입 설명 : 차량의 종방향 선 속도 제어를 위한 명령 값
float64 linear.x : 선속도 값 의미 (m/sec)
data : min : -3.024 ~ 0 ~ max : 3.024(음수 값 입력시 후진)
Default Topic : /commands/servo/position
타입 설명 : 차량의 yaw 방향 각속도 제어를 위한 명령 값
float64 angular.z : 각속도 값 의미 (rad/sec)
data : min : -2.5 ~ 0 ~ max : 2.5(음수 값 입력시 좌회전)
geometry_msgs/Twist
Message Type : geometry_msgs/Twist
Default Topic : /commands/vel
타입 설명 : 차량의 선 속도, 각속도 제어를 위한 명령 값
float64 linear.x : 선속도 값 의미 (m/sec)
min : -1 ~ max : 1(음수 값 입력시 후진)
float64 angular.z : yaw 방향 각속도 값 의미 (rad/sec)
min : -3.14 ~ max : 3.14(음수 값 입력시 좌회전)
Ego Vehicle Status: 차량 상태 정보 메시지
Message Type : morai_msgs/EgoVehicleStatus
Default Topic : /Ego_topic
타입 설명 : 차량의 상태를 나타내는 메시지
std_msgs/Header header : 헤더
int32 unique_id
geometry_msgs/Vector3 accerleration : 선속도 (m/sec)
geometry_msgs/Vector3 position : 각속도 (rad/sec)
geometry_msgs/Vector3 velocity : 속도 (rad/sec)
float64 heading : 헤딩(degree)
float64 accel
float64 brake
float64 wheel_angle
Object Info: 주변 객체 정보 메시지
MoraiObjectInfoPublisher (Sim → User)
Message Type : morai_msgs/ObjectStatusList
Default Topic : /Object_topic
타입 설명 : 사용자가 배치한 주변 물체들에 대한 정보를 나타내는 메시지
Header header
int32 num_of_npcs : 사용자가 배치한 npc 차량의 개수.
int32 num_of_pedestrian : 사용자가 배치한 pedestrian의 개수.
int32 num_of_obstacle : 사용자가 배치한 obstacle의 개수.
ObjectStatus[] npc_list : npc 차량 정보 ( 아래의 ObjectStatus 타입 참고)
ObjectStatus[] pedestrian_list : pedestrian 정보 ( 아래의 ObjectStatus 타입 참고)
ObjectStatus[] obstacle_list : obstacle 정보 ( 아래의 ObjectStatus 타입 참고)