Gazebo 11이 지난 달에 릴리즈 되었습니다. 이 버전이 Gazebo의 마지막 릴리즈 버전이고, 이후론 지원 기간까지 새로운 기능보단, 주로 버그 수정 등만 지원됩니다. 새로운 Ignition Gazebo가 나올 예정인데, 이는 Ignition Robotics라는 곳에서 업데이트 등을 지원할 예정입니다.
현재의 ROS의 최근 LTS 버전은 Melodic으로, 공식적으론 Gazebo 9만 지원합니다. 따라서 Gazebo 11을 사용하기 위해선 ROS와 연동하기 위한 패키지들을 새로 빌드해줘야 합니다.
ROS1 Melodic이 설치된 상태에서, Gazebo 11을 설치하려면 패키지의 의존성 등을 고려하여 다음과 같이 입력합니다.
$ sudo apt install gazebo11 libgazebo11 gazebo11-common libgazebo11-dev
이러면, Gazebo 9은 자동으로 제거가 되고, Gazebo 11이 설치됩니다.
이제 ROS와 연동하기 위한 gazebo_ros_pkgs를 새로 받아 빌드합니다.
catkin workspace 내에서 작업해야 하므로,
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git
$ cd gazebo_ros_pkgs
$ git checkout melodic-devel
$ catkin build
빌드가 완료되면, 예전과 같이 정상적으로 ROS1과 연동하여 사용이 가능합니다. 플러그인도 사용 가능.
$ roslaunch gazebo_ros empty_world.launch
위와 같이 설치를 하게 되면, ros-melodic-desktop-full의 의존성이 깨지므로, apt를 사용할때 autoremove로 ROS 패키지들을 자동으로 지우게끔 유도하게 되는데 이를 해결하려면,
$ sudo apt install ros-melodic-perception ros-melodic-desktop ros-melodic-ros-control ros-melodic-ros-controllers
와 같이 각각의 패키지들을 설치하면 해결되고, 그 외의 패키지는 필요없는 것들이니 지워도 무방합니다.
끝.
감사합니다. gazebo버전 때문에 뭔가 dependency package들이 꼬여있던거군요.
catkin_build 는 workspace에서 catkin_make로 수행할 수 있겠죠?
rosdep install –from-paths src –ignore-src 로 dependency 설치도 먼저 수행하면 보다 깔끔하게 수행할 수 있을 것 같습니다.