내 머릿속

[Ubuntu 22.04] Isaac sim 4륜 모바일 로봇 ROS토픽 연동하기 본문

자율주행

[Ubuntu 22.04] Isaac sim 4륜 모바일 로봇 ROS토픽 연동하기

두구궁 2025. 1. 31. 16:47
728x90
반응형
SMALL

이번 글은 Isaac sim 4.2 환경에서 기본적인 주행 ROS topic 인 Twist 타입의 /cmd_vel을 4륜 모바일로봇에 적용하는 예제입니다.


Action Graph 불러오기

Isaac Utils -> Common Omnigraphs -> Diffrential Controller

Robot Prim에서 Add로 로봇을 선택해줍니다. (저는 jackal)

바퀴 반지름과 바퀴간 거리를 설정.


Action 그래프 수정

새로 생성된 Action Graph인 diffrential_controller 그래프를 열어줍니다.

우선 ROS2 Subscribe Twist 노드를 추가하고

다음과 같이 연결해줍니다. 기존에 On Playback Tick에서 Diffrential Controller로 연결된 간선은 우클릭으로 Disconnect

이제 Break 3-Vector 노드 두개와 Scale To/From Stage Units 노드를 가져와서 다음과 같이 연결.

 

이 과정을 통해서 /cmd_vel 토픽을 받아 angular.z, linear.x 를 하부제어기에 Reference 값으로 던져줄 수 있습니다.

다음으로 Diffrential Controller Node에서 maxLinearSpeed를 지정( ex : 0.5 )

 

이제 기존에 하나였던 Articulation Controller를 하나 더 추가하고 Velocity Command와 On Playback Tick 노드의 Tick을 Exec In에 연결해줍니다.

다음으로 Constant Token 노드 2개, Make Array 노드 한개를 만들어주고 Make Array의 우측 메뉴에서 input을 + 를 눌러서 추가

그리고 위에거는 rear_right_wheel_joint ( 로봇에 따라 부여된 조인트 이름 참고 )

아래 토큰은 rear_left_wheel_joint를 각각 입력하고 Make Array에서 나온 Array를 Joint Names에 연결

그리고 상단 Articulation Controller의 targetPrim을 base_link 혹은 base_footprint로 변경.

동일하게 하단 Articulation Controller에도 적용해주면 되는데 상단 토큰은 front_right_wheel_joint, 하단은 front_left_wheel_joint입니다. 동일하게 Array를 Joint Names에. Target Prim을 base_link 혹은 base_footprint로 지정.

 

테스트

 

728x90
반응형
LIST