안녕하세요. 제이콥입니다.
오랜만에 로봇 관련으로 글을 써보려고 합니다.
제가 잘못된 정보를 적었거나 실수한게 있다면 알려주세요!
ROS가 무엇인가?에 대해 적어보았는데 궁금하시면 읽어보세요.
다시 한 번 ROS를 간단히 설명하자면
스마트폰 OS로 안드로이드가 있는 것과 같이, ROS는 로봇의 OS입니다.
정확히는 ROS는 메타 OS 라고 하며, 리눅스, 윈도우, 맥 등의 OS 위에 올라갑니다.
오늘은 로봇 시뮬레이션에 대해 설명하고자 합니다.
설치하는 방법은 생략하고
왜 시뮬레이션이 필요하고 어떻게 돌아가는지 보여드릴게요
우리가 잘 아는 시뮬레이션이 있습니다.
아래의 Zoo 타이쿤이죠! 우리는 이제 로봇을 위해 환경을 만들꺼에요!
로봇 프로그래밍에서 시뮬레이션이 왜 필요할까요?
- 실제 로봇으로는 반복적인 테스트하기 어렵다.
- 실제 로봇으로 하다가 로봇이 오동작하여 고장날 수 있다.
- 여러 변수를 제거하고 시뮬레이션을 통해 테스트를 해볼 수 있다.
- 자리에 앉아서 편하게 파라미터를 바꿔본다.
이 정도 이유일 것 같아요!
Gazebo를 통한 시뮬레이션을 보여드리려고 합니다.
Gazebo를 통해 원하는 환경을 만들 수 있으며,
로봇 또한 원하는대로 만들고 제어해 볼 수 있습니다.
먼저 Gazebo에서 환경을 만든 것을 보여드리겠습니다.
https://www.youtube.com/watch?v=qQRHluBGLgs&feature=youtu.be
간단하게 환경을 만들어 봤습니다.
저는 기존의 지어진 집을 가져온거지만, 원한다면 자신이 만들 수 있습니다.
그리고 3D모델만 있다면 어떤 모델이든지 Gazebo로 가져올 수 있습니다.
다음은 방금 만든 환경에서 로봇을 불러보겠습니다.
Gazebo의 로봇을 불러오고 동작하기 위해서는 몇 가지 파일이 필요한데
- 로봇의 3D 모델
- 로봇에 부착되어 있는 센서들의 실제 동작 명시
- 로봇의 컨트롤러
간단히 설명드리면
첫 번째, 로봇의 3D 모델은 Gazebo에 올려놓기 위한 것입니다.
두 번째, 로봇에 부착되어 있는 센서들의 실제 동작 명시는
단순히 보여지는 센서들이 어떻게 동작해야하는지 정의하는 것입니다.
세 번째, 로봇의 컨트롤러는 로봇의 센서들을 실제로 제어하는 모듈이죠.
이렇게 3개가 준비가 되고, Gazebo와 연결을 하면 아래와 같은 동작을 할 수 있습니다.
https://www.youtube.com/watch?v=_rlMAddN4_k&feature=youtu.be
위의 영상에서 로봇이 이동을 하고 있고, 로봇이 보고 있는 영상을 띄워놨습니다.
파란색으로 되어있는 영역이 Lidar로 주변 환경을 감지하고 있는 것입니다.
여기서 두 번째의 동작 명시를 설정을 함으로써
Lidar의 감지 거리를 조정할 수 도 있고, 카메라의 해상도도 조정가능합니다.
시뮬레이션이니깐요.
여기까지는 시뮬레이션을 위한 준비입니다.
위의 동작은 로봇을 키보드로 조작을 한 것입니다.
추후 이 로봇에게 주변 환경을 랜덤으로 돌아다니도록 한다거나
장애물 회피를 하는 알고리즘 등을 적용해 볼 수 있습니다.
감사합니다! 궁금한게 있다면 마음껏 물어보세요!
This page is synchronized from the post: ‘ROS와 Gazebo를 이용한 시뮬레이션 #1’