본문 바로가기

Robot/Robot Program - ROS

강화학습을 공부하는 분들에게 도움이 되는 Gym Gazebo 설정하기

강화학습을 공부하려는 분들이 많이 사용하는 것이 OpenAI의 Gym일 겁니다. 그런데 Gym에서 조금 더 나가서 Gazebo를 사용할 수도 있습니다. 영상, Lidar 등을 로봇 쪽 센서로 보고 주행로봇에 강화학습을 적용해볼 수 있다면 보다 더 재미있는(^^) 학습을 할 수 있을 겁니다. 이번에는 강화학습을 공부하는 분들을 위해 ROS의 Gazebo를 이용해서 Gym을 구동하는 환경을 이야기해보도록 하겠습니다.

먼저 ROS Melodic에서 Gym gazebo를 설치하는 방법을 설명한 erlerobot의 Github에 나와있습니다.

여기는 그냥 따라서 설치하면 됩니다. 긁으실때는 github에서 해주세요. 저는 설명을 위해 캡쳐했습니다~

그런데 이 부분에서는 조금 조심해야합니다. 일단 sudo를 이용하지 않아도 설치가 잘 됩니다. 참고로 pip를 이용할 때 sudo를 사용하지 않아야한다는 의견이 많습니다. 그래서 이부분만 조금 더 들여다 보겠습니다.

일단, gym은 python2인 melodic 환경에서도 큰 무리가 없이 잘 설치됩니다.

그리고 역시 scikit-image도 설치~

그리고 h5py도 sudo 없이 잘 설치됩니다.

그다음은 gym-gazebo를 설치페이지에서 안내된대로 github에서 받아서 인스톨합니다.

installation 폴더로 가서 setup_melodic.bash를 bash합니다~

음~... 아주 오래 걸릴 수도 있습니다.

인내에 대한 멋진 말씀들을 읽으며 시간을 때워보는 것도 좋습니다.~

이렇게 100%까지 잘 진행되면... 짠~ 커서가 깜빡거리는 프롬프트의 경로를 잘 확인해주세요. 애초에 시작했던 경로가 아닌 다른 곳에 또 catkin_ws가 있을 겁니다.~

네~ 여기서 가제보에서 불러올 로봇들이 빌드까지 완료된 상태로 있습니다~

bashrc를 확인해보면 저렇게 gym-gazebo에 의해 만들어진 catkin_ws가 source되어 있다는 것을 알 수 있습니다. 이때, 혹시 문제가 될 수도 있으니 , 자신의 워크스페이스는 주석처리를 하고 터미널을 다시 실행하는 것도 괜찮습니다. 제 경우는 turtlebot 패키지가 양쪽에 존재해서 에러가 나더군요.

이제 turtlebot_setup.bash를 실행해 둡니다.

그리고 example폴더로 가서

turtlbot_lidar_qlearn을 실행해봅니다.

이때 나타난 gazebo master의 주소를 복사해둡니다.

그것을 export 시키고, gzclient를 실행합니다~

그 과정은 위 동영상에 있습니다. Q-learning이며 열심히 turtlebot이 움직이는 것을 알 수 있습니다.

이제는 turtlebot_nn_setup을 실행해두고~

turtlebot_lidar_dqn을 실행합니다. 넵~ 딥러닝+Q러닝.. 그거~^^

우리 네트웩을 한 번 보여주고~ 또 시작합니다. 이것도 한 번 볼까요? 아참~ gazebo master uri 복사해서 export하는 거  잊지 마세요~

중간에 잘랐는데, 마지막 부분에는 멋지게 맵을 돕니다.^^. 

이번에는 강화학습 이야기를 하고 싶었던 것이 아니고, 강화학습을 공부하기 위해 gym gazebo를 설치하고 사용하는 방법에 대해 이야기를 해보았습니다.~ ^^

반응형