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의 감지 거리를 조정할 수 도 있고, 카메라의 해상도도 조정가능합니다.

시뮬레이션이니깐요.


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

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

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

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

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

건전한 스팀잇 생활을 위한 포스팅 정리

요즘 스팀잇을 하는 시간이 무척 많아졌습니다.

다니님의 스팀잇 생활을 보고

저도 지치지 않고 지속 가능한 스팀잇 활동을 위해 정리를 해야겠다 생각했습니다.

제가 스팀잇을 하는 목적은 아래 3가지입니다.

  • 평소 내 생각, 느낀점, 배운것 기록
  • 개발 관련 포스팅: 포트폴리오 및 추후 활용할 수 있도록 기록
    (내가 개발한 것 소개, 문제 발생, 코드 간단한 설명, 동작 원리 등등)
  • 내 생각도 정리하며 코인을 얻음!!

글을 작성할 수 있는 시간

  • 평소에 짬짬히 작업하는 것을 기록한다.
  • 취미를 하면서 워드프레스에 기록한다.
  • 에버노트에 기록한다.

매일 저녁 10시- 11시 이후, 글을 작성한 것을 정리해서 포스팅한다.

하루 글 1개 작성


내 포스팅 내용 및 계획

개발 관련 포스팅

  • 로봇 개발 관련 포스팅
    • 나만의 로봇 프로젝트: 오픈소스를 활용한 프로젝트, 나만의 로봇 갖기
  • 스팀잇 개발 관련 포스팅
    • 스팀잇 알림 서비스: python-steem 활용, telegram 활용
    • 워드프레스 플러그인 개발기: 개발하면서 기억할만한 것들, 만났던 문제들
  • 게임 프로젝트
    • 비밀 프로젝트 – 계획중..
  • 공부 포스팅
    • 코딩 공부

일기 포스팅

  • 일상 생활
  • 영화
  • 이력서 작성을 위한 포트폴리오
  • 영어 공부를 위한 영어 포스팅

정리를 해보니..

스팀잇 자체에 관심이 많아져서

스팀잇 관련 개발을 하게되었습니다.

사람의 시간은 한정되어있는데..

혼자서 다 못하는데 너무 많은 것을 시도하는 것 같다.

우선 순위를 정해서 해봐야 겠습니다.

 


개발 관련 포스팅 계획

  • 스팀잇 관련 개발 중에 만난 문제점 및 코드 공개로 끝을 낸다.
  • 워드프레스 플러그인의 경우 조금씩 공부할 예정. 내가 원하는 정도를 만들 때까지
  • 현재까지 개발한 것으로 포트폴리오 페이지 만들기 및 포스팅
  • 로봇 개발을 시작한다. (공개된 라이브러리 공부 – 음성 인식, 물체 인식, SLAM순)

일기

  • 평소 기록을 하고 잘 정리된 글은 포스팅한다.

읽어주셔서 감사합니다!

[SteemPress] update post from wordpress to steemit

Introduce

My wordpress plugin is ‘Steempress’.

When you write post in WordPress, SteemPress updates your post to steemit.

This post was written on wordpress.


Now I am developing..

Currently, main functions are implemented.

wordpress post is updated to steemit.

I need to develop setting pages and side bar for posting options.


Do you know wp-steem?

https://wordpress.org/plugins/wp-steem/

wp-steem에 대한 이미지 검색결과

Now this plugin don`t work.

So, I am developing below functions.

If you want some functions, ask me.

  • Publish your newly created WordPress post to the Steem blockchain (Done)
  • Publish your old WordPress post to the Steem blockchain (Done)
  • Update your published Steem post if you have used this plugin to publish that Steem post (Done)
  • Set post reward options such as Power Up (100%), Default (50% / 50%), and Decline Payout
  • Set custom post permalink for your Steem post
  • Set post tags for your Steem post
  • Easy to use User Interface
  • Automatically converts your post content into Markdown format
  • Automatically render WordPress shortcodes to Steem post (Assuming you are using the default WordPress editor NOT the Markdown editor)
  • Incorporation Steemconnect for security

I found another steempress.

https://steemit.com/utopian-io/@howo/introducing-steempress-beta-a-wordpress-plugin-for-steem

Frankly, I didn`t find another steempress and I was developing..

I realize.. that If i think something, another man can think..

Even, plugin name is same.

If I can contribute steempress, I will.

Thank you.