ROS Gazebo(classic)에 다른 physics engine 적용하기
ROS Gazebo에서 DART physics engine을 적용하는 방법
- 참고
- Parameters Applicable to All Physics Engines
- Creating a Custom World File
- ROS integration overview
- Physics Parameters
- SDFormat - Physics
roslaunch
를 실행시켰을 때 터미널에 오류가
나긴 하지만('문제점' 참고) 어쨌든 DART가 적용되어 내가 시도했던 방법을 기록해 보았다.CMakeLists.txt
파일 수정
- ROS integration overview에서
CMakeLists.txt
부분을 참고하여 내가 생성했던 패키지CMakeLists.txt
에서 빠진 부분을 추가했다.(ROS 패키지 생성은 여기를 참고했다.) 다만, 링크에 있는 것들을 다 넣어주었을 때는catkin_make
실행 씨 빌드가 안 되는 오류가 발생했다. 아래 부분을 제외하고 반영했더니catkin_make
가 제대로 실행되었다.
# Depend on system install of Gazebo find_package(gazebo REQUIRED)
-
내가 반영한 부분
find_package(catkin REQUIRED COMPONENTS gazebo_ros ) include_directories(include ${catkin_INCLUDE_DIRS} ${GAZEBO_INCLUDE_DIRS} $SDFormat_INCLUDE_DIRS}) catkin_package( DEPENDS gazebo_ros CATKIN_DEPENDS INCLUDE_DIRS LIBRARIES )
CUSTOM월드.world
파일 수정
- physics type을
'dart'
로 명명하여 추가한다.
<physics type='dart' default="True" > <dart> <solver> <solver_type>"dantzig"</solver_type > </solver> </dart> <max_step_size>0.001</max_step_size> <real_time_factor>1</real_time_factor> <real_time_update_rate>1000</real_time_update_rate> <max_contacts>20</max_contacts> </physics>
roslaunch
를 실행하기 전에. ~/catkin_ws/devel/setup.bash
를 입력해 주어야 내가.world
파일에서 수정했던 부분이 반영되는 거 같다.
문제점
-
[gazebo-2] process has died [pid 99441, exit code 255, cmd /home/bak/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/gzserver -u -e ode /home/bak/catkin_ws/src/myrobot_gazebo/worlds/myrobot.world __name:=gazebo __log:=/home/bak/.ros/log/33e9216c-2771-11ed-8649-31c30882ee00/gazebo-2.log].
와 같은 에러가 발생한다. (시뮬레이션 작동은 됨)
log file: /home/bak/.ros/log/33e9216c-2771-11ed-8649-31c30882ee00/gazebo-2*.log -
분명히 launch 파일에서
name="paused" default="True"
를 적용해줬음 에도 DART로 physics engine이 바뀌면 설정한 것과 상관 없이 실행과 동시에 simulation이 시작한다.
댓글
댓글 쓰기