New to Busy?

ROS와 Gazebo를 이용한 시뮬레이션 #1

6 comments

jacobyu
65
2 years agoBusy2 min read

안녕하세요. 제이콥입니다.

오랜만에 로봇 관련으로 글을 써보려고 합니다.

제가 잘못된 정보를 적었거나 실수한게 있다면 알려주세요!

ROS가 무엇인가?에 대해 적어보았는데 궁금하시면 읽어보세요.


다시 한 번 ROS를 간단히 설명하자면

스마트폰 OS로 안드로이드가 있는 것과 같이, ROS는 로봇의 OS입니다.

정확히는 ROS는 메타 OS 라고 하며, 리눅스, 윈도우, 맥 등의 OS 위에 올라갑니다.

오늘은 로봇 시뮬레이션에 대해 설명하고자 합니다.

설치하는 방법은 생략하고

왜 시뮬레이션이 필요하고 어떻게 돌아가는지 보여드릴게요


우리가 잘 아는 시뮬레이션이 있습니다.

아래의 Zoo 타이쿤이죠! 우리는 이제 로봇을 위해 환경을 만들꺼에요!

타이쿤을에 대한 이미지 검색결과

로봇 프로그래밍에서 시뮬레이션이 왜 필요할까요?

  • 실제 로봇으로는 반복적인 테스트하기 어렵다.
  • 실제 로봇으로 하다가 로봇이 오동작하여 고장날 수 있다.
  • 여러 변수를 제거하고 시뮬레이션을 통해 테스트를 해볼 수 있다.
  • 자리에 앉아서 편하게 파라미터를 바꿔본다.
이 정도 이유일 것 같아요!

Gazebo를 통한 시뮬레이션을 보여드리려고 합니다.

Gazebo를 통해 원하는 환경을 만들 수 있으며,

로봇 또한 원하는대로 만들고 제어해 볼 수 있습니다.


먼저 Gazebo에서 환경을 만든 것을 보여드리겠습니다.

간단하게 환경을 만들어 봤습니다.

저는 기존의 지어진 집을 가져온거지만, 원한다면 자신이 만들 수 있습니다.

그리고 3D모델만 있다면 어떤 모델이든지 Gazebo로 가져올 수 있습니다.


다음은 방금 만든 환경에서 로봇을 불러보겠습니다.

Gazebo의 로봇을 불러오고 동작하기 위해서는 몇 가지 파일이 필요한데

  • 로봇의 3D 모델
  • 로봇에 부착되어 있는 센서들의 실제 동작 명시
  • 로봇의 컨트롤러

간단히 설명드리면

첫 번째, 로봇의 3D 모델은 Gazebo에 올려놓기 위한 것입니다.

두 번째, 로봇에 부착되어 있는 센서들의 실제 동작 명시

단순히 보여지는 센서들이 어떻게 동작해야하는지 정의하는 것입니다.

세 번째, 로봇의 컨트롤러는 로봇의 센서들을 실제로 제어하는 모듈이죠.

이렇게 3개가 준비가 되고, Gazebo와 연결을 하면 아래와 같은 동작을 할 수 있습니다.


위의 영상에서 로봇이 이동을 하고 있고, 로봇이 보고 있는 영상을 띄워놨습니다.

파란색으로 되어있는 영역이 Lidar로 주변 환경을 감지하고 있는 것입니다.

여기서 두 번째의 동작 명시를 설정을 함으로써

Lidar의 감지 거리를 조정할 수 도 있고, 카메라의 해상도도 조정가능합니다.

시뮬레이션이니깐요.


여기까지는 시뮬레이션을 위한 준비입니다.

위의 동작은 로봇을 키보드로 조작을 한 것입니다.

추후 이 로봇에게 주변 환경을 랜덤으로 돌아다니도록 한다거나

장애물 회피를 하는 알고리즘 등을 적용해 볼 수 있습니다.

감사합니다! 궁금한게 있다면 마음껏 물어보세요!

Comments

Sort byBest