찬찬히 로봇 메이커 :: 찬찬히 로봇 메이커
반응형

일본 대회장에 도착했을 때, 가벼운 충격을 받았다. 이렇게나 마우스 하는 사람들이 많다니!!!!

명단을 봤을 때에도 대략 100여명정도 되었던 것 같다. 나이도 중(?),고등학생부터 할아버지(?)처럼 보이는 분들도 계셨다. 피터 해리슨이란 교수님도 오시고 작년 우승자인 붉은 혜성도 보였다.

다들 열심히 준비하는 모습을 보니 세상은 참 넓다는 생각이 들었다. 한국에서도 로봇을 개발하고 공모전에 나오는 사람들 보면 수준도 높아보이고 대단해 보이는 사람들이 많았는데, 일본까지 와서 그걸 느끼니 다른 기분으로 다가왔다.

나도 거기에 마련된 작은 연습판에서 마우스 턴을 보았고, 형들이 말하셨던 대로 판이 우리 동아리방에 있는 판과 다른 재질이라 턴이 안 맞는게 보였다. 즉석에서 이것도 바꿔보고 저것도 바꿔보았다. 보니깐 진입 탈출 턴 전부 안 맞는 느낌이었다.

 

마우스 연속턴

 

센서값도 확실히 낮았다. max(거리값이 0)가 0이고 min(거리값이 최대)값이 512이라 했을 때, 한국보다 30정도 낮은 것 같았다. 그래도 다행히 센서에 별 다른 문제는 없었던 것 같아서 다행이었다. 하지만!!!!!!

센서세팅을 해놓고 턴을 맞춘 뒤, 또 센서세팅을 하면 턴이 틀어진다.!!!! 그래서 턴을 다시 맞추다 갈 시간이 되어서 다음날 다시 맞춰야하는 일이 생겼다. 아...나란사람 바보같은 사람....

대회 당일에는 조끼를 입고 순서를 기다리며 다른 사람들이 하는 것을 보았다.

클래식 마우스의 경우 95%는 다 흡착을 했던 것 같다. 생각보다 흡착의 구조가 어렵지는 않았고 다음에 마우스 PCB를 제작하게 되면 무조건 하겠다고 생각을 했다. 마우스 흡착을 하는 이유는 마우스가 고속으로 가속도가 변할 경우 바퀴가 들리는 현상이 일어난다. 그렇다고 마우스의 무게가 늘어나면 가속도가 안나오고...이 경우를 해결한 것이 마우스 흡착으로 마우스와 판 사이의 공기를 빨아드려 진공상태처럼 만든다. 그러면 흡착력이 생겨서 마우스가 밀리는 드리프트 현상이나 직진에서도 마우스가 들리는 현상을 막아 주는데 확실히 안정감이 늘어난 것 같았다.

거기다가 대부분 PCB를 사용했는데, 알고보니 스텝모터로 된 마우스 PCB는 판매하는 것이었다. 물론 그것들 말고도 다들 PCB에 흡착모터를 사용하긴 했지만 그래도 양산형으로 있다는 것 또한 충격으로 다가왔다.

스텝 마우스 양산형

나노 마우스 양산형

나노 마우스 실제크기(바로 옆에 배터리만큼 작음!)

나노 마우스는 진짜 작아서 신기했다. 얼마나 작냐하면, 땜할 자리가 없어서 모터 가드도 PCB로 뜬 사람이 있을 정도였다. ㅎㄷㄷ

기다리다 보니 내 차례가 다가왔고 나는 떨리는 마음으로 굴렸다. 결과는 생각만큼 잘 구르지 않았다는 것과 참으로 아쉬웠다.

 

마이크로마우스_일본대회2018.12.02

 

대회 사은품

참 뭐라고 할 수 없는 것이 전체적으로 문제였다. 연속턴도 덜 맞춰져있었던 것 같고 센서값이 잘못 읽힌 것도 있는 것 같아서...결국 천천히 완주만 하고 왔다. 이번 대회로 참 느낀 것이 많았다. 내년엔 꼭 더 열심히 해서 다른 사람들과 경쟁하는 구도로 갔으면 좋겠다. 이번엔 그냥 좋은 경험이 되었고 앞으로의 발판이 되었다고 생각한다.

기록, 43등

반응형
반응형

어차피 마우스를 꾸준히 해야하고 앞으로 나아갈 길이 멀기 때문에 일본대회 준비라고 해봤자 계속 못 한 것을 하는 것 밖에는 없었다.

우선 일차적으로 스무스턴 맞추는 것을 하였고, 이차적으로는 연속된 직선에서 가속을 하여 가는 것을 했어야했다.

하지만 쉽지 않은 것의 연속이었으니...

우선 마우스의 턴 맞추기부터가 나를 미치게 만들었다. 기본 90도 오른쪽, 왼쪽턴을 맞추고 180이 맞으면 연속턴이 맞아야 하는데 안 맞는 것은 기본이고, 가지벽에서는 뭐를 바꿔봐도 계속 부딪쳤다. 그리고 가장 큰 문제가 있었는데 어느 순간 마우스의 포지션이 (0,0)으로 초기화 되버렸다. 아직 직진가속 소스도 제대로 못 봤는데 ㅠㅠ 갈 길이 참으로 멀었다.

연속턴 같은 경우는 중간에 보정이 없어서 벽에 부딪히는 것은 어쩔 수 없다고 생각한다. 다음에 마우스를 만들 때, 자이로 센서로 보정을 해보면 괜찮지 않을까 생각을 해 보았다. 우선 대각까지 하고 보정을 넣는 것이 의미가 있지 않을까...하고 생각을 해보아 미뤄두기로 했다. 어떻게 될지는 모르겠다.

가지벽은 가지벽 보정을 빼버리고 쭉 달리게 했더니 잘 가기는 했다. 그래서 일단 이렇게 유지하기로 했다. 이 또한 속도를 바꿨을 때 어떻게 작용할 지를 보고 결정해야 할 것 같다.

마우스의 위치값이 초기화되는 일에 대해서는.... 사실 아직도 무엇이 문제인지를 모르겠다. 그래서 아예 포기를 해버렸다, 1주일이라는 시간과 함께 머리속에서 날려버렸다. 1주일동안 팠으면 직진가속을 넣을 수 있지 않았을까 하면서...

사실 이 일본대회를 가기 전부터 어느정도 예상했던 결과이다. 실력이 부족하다는 것을 알고 있었음에도... 이번 일본대회가 일본 여행으로 바뀌어버린 것 같다.ㅠㅠ

반응형
반응형

처음 드론을 만들자고 했을 때의 기대와 흥분은 아직도 생생하다. 드론이 눈앞을 날아다닌다고 생각하니 멋지지 않은가! 지금 생각하면 참 우습지만 그때는 웃으며 계획했던 시간이었던 것 같다. 그마저도 길지는 않았지만...

처음으로 시작했던 건 물품을 고르는 것이었다. 드론은 4개의 BLDC모터가 필요하다. 그에 따른 모터드라이브로 모터 변속기가 있다. 그 모터를 지지해주는 프레임이 있고, 모터들을 컨트롤해주는 컨트롤 보드, 보드와 변속기에 전압을 주는 전압 분배 보드도 필요하다. 마지막으로 현재의 각도 값을 확인할 수 있게 자이로센서가 필요하고 블루투스 연결을 하려면 블루투스 모듈도 필요하다. 요즘에 드론용으로 나오는 컨트롤 보드에는 자이로센서가 달려있는 듯하다. 또한 드론하고 조종기하고 연결할 수 있는 장비도 달려있는 것 같다. 하지만 우리는 아두이노보드로 하는 것이 목표였으므로
각각 다 찾아서 달아야 한다.

일단 컨트롤 보드는 아두이노 우노를 사용했다. 처음에는 아두이노 나노나 미니를 사용할 예정이었다. 아두이노 우노랑 같은 칩을 사용하고, 크기와 무게는 훨씬 작은 데다가 필요한 핀의 개수도 충족되기 때문이었다. 하지만 아두이노 IDE와 연결할 때, 무슨 일인지 소스가 안 올라가지는 일이 일어났다. 고장 난 보드였던 건지 아니면 사용법을 몰랐던 건지(아마 리셋을 타이밍 맞춰 눌러줘야 했던 건데 못 눌러준 듯) 안되었고 결국 여분이 있었던 아두이노 우노 보드를 사용했다. 그리고 바꾼 또 하나의 이유는 원래 만들고자 했던 드론은 미니 드론이었는데 드론을 4년 동안 만드신 형이 조언해주길 작은 드론은 더 제어하기 힘들다는 것이다.  그래서 결국 컨트롤 보드는 아두이노 우노를 사용했고, 개발 환경은 아두이노 IDE를 사용했다.

모터를 고를 때에는 추력과 KV를 많이 보았다. 추력은 어떠한 모터가 어떠한 프로펠러를 사용했을 때, 들어 올릴 수 있는 힘(무게)이다. 데이터 시트를 찾아보면 프로펠러가 있고 그에 따른 추력이 kg단위로 쓰여있는데 고를 때, 드론의 무게의 2배로 고르면 된다. 예를 들면 드론이 10kg이면 추력은
모터 개수*추력=20kg이 되면 된다. 그래야 50%의 힘만으로 드론을 띄울 수 있고, 위로 올라가고 아래로 내려가는 제어를 할 수 있기 때문이다.(꼭 두배일 필요는 없지만 저 정도가 원활히 제어할 수 있다.)
따라서 드론과 프로펠러는 한 세트로 찾아서 사면된다. 또한 주의할 점이 양력(?) 또한 생각해야 한다. 무조건 추력이 맞다고 사는 게 아니라 인접한 프로펠러끼리 떨어진 거리가 프로펠러 1개의 길이보다 멀어지면 양력을 덜 받아서 날아가기 힘들다고 한다.(이 부분에 대해서는 좀 더 찾아봐야 한다.)

모터 변속기는 모터에 맞는 변속기를 사면 되는데, 모터의 데이터 시트를 보면 모터가 소모하는 최대 전류가 있다. 변속기의 데이터시트를 보면 버티는 최대의 전류와 배터리 셀의 수 등이 적혀 있는데 모터의 전류와 내가 쓸 배터리 등을 보고 고르면 된다.

그러면 배터리는 어떻게 고르는가? 배터리를 보면 전류(용량)과 방전률, 전압이 있다. 전류는 몇몇 mAh라고 쓰여있는 거고, 방전율은 c라고 적혀있는 것,  그리고 전압은 몇몇 셀 이라고 적혀있는 것이다. 일단 전압은 모터가 소모하는 최대의 전압을 보고 그거보다 크게 사면된다.1 셀당 평균 3.7V, 최대 4.2V라 생각하고 사면된다.전류는 용량*방전률을 하면 공급할 수 있는 최대 전류를 구할 수 있다. 이는 드론뿐만 아니라 모든 로봇에 쓰이는 배터리를 구할 때 사용된다. 배터리의 종류는 리튬 폴리머이다. 사실 다른 종류의 배터리를 찾아보지 않아서 어떠한 특징이 있는지 잘 모른다.

자이로 센서를 MPU6050을 사용했다. 가속도 센서와 자이로 센서가 합쳐진 센서로 현재의 각도 값을 구할 수 있게 해 준다. 원래는 주로 쓰던 IMU가 있었는데, 이번에는 오픈 하드웨어라는 주제에 맞게(?) 이 녀석을 사용하기로 했다. 관성 측정 장치(IMU)는 가속도계와 회전 속도계, 때로는 자력계의 조합을 사용하여 측정하고 보고하는 전자 장치이다.

전압 분배 보드는 인터넷에서 적당한 것을 찾아서 샀다. 보드에 쓰이는 5V와 버틸 수 있는 최대 전류, 전압을 생각해서 고르면 된다.

마지막으로 블루투스 모듈은 모든 사람들(?)이 블루투스를 쓸 때 사용한다는 
HC-06을 사용했다.

왜 프레임에 대해서는 언급 안 하나 궁금할 수 있을 텐데... 프레임을 찾아보면 구할 수 있는 게 너무 한정되어 있고, 비싸고, 대부분 외국제품이다. 그래서 찾을 수 있는 제일 싼, 위의 부품들이 다 들어갈 수 있는 프레임을 사면 된다. 

이렇게 부품 사는데 1주일 정도를 소모한 것 같다. 나름 빨리빨리 산다고 산거 같은데도... 1달 프로젝트인 만큼 더욱 속도를 내야 할 것 같다. 앞으로 파이팅!

반응형
반응형

처음 드론을 하고 싶다고 생각한 건...실수였다. 해보고 나서의 후기는 다른사람들에게는 절대 드론을 직접 개발해서 날리는 것은 추천하지 않는다는 것이다.

이유는 첫 번째로(이게 가장 중요한데) 너무 위험하다는 것이다. 드론을 제어할 때에는 프로펠러를 달고 제어를 하는데 이게 모터 자체도 힘이 쎈 BLDC모터를 사용할 뿐만 아니라 RPM도 높아야 하고 드론 날개도 꽤 긴편이라 흉기에 가깝다고 할 수 있다. 실제로 주변에서 개발하다가 손을 깊게 베인 사람도 있고, 조금만 까딱해도 손가락이 날라갈 수 있기 때문에 너무 위험하다고 한 것이다.

두 번째로는 이미 시장에 너무나도 잘 나는 드론들이 너무나도 싼 값에 너무나도 많기 때문이다. 직접 만든다고 더 싼 것도 아닌 것 같고, 더 잘 날릴수는 없다(세계적인 회사랑 경쟁하려 하지 마라).

마지막으로는 잘 만들었다 하더라도 사용할 수 있는 곳이 한정적이다. 시장에서 산 드론은 카메라라도 달려있는데 이건 뭐 드론대회(여러 대회가 있겠지만 시제품이 아니라 직접 만든 드론으로 출전해야 하는 대회가 있다.)빼고는 쓸 데도 없다. 

결론적으로 PID제어를 해보고 싶거나 하면 세그웨이나 펜듈럼 등을 하는 게 더욱 공부가 될 수도 있고, 안전하다.

여기까지 추천하지 않는 이유를 써보았는데, 사실 노력대비 결과가 그렇게 좋지는 않다는 거지 절대 하지 말라는 것은 아니다. 그러므로 미친듯이 하고 싶다면 한 번쯤은 도전해 보아도 괜찬을 듯 하다. 단, 안전에 꼭 주의를 했으면 좋겠다! 날리기 전에 완벽한 제어가 되는지 확인하고 날려도 늦지 않는다.

반응형
반응형

등고선법을 심어서 좌수법을 탈출한 지가 8월이다. 12월 1일에 있을 일본대회를 강제로 가게 되었다. 아직 이르다고 생각하지만, 그리고 그 동안에도 여러 일이 겹쳐서 마우스에도 집중하기 힘들었지만 하기로 한 이상 그래도 최선을 다해야 하니까.

일단 하드웨어는 단국대 대회때랑 바뀌진 않았다. 항상 목표를 PCB로 뜨는 것을 하고 있기 때문에 그 전까지는 하드웨어를 어떻게 바꾸기 힘들 것 같기 때문이다. 무엇을 바꿔야 할지도 모르겠다.

직각턴만 하다가 스무스턴을 하려니 어떻게 해야 할지 막막했는데, 형들이 잘 알려주었고, 소스를 계속 보다 보니 어떻게 해야 할 지 감이 왔다. 결국 강제로 모터를 원하는 속도에 원하는 시간만큼 굴려서 턴을 맞추는 것이 포인트이다. 그러려면 원하는 시점에 턴을 시작해야 하고, 정확한 시점에 벽을 읽어야 하며, 원하는 만큼 내가 이동했는지를 확인해야 한다.

확실히 이번에 스무스 턴을 맞추면서 느끼게 된 점이 있다. 일단 센서값을 정밀하게 받아야 한다는 점이다.  양쪽이 대칭 되게 센서를 봐야 하며, 값이 튀지 않고, 거리는 25cm는 봐야한다. 이 모든 조건이 6개 적외선 센서에 정확히 동일하게 적용될수록  안정적인 주행이 가능하다.

또한 센서 세팅도 중요하다는 것을 알게 되었는데 센서세팅에 따라서도 턴의 진입과 탈출이 달라진다. 역시 눈이 제일 중요하다고 누가 그랬는데 이번에 직접 하게 되면서 깨닫게 된 것 같다.

또한 직진 테스트 가지벽 테스트의 필요성도 알게 되었다. 가지벽에서 이렇게까지 못 갈 줄 몰랐는데 테스트를 해보니 아주 가관이었다. 틀어지면서 벽에서 탈출해서 비틀거리다 99퍼센트의 확률로 폴대에 박는 걸 보았을 때 큰일 났다고 생각했다. 그걸 잡기 위해 하루 종일 값을 바꿔도 보고 여러가지 시도해봤는데 결국 보정을 아예 풀어버리니 흔들리지 않고 앞으로 잘 갔다. 내 마우스를 못 믿은 내 잘못과 내 소스를 완벽히 이해하지 못한 것이 컸다. 그렇게 하루를 날리고 가지벽을 갈 수 있게 되었다.

지금은 턴 직후 백턴을 하면서 알고리즘을 다시 뿌리면 좌표 값이 한 칸씩 밀려버려서 그걸 잡아야 한다. 그걸 잡고 나면 아는 길에서 직진에서의 가속을 해야하는데 잘 할 수 있을까

그리고 좀 쉬면서 유튜브로 일본 마우스 대회 영상을 봤는데 또 다시 자존감 하락. 망신만은 면하고 싶은데 그래서 1년 더 후에 갈 예정이었는데 어쩔 수 없나보다. 에휴 내 인생~

 

Right 90도 턴 맞춤

 

폴대 기준으로 Right 90도 턴

 

폴대 기준으로 Left 90도 턴

 

Left 90도 턴 직후 Right 90도

 

가지벽 보정 실패영상

 

턴을 맞출 때에는 너무 빨라서 LED로 디버그 하고 슬로우모션으로 찍어서 봐야한다. 아니면 아무리 봐도 뭐가 어떻게 돌아가는지 알 수 가 없다. 그래도 연속턴에서 어떻게 디버그 해야하는지는 모르겠지만 말이다.

빨리 가속까지 해서 좀 마우스같이 주행하는 걸 봐야겠다. 화이팅~!!!!

반응형

+ Recent posts