어쩌다 보니, Azure VM으로 ROS GAZEBO를 구성해야 할 일이 있어서 진행하였고, 간략히 기록을 남깁니다.
ROS(Robot Operating System)
간략히 산업용 및 여러 용도의 로봇을 개발할때 사용되는 OS 입니다.
로봇 운영체제는 로봇 응용 프로그램을 개발할 때 필요한 하드웨어 추상화, 하위 디바이스 제어, 일반적으로 사용되는 기능의 구현, 프로세스간의 메시지 패싱, 패키지 관리, 개발환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구를 제공한다.
참고링크: 위키백과
Gazebo
로봇을 직접 사용하기 어려우니 시뮬레이터를 이용해야죠. GAZEBO가 simulator 입니다.
Gazebo is an open-source 3D robotics simulator. It integrated the ODE physics engine, OpenGL rendering, and support code for sensor simulation and actuator control.
Gazebo can use multiple high-performance physics engines, such as ODE, Bullet, etc. (the default is ODE). It provides realistic rendering of environments including high-quality lighting, shadows, and textures. It can model sensors that "see" the simulated environment, such as laser range finders, cameras (including wide-angle), Kinect style sensors, etc.
For 3D rendering, Gazebo uses the OGRE engine.
Gazebo-web
Gazebo를 웹서버와 클라이언트로 분리해, 크롬과 같은 브라우저에서 실행할 수 있도록 합니다.
https://classic.gazebosim.org/tutorials?tut=gzweb_install&cat=gzweb
Azure에서 Ubuntu linux를 이용해 Gazebo-web 까지 구성
진행전에, 그냥 Windows에서 하면 안되나요? 라는 질문이 있으실 수 있는데요.
GPU가 충분하고, 사양이 좋은 윈도우로 수행한 사례들이 많은데 이것도 ML처럼 기본 Ubuntu 환경에서 여러 커뮤니티와 ecosystem이 만들어져 있습니다. 원하시는대로 선택하시면 되며, 저는 PC 환경이 그다지 좋지 않아 Azure VM을 서버로, 제 PC를 클라이언트로 사용합니다.
Azure에서 제공하는 Ubuntu VM에 xfce 설정해 GUI 환경 설정
Azure에서 Ubuntu 22.04 LTS를 provision 하고, 이어서 xfce를 구성합니다. 아래 내용 참조.
Use xrdp with Linux - Azure Virtual Machines | Microsoft Learn
Gazebo 설정
xfce를 구성하고 xrdp로 원격 서버에 접속해 Gazebo를 구성하고 실행합니다. VM 사양이 낮아도 ubuntu 위에서 잘 동작합니다.
저는 대략 DS2 정도로 2-cpu + 8G 메모리 사양이었습니다.
Gazebo : Tutorial : Beginner: Overview (gazebosim.org)
Gazebo-web 설정
끝으로 Gazebo-web 구성입니다.
https://classic.gazebosim.org/tutorials?tut=gzweb_install&cat=gzweb
위의 문서를 참고해 완료했고, 간략히 node를 통해 실행됩니다.
실행하면 기본 8080 포트를 이용하는데, VM에 기본적으로 오픈되어 있지 않으니 직접 8080 포트를 열어주세요.
이어서 크롬이나 엣지 브라우저로 접속하시면 Gazebo 의 여러 작업을 하실 수 있습니다.
도움 되시길 바랍니다.
삽질한 기록:
Windows에서 구성하고 roslaunch gazebo_ros empty_world.launch 명령 후 gazebo client에서 응답 없음. 아마도 GPU나 사양이 좋은 윈도우면 되는 것 같음. ubuntu에서 구성하고 해결됨.
참고링크:
Use xrdp with Linux - Azure Virtual Machines | Microsoft Learn
Gazebo : Tutorial : Beginner: Overview (gazebosim.org)