ROS와 Gazebo를 이용한 시뮬레이션 #1
안녕하세요. 제이콥입니다.
오랜만에 로봇 관련으로 글을 써보려고 합니다.
제가 잘못된 정보를 적었거나 실수한게 있다면 알려주세요!
ROS가 무엇인가?에 대해 적어보았는데 궁금하시면 읽어보세요.
다시 한 번 ROS를 간단히 설명하자면
스마트폰 OS로 안드로이드가 있는 것과 같이, ROS는 로봇의 OS입니다.
정확히는 ROS는 메타 OS 라고 하며, 리눅스, 윈도우, 맥 등의 OS 위에 올라갑니다.
오늘은 로봇 시뮬레이션에 대해 설명하고자 합니다.
설치하는 방법은 생략하고
왜 시뮬레이션이 필요하고 어떻게 돌아가는지 보여드릴게요
우리가 잘 아는 시뮬레이션이 있습니다.
아래의 Zoo 타이쿤이죠! 우리는 이제 로봇을 위해 환경을 만들꺼에요!
로봇 프로그래밍에서 시뮬레이션이 왜 필요할까요?
- 실제 로봇으로는 반복적인 테스트하기 어렵다.
- 실제 로봇으로 하다가 로봇이 오동작하여 고장날 수 있다.
- 여러 변수를 제거하고 시뮬레이션을 통해 테스트를 해볼 수 있다.
- 자리에 앉아서 편하게 파라미터를 바꿔본다.
Gazebo를 통한 시뮬레이션을 보여드리려고 합니다.
Gazebo를 통해 원하는 환경을 만들 수 있으며,
로봇 또한 원하는대로 만들고 제어해 볼 수 있습니다.
먼저 Gazebo에서 환경을 만든 것을 보여드리겠습니다.
간단하게 환경을 만들어 봤습니다.
저는 기존의 지어진 집을 가져온거지만, 원한다면 자신이 만들 수 있습니다.
그리고 3D모델만 있다면 어떤 모델이든지 Gazebo로 가져올 수 있습니다.
다음은 방금 만든 환경에서 로봇을 불러보겠습니다.
Gazebo의 로봇을 불러오고 동작하기 위해서는 몇 가지 파일이 필요한데
- 로봇의 3D 모델
- 로봇에 부착되어 있는 센서들의 실제 동작 명시
- 로봇의 컨트롤러
간단히 설명드리면
첫 번째, 로봇의 3D 모델은 Gazebo에 올려놓기 위한 것입니다.
두 번째, 로봇에 부착되어 있는 센서들의 실제 동작 명시는
단순히 보여지는 센서들이 어떻게 동작해야하는지 정의하는 것입니다.
세 번째, 로봇의 컨트롤러는 로봇의 센서들을 실제로 제어하는 모듈이죠.
이렇게 3개가 준비가 되고, Gazebo와 연결을 하면 아래와 같은 동작을 할 수 있습니다.
위의 영상에서 로봇이 이동을 하고 있고, 로봇이 보고 있는 영상을 띄워놨습니다.
파란색으로 되어있는 영역이 Lidar로 주변 환경을 감지하고 있는 것입니다.
여기서 두 번째의 동작 명시를 설정을 함으로써
Lidar의 감지 거리를 조정할 수 도 있고, 카메라의 해상도도 조정가능합니다.
시뮬레이션이니깐요.
여기까지는 시뮬레이션을 위한 준비입니다.
위의 동작은 로봇을 키보드로 조작을 한 것입니다.
추후 이 로봇에게 주변 환경을 랜덤으로 돌아다니도록 한다거나
장애물 회피를 하는 알고리즘 등을 적용해 볼 수 있습니다.
감사합니다! 궁금한게 있다면 마음껏 물어보세요!
스스로 홍보하는 프로젝트에서 나왔습니다.
오늘도 좋은글 잘 읽었습니다.
오늘도 여러분들의 꾸준한 포스팅을 응원합니다.
ROS라... 솔직히 이 쪽에는 문외한이라 ㅠㅠ
로봇의 OS는 ROS 이거 하나만 건지고 갑니다 !!
읽어주셔서 감사합니다!
로봇의 OS는 ROS
시뮬레이션은 실제 로봇에서 하기 힘든 것들을 할 수 있도록 도와줍니다.
gazebo 환경에 띄우는 로봇모델만 해도 상당한 기술이 들어가 있을텐데 시뮬레이션까지 할 수 있다니 멋진 환경입니다.
그래도 로봇 관련해서는 실제와 많이 다를 것 같습니다.
특히 마찰력이 중요한 환경 같은데서는요.
음 중력도 있고 무게중심도 있고
실제 물리엔진이 적용이됩니다.
시뮬레이션에서는 알고리즘이 잘 돌아가는지 확인할 수 있고 어느정도 테스트를 하는데 도움을 받습니다.
시간을 조금 아껴주는 역할?
물론 실제에서도 예상치못한 많은 문제가 발생하기때문에 실제실험에서도 테스트를 많이 해야합니다.
읽어주셔서 감사합니다. ㅎㅎ
새해 복많이 받으세요!!