새소식

ROS & Robotics

[RELLIS-3D] Gazebo Warthog 로봇에 IMU 탑재하기

  • -

프로젝트에서 사용하고 있는 RELLIS-3D 데이터셋은 Warthog 로봇으로 획득한 것입니다.

따라서 실험 시뮬레이션도 Warthog 로봇을 사용했는데, 기본 세팅으로 센서가 정의되어 있기는 하지만 rostopic list 를 했을 때 아무 데이터도 볼 수 없었습니다. 따라서 Gazebo 에서 이 센서를 사용할 수 있도록 따로 설정해주어야 합니다. 

 

(사담 : 처음에는 Turtlebot3 를 사용했는데, 종잇장처럼 얕은 경사도 오르지 못 했기 때문에 사용할 수 없었습니다.)

 

ㄴ src ㄴ warthog_simulator ㄴ warthog_description ㄴ urdf ㄴ warthog.urdf.xacro

 

이 위치에 들어 있는 warthog.urdf.xacro 파일에 다음 부분을 추가해줍니다. 

 

<gazebo> <plugin name="imu_plugin" filename="libgazebo_ros_imu.so"> <alwaysOn>true</alwaysOn> <updateRate>1000.0</updateRate> <bodyName>imu_link</bodyName> <topicName>imu_data</topicName> <gaussianNoise>0.05</gaussianNoise> <xyzOffset>0 0 0</xyzOffset> <rpyOffset>0 0 0</rpyOffset> <visualize>true</visualize> </plugin> </gazebo>

 

그리고 같은 파일에 이 부분도 추가해 줍니다.

 

<link name="imu_link" /> <joint name="imu_link_joint" type="fixed"> <origin xyz="$(optenv WARTHOG_IMU_XYZ 0 0 0)" rpy="$(optenv WARTHOG_IMU_RPY 0 0 0)" /> <parent link="chassis_link"/> <child link="imu_link" /> </joint>

 

이 코드는 imu_plugin 이라는 플러그인을 로드합니다. 이 플러그인은 IMU 데이터를 생성하고, imu_link 에서 이 데이터를 읽어와 imu_data 라는 이름의 토픽으로 발행합니다. 

 

이후 로봇을 Gazebo 상에서 로드하면 다음과 같이 imu 토픽을 받아올 수 있습니다. 

 

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.