현재 사용하고 있는 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>
다음 코드는 imu_plugin 이라는 플러그인을 로드한다. 이 플러그인은 IMU 데이터를 생성하고, imu_link 에서 이 데이터를 읽어와 imu_data 라는 이름의 토픽으로 발행한다.
이후 로봇을 Gazebo 상에서 로드하면 다음과 같이 imu 토픽을 받아올 수 있다.