본문 바로가기

Robot/Robot Program - ROS

유니티에 실제 서보모터 3D 모델을 import해서 서보모터 구동해 보기

아두니티를 이용해서 서보모터를 구동하는 예제를 다루었었는데요.[바로가기] 오늘은 한 발 더 나아가서 실제 3D 모델을 이용해서 서보모터를 구동해 볼까 합니다.^^. 뭐 이 글의 목적은

  • 유니티(Unity)에서 서보 모터 3D 파일을 읽어보는 것과
  • 읽은 서보 모터 3D 모델에서 Horn 부분을 유니티 상에서 회전시켜보는 것과
  • 유니티 Game 화면에서 움직여진 Horn의 각도 만큼을 실제 서보모터를 회전시키는 것

입니다. 이제 언제나 그렇듯 유니티의 첫 화면부터 만나보러 가죠^^

프로젝트의 이름을 잡고~

첫 글에서 이야기[바로가기]한데로 ARDUnity를 Import하고 Wire Editor를 준비해 둡니다.

그리고 빈 Object를 위 그림처럼 준비해 둡니다.

이름을 저렇게 바꾸는 거지요. 아 그런데 Horn이라고 이름 붙인 아이는 좀 더 뒤에서 설명할 거라 주의해 주세요^^

그리고~~~

servoMotorModel.zip

위 압축을 풀어서 나타나는 서보모터의 3D 도면 파일을 위 그림처럼 Asset->Import New Asset을 눌러서

선택해야 합니다. 하나는 서보 모터 몸체이고, 또 다른 하나는 혼(Horn)입니다. 저 두 파일은 [바로가기]에서 이야기한 아두니티팀의 이 책임님이 보내주신 자료인데요. 아주~~ 멋진 분으로 친해지고 싶은 스타일이시지요^^ 아무튼 이 분의 자료를 받아 

저렇게 Assets에 등록시켜 둡니다.

그리고 두 모델 모두 너무 커서 카메라로 잡기가 좀 애매해서 Scale을 미리 0.1로 조절해 둡니다.

그리고, 각각 Body와 Horn에 긁어다 붙여 넣으면 됩니다. 아~~ Horn 부분은 바뀝니다만.. 뭐 아무튼 그렇습니다.

그리고 Body를 선택해서 Rotation을 X축 부분을 90으로 잡아 줍니다. 안 그러면 카메라랑 Light를 모두 조절해야하는데 뭐 이게 더 간단한 듯 합니다.^^

그리고 Horn 부분을 Hierarchy에서 선택한 후 나타나는 RGB 화살표를 잡고 움직여서

배치시켜둡니다. (이 과정은 후반에 다시 할 수 있습니다. 지금은 그냥 잘 배치된다는 것만 확인하죠).. 그런데 혹시 지나가는 유니티 고수님이 있으시면 이 과정을 좀 더 쉽게 할 수 있는 방법이 있는지 조언 부탁드립니다. 전 육안으로 보고 노가다로 배치했습니다.ㅠㅠ.

그리고 나면 이제 Main Camera의 위치를 잡아 줘야 하는 데요~~~ 일단, Hierarchy에서 Main Camera를 선택한 후

CTRL+Shift+F키를 누르면 현재 Scene의 화면이 Game창에 나타나도록 세팅이 편하게 됩니다.^^

그리고 Horn에서 Add Component로 RotationAxisReactor를 추가합니다. 이 컴포넌트는 아두니티에서 제공하는 것으로 3D 사물의 회전을 손쉽게 해 주는 유용한(^^) 아이입니다.^^

그런데.... 만약... Rotation Axis Reactor를 적용했는데 회전 중심축이 이상하다면 Horn안에 두었던 3D 도면을 지우고, 알아보기쉽게 위 그림 제일 상단 왼쪽의 노란색 마른모로 변경하고, Rotation Axis Reactor를 Add한 후에 먼저 회전 중심의 좌표축을 맞춰줍니다.

그리고 Body안이 아니라 별도 밖에다가 Horn의 3D 모델을 긁어다 위치시킵니다. 그러면 위 그림처럼 나타납니다.

Horn의 3D 도면을 다시 회전 중심축에 좌표를 일치하도록 합니다.

그리고 그 3D 모델을 긁어다 Horn이라는 Object로 붙이면 의도하는 대로 됩니다.^^

이제 아두니티가 제공하는 Resources에서 Floor Tile과 Blue를 적용해 줘서 살짝 이뻐보이게 한 다음^^

ARDUnity Object에서 Ardunity App과 Comm Serial을 Add합니다.

그리고 Servo Object에서 GenericServo를 Add하구요^^

서보모터 연결핀을 2번으로 지정해 줍니다.

아두니티의 와이어 에디터는 위 그림처럼 연결하구요^^

Export Sketch를 한 코드를 아두이노에서 읽어서 업로드를 시켜주면 끝입니다^^

아~~ 서보모터는 위 그림처럼 연결하구요^^

exServoMotorIncludeRealModel.zip

이건 전체 프로젝트입니다.^^. 이제 실제 동작하는 모습을 볼까요^^

반응형