최근 제가 입사하고 만든 첫 제품이 출시될 것이라고 말씀드렸는데요.[관련글] 드디어 공식 출시가 되었네요. 이번에 출시된 저의 첫 작품은 간단히 물체의 기울어진 각도, 기울기를 측정하는 센서 모듈입니다. 자이로 센서와 가속도 센서를 융합하였구요.

먼저 간단히 제품 포장 박스에 들어갈 이미지부터 


포장이미지가 생각보다 이쁘게 나와서 기분이 좋아요^^

판매처는 디바이스마트입니다. [제품 구매 페이지 가보기




그리고, 판매페이지에도 링크가 걸려있지만, 먼저 Quick-Start 문서가 있습니다.


퀵-스타트 메뉴얼 :

 
이 문서는 구입직후 빠르게 모니터링프로그램이나 MCU와 통신을 통해 NT-ARSv1과의 통신을 할 수 있는 간편 메뉴얼입니다. 

그리고, 저희 제품의 전체 메뉴얼은 


입니다. 그리고 아래 동영상에서 사용되는 모니터링 프로그램 XP 용 버전은


입니다.

[2011년 6월 19일자로 모니터링 프로그램 MS-Windows 7 용이 업데이트 되었습니다.]



동작하는 동영상도 한 번 보시구요^^


이제, 이쯤에서 간단히 요약을 해보자면,

어떤 물체가 있다고 하죠. 그 물체는 자신의 위치 (x, y, z)값을 가지고 있을 것이고, 또한 자신의 자세 (yaw, pitch, roll)을 가지고 있을 것입니다. 이 중에서, yaw는 z축을, pitch는 y축을, roll은 x축을 중심으로 회전하는 각도를 의미합니다. 여기서, ARS라는 장비는 pitch와 roll을 검출하는 장비를 의미합니다.

현재 10만원대 가격을 형성하는 저가형 ARS장비들은 대부분 MEMS형 자이로 센서와 가속도 센서를 사용하고 있습니다. MEMS형 센서들은 꽤 많은 문제점이 있습니다. 물론 값이 아주 싸고 크기가 작다는 정말 큰 장점을 가지고 있지만요.

먼저 MEMS형 자이로 센서는

[프로젝트/HardwarePart] - 자이로센서를 이용한 각도검출과 그 한계

에서 이야기했듯이 자이로 센서의 출력인 각속도를 적분해야만 각도를 알 수 있습니다. 문제는 어떤 결과를 얻기 위해 센서의 출력을 적분하면 적분오차라는 것이 누적된다는 것입니다. 특히, MEMS형은 좀 심한 편이죠. 

그래서 가속도 센서와 함께 많이들 사용하게 됩니다. 물론 가속도 센서만 가지고도 각도를 측정할 수 있지만, 이 역시

[프로젝트/HardwarePart] - 가속도센서를 이용한 각도 측정과 그 한계

에서 이야기했듯이 문제가 좀 있습니다. 하여간 결론은 자이로 센서와 가속도 센서를 융합해서 각도를 측정하는데 많이 사용한다는 것이죠.^^ 문젠 어렵다는거^^

그래서, 이번에 저와 저희 팀이 ARS제품을 하나 출시하게 되었습니다. 성능은 가격대비 괜찮은 성능이라고 생각합니다. (잉?? 스스로  이런 생각을 하다니...ㅠㅠ) 물론 문제가 있습니다. 일단 MEMS형 가속도센서를 사용한 모든 저가형 ARS들은 대부분 다 가지는 문제들입니다.

일단, 수 백만원대의 ARS와 같은 성능은 아니지만. 그러나

[프로젝트/Robot] - [밸런싱 로봇 만들기] 작은 로봇을 하나 완성해서 큰 기쁨을 얻다

이런 정도의 로봇을에 적용하는 것은 아무 문제가 없습니다.

하여간... 잘 만들어져서.. 무척 기분이 좋네요^^

아... 모니터링 프로그램은 아직 XP에서만 돌아갑니다. 그러나 대부분의 사용자들은 MCU와 연결해서 사용할 것이니 큰 문제는 아니겠지만, 조금있으면 Win7에서도 동작하도록 될 것입니다.




http://pinkwink.kr/trackback/425 관련글 쓰기
  • Jay_TheMoon 2011/04/21 17:52

    드디어 선배님의 노하우가 담긴 제품이. !!!!!! ^-^.

    • PinkWink 2011/04/21 18:58

      ㅋㅋ,.. 사실 좀 정확히 이야기하면, 나의 지식은 겨우 사분의일정도?
      나머진... 회사 연구팀의 노하우가 들어갔다고 봐야해...ㅠㅠ
      하여간... R&D이긴 한데..
      그래도 첫 작품이다 보니.. 좀 잘 팔렸으면 하는 바램이 있네.. 푸하하..
      그러니 개인 블로그에도 광고를 하나보다...^^

  • 하늘엔별 2011/04/21 19:06

    좋은 제품이 만들어졌다니 축하드려야겠군요.
    고생하셨습니다. ^^

    • PinkWink 2011/04/21 20:29

      네.. 다음 버젼은 좀 더 좋은 제품으로 내놓을려구요^^

  • 박재욱 2011/04/21 19:37

    와!! 멋지네요! 진심으로 축하드립니다. 첫 제품이신만큼 감회가 남다르실 것 같아요 ^^

    • PinkWink 2011/04/21 20:29

      네.. 첫 작품.. 너무.. 기분이 좋습니다.^^

  • 핑구야 날자 2011/04/22 08:07

    베리베리 축하합니다. 수강생으로서 너무 기쁘네요...대박이 날겁니다., 화이팅

    • PinkWink 2011/04/22 08:44

      ㅠㅠ 대박까지는 사실.. 모르겠고.. 욕만 안먹었으면.. 하는 ... 작은 소망이 있답니다.^^

  • 샤인^hermit 2011/04/22 11:13

    ^^ 개발완성 및 출시를 축하드립니다!
    다음엔 AHRS도 만들어주세요.ㅋ

    • PinkWink 2011/04/22 13:40

      열심히 만들고 있습니다.^^
      문제는 3축자이로센서가 스마트폰들때매 수급이 잘 안되네요..ㅠㅠ

  • 구차니 2011/04/23 10:43

    ARS라고 하니까 자동응답기만 생각나요 으헝헝 ㅠ.ㅠ

    아무튼 너무 멋지세요!!
    전 언제쯤 이런걸 해볼려나요 ㅠ.ㅠ

    • PinkWink 2011/04/23 14:19

      그러게요. 예전에 ARS라는 것인 잘 없던 시절엔 네이버에서 ARS라고 검색하면, 온통 광고... ㅋㅋㅋ 하는 법만 뜨더군요...^^

  • 센서구입자 2011/05/20 11:49

    UART를 잘쓰고있다라기보다는.. 컴과 문자주고받기는 잘됩니다 제가 모르는점이 어떻게하면 그 명령어를 센서에넣응 수 있는지가 궁금합니다 ;;
    질문을 드리면서도 얼굴이 화끈거리네요;;

    • PinkWink 2011/05/20 13:45

      이번에는 제가 이해를 잘 .... ㅠㅠ (사실 제가 이해력이 그리 우수한 편은 아닙니다...ㅠㅠ)
      UART를 이용해서 데이터의 송수신을 할 줄 아신다면
      명령어를 사용하시는 마이컴에서 ARS로 한번 보내세요.
      UART 송신으로 " <CAH> "라고 데이터를 보새시면됩니다.
      아.. 통신속도등등의 설정은 메뉴얼대로 맞추시구요.
      그리고 수신버퍼를 확인해보시면, 두개의 각도와 두개의 각속도가 데이터(배렬)로 들어와있을겁니다.

  • 미농이 2011/05/20 12:00

    궁금한게 있습니다.
    초기값은 어떻게 되는거죠? 초기에 수평에 있지않고 기울어져있다면 그 초기값을 영으로 잡는거 아닌가요? 2축 기울기 센서만으로 초기값을 처리하는거는 어떨까요?

    • PinkWink 2011/05/20 13:47

      그렇지 않습니다.
      출하단계에서 '0'점이 맞춰져있습니다. 처음 전원을 넣고
      각 소자의 위밍업시간(대략 수십 ms)이 지나면 각도를 출력합니다.
      만약 실제 5도로 기울어져 있는 곳에 장착하셨다면
      당연히 5도라고 나타나게됩니다.

  • 미농이 2011/05/21 12:10

    이센서 참 맘에 드네요( 아직 구매해서 사용해 보지는 않았지만..^^;) 저가 모델에 소형사이즈 응답성 무게 다 좋은데 스테이지상태의 에러치와 다이나믹 상태의 에러가...만약 군사용 규걱으로 제작을 하신다면 에러치는 감소가 될까요? 하드웨어적으로 뒷받침이 안되서 에러치가 줄어들지 못하는건가요? 온도와 다이나믹 에러치가 줄어든다면 저희가 하는 시스템에 적용해 보고싶네요

    • PinkWink 2011/05/21 14:00

      이 글의 대답... 판매자로서가 아니라 연구자로서 드리는 말입니다.
      연구원들 사이에서 사용하는 말 있죠?

      데이터시트에 안나와있으면 개발자도 테스트조차하지 않았다...
      그러나 데이터시트에 있다고 해도 제시된 동작환경안에서만 그렇다.^^

      저희 센스는 1.5G의 가속도를 벗어나면 각도측정이 잘 되지 않습니다.
      (데이터시트에 나와있지요^^)
      그런데 이 1.5G라는게 생각보다 그리 큰값이 아닙니다. 겨우 자유낙하하는 놈보다 조금 더 빠른거니까요. 문제는 이거죠^^ 사용하고자 하는 환경의 진동이나 노이즈같은 환경이 어떤지.. 말이죠

      그겋게 세팅한 것은 다시엔 여러 이유가 있었습니다.

      만약 항공기와 같이 진동이나 잡음이 심한 환경에 적용한다면
      사실.. 설계부터 그걸 고려해야합니다.

      예를 들면, 자갈지역을 시속 60으로 지나가는 10톤짜리 트럭이 일반 주행일때 환경을 먼저 테스트하고 그 환경요소를 센서에 반영해야합니다. (아니면 무지 비싼 센서를 쓰던지요^^)

      하여간.. 이정도 가격에서는 요정도 성능이 괜찮을 거라 생각하고 환경을 세팅해서 출시한 제품입니다.

  • 졸업반 2011/05/27 02:40

    2축자이로센서와 3축 가속도 센서를 연동하여
    왼쪽으로 어느 이상의 속도로 기울이면 A의 행동을
    오른쪽으로 어느 이상의 속도로 기울이면 B의 행동을
    위쪽으로는 C의 행동, 아래쪽으로는 D의 행동을 하는
    (기울여 있는동안 계속 하는 것이 아닌 1번의 활동만
    마치 switch가 눌리는 듯한 활동을요^^)
    설계를 지금 구상중인데.. 어떻게 하면 좋을지
    팁을 좀 여쭐 수 있을까요? 부탁드립니다~~

    • PinkWink 2011/05/27 08:24

      일단 각도를 측정하셔야겠네요.
      손에 쥐고 움직이는 조이스틱과 같다면
      꼭 자이로센서를 사용하지 않으셔도 됩니다.
      아이폰3GS에는 자이로가 없이 가속도 센서만으로도 기울어지는 각도를 측정하고 있습니다. 직선방향으로 움직이는 가속도성분이 크지않다면 그냥 가속도 센서만 사용하셔도 될겁니다. 그렇지 않다면 자이로와 융합하는 기술을 생각하셔야합니다.
      그 방법에는 칼만필터나 상보필터등등이 유명하니 그것을 익히셔야겠지요.
      아니면, 시중에 나와있는 ARS 모듈을 그냥 구매해서 각도를 받으셔도 될거구요.

  • 죄임쓰 2011/06/03 17:19

    글고 많이 보고(다 읽어봤죠 ㅋ) 직접 따라 구현도 해 봤는데요 궁금한게 있습니다...
    롤과 피치각을 계산할 때 중력을 이용하다 보니 좀 헷갈리는 부분인데요...
    롤각이 0도로 고정된 상태에서는 피치각이 수평면에 대한 각일텐데요,
    문제는 롤각이 만약 45도로 고정된 상태에서 롤축(수평면과 45도)을 기준으로 피치를 돌리면 피치각이 어떻게 나오나요?
    다시 질문하면 롤축이 0도일때에는 피치를 45도 돌리면 자이로 계산각과 가속도 계산각이 일치하는데 롤축이 45도 틀어진 상태에서 롤축을 기준으로 센서의 피치를 45도 돌리면 자이로 피치는 45도 돌아가는 거지만 가속도 피치는 45도 보다 덜 돌아간것처럼 출력이 나올때 어떻게 처리되는지가 궁금합니다. 이전에 올리신 글을 따라 구현해보니 피치나 롤각이 존재할때 다른 각을 돌려보면 돌리는 순간은 자이로에 의해 정확히 반응하다 약간 그 상태를 유지하면 가속도 성분에 의해 슬금슬금 내려가서 튼 각도보다 적게 나오는 현상이 있네요...(제가 구현을 잘못했나???)
    좀 과장해서 생각해보면 롤을 90도 튼 상태에서는 피치를 아무리 돌려도 가속도 성분이 0이니 자이로 출력은 나오더라도 가속도 출력은 0이 되는 현상이라 생각하시면 제 질문이 좀더 와 닿을듯 합니다...^^*
    바쁘시더라도 답변 부탁드립니다.

    • PinkWink 2011/06/04 07:35

      그런경우는 asin을 사용하시는 것도 괜찮습니다.
      asin(X/g)의 형태를 가지기 때문에... Z축에 대한 영향이 없어서 말씀하신 사항을 해결할 수 있습니다.

  • 죄임쓰 2011/06/07 11:23

    암... 자꾸 귀찮게 해 드려 죄송한데요...^^;;
    제가 궁금한 사항을 잘못 이해하신거 같아서...
    센서 좌표계를 앞쪽을 X, 오른쪽을 Y, 연직 아래 방향을 Z라고 두면
    롤각은 X축을 기준으로 회전하는 되고,
    피치각은 Y축을 기준으로 회전하는 각이 됩니다.
    센서(ARS)가 90도 롤각으로 회전한 상태라면 센서 좌표계가
    앞쪽이 X, 오른쪽이 -Z, 연직 아래 방향이 Y로 바뀌게 되는데요
    이 상태에서 센서(ARS)의 피치각은 Y축의 회전 각이 되니
    피치를 돌려도 Y축이 연직 아래 방향이니 아무리 돌려도 가속도
    센서값은 0이 들어오게 됩니다.(물론 자이로는 돌린 각만큼 값이
    나오겠지요...) 그럼 칼만 필터에 의해 돌리는 순간은 자이로값에
    의해 각이 잘 나오는데 돌려서 가만히 두면 가속도 성분이 항상 0이니
    서서히 0으로 가버리는 현상이 생기게 되는데요 이를 처리할수 있는
    방법이 없는지 궁급합니다.

    • PinkWink 2011/06/07 13:36

      말씀하신 90도로 Roll이 갔다면, 그리고 그동안 각도 추정을 잘 하고 있었다면, 90도로 넘어갈때쯤. 절대좌표계에서 Pitch를 담담하는 애가 Z축으로 변경되었다는 것을 알 수 있을 겁니다. (오일러변환) Roll이 90일때, 센서입장에서의 Pitch는 절대좌표계에서 보면 Yaw가 되기때문에 가속도-자이로만으로는 검출할 수 없습니다. 추가로 또다른 센서를 사용하셔야합니다. 뭐 지자기센서같은것을 말이죠.. (맞는 답변인가요??)

  • 죄임쓰 2011/06/07 18:10

    네.. 물론 90도로 돌아간 상황을 측정하기란 힘들겠죠...
    좀 과장해서 90도 예제를 든거구요...
    제가 테스트해본 결과로는 30도 정도 롤을 틀어놓은 상태에서
    피치축(센서 좌표계 기준)으로 회전(대략 +- 30도 정도)을
    입력해보면 ARS 출력이 잘 따라갑니다.
    그런데 왕복을 하면 잘 따라가는데 그냥 피치를 30도만 휙 돌려서
    가만히 유지해보면 처음에는 30도가 나오다가 서서히 값이 떨어져서
    27도(예를 들면) 부근에서 유지가 되는데요
    이게 롤이 틀어진 상태에서는 피치운동에 대한 자이로 출력과 가속도
    출력이 달라서 나오는 현상일거라고 생각이 드는데요
    그림을 그려서 가만히 보면(롤이 틀어진 상태로) 피치를 30도 틀어서
    유지하면 가속도값이 30도가 안나오더라구요...
    (머리속으로 시뮬레이션이 안되서 3D 툴을 동원했숨다)
    그래서 처음에는 자이로를 믿고 30도로 출력을 내보내다가
    서서히 가속도 값을 믿으면서 각도가 약간 떨어지는거라 생각했는데요...
    제가 구현을 잘못한 것일까요?
    칼만 필터가 제대로 동작하면 이렇게 나오면 안되는 건가요?
    어디가서 물어볼때가 없어서 자꾸 귀찮게 해드리네요...
    위 모듈도 한번 사서 비교해 보고 싶네요~^^*

    • PinkWink 2011/06/07 18:45

      네.. 이제야 질문을 다 이해한 모양입니다...
      나이를 먹으면서 이해력이 딸리는 것 같습니다.ㅠㅠ
      하여간 말씀하신 경우라면...
      예상하신대로 별도의 가속도센서에서 각도를 구하는 것에 대해 x,y,z축을 모두 사용해서 검출해야합니다.
      (그러나 저희가 사용한 것을 알려드릴 수는 없습니다. 뭐 중요한 것은 아닌데... 이게 제가 혼자했다는 것이 아니어서... 이 부분은 회사의 소중한 월급을 받으며 수행한 것이니...게다가.. 저희는 당시 좀 복잡한 이유로 이부분이 상당히 복잡하게 꾸며져있습니다.)

      그러나 인터넷을 서치해보시면... 평면상에서의 각도 추정이 아니라 3차공간에서 가속도센서를 이용한 각도 추정에 대한 간단한 수식이 있었던 걸로 기억납니다. 출처가 잘.. 기억은 안나지만...ㅠㅠ

      하여간 저희는 제품을 만들어야해서 좀 정교할 필요가 있어서 복잡하게 구현을 했지만, 단순히 테스트하시는 거라면... 조금더 찾아보시면 될듯합니다.

  • 죄임쓰 2011/06/08 13:49

    ^^* 답변 감사합니다~
    엄청난 도움이 됐네요...
    가속도 센서의 3축을 다 사용하면 된다는 희망을 주셨기에...ㅋ
    좋은하루되세요~^ㅡ^

  • kaki 2011/06/16 14:03

    안녕하세요
    이제 막 시작하는 초보입니다.
    정말 기초적인 질문을 해도 되는지 ㅋ;;
    센서 칩들을 보면 1축짜리 2축짜리 3축짜리로 되어 있는데요
    차이가 있나요?
    1축짜리를 3개 써서 3축을 구성하는 것과 3축짜리 1개를 쓰는 것이 차이가 있는지 궁금합니다.

    • PinkWink 2011/06/16 18:53

      사이즈가 좀 커지겠죠...^^
      가속도센서는 3축을 보통 많이 쓰고, 실제로 3축이 더 많지만
      자이로는 간단히 구현하는 경우 1축짜리 세 개를
      하나는 눞이고, 하나는 세우고, 하나는 옆으로 세우고..
      뭐 그렇게도 사용하시는 걸 많이 봤습니다.

  • 고태경 2011/06/20 14:35

    안녕하세요. 이번에 개발하는 장비에 각도 측정이 필요해서 검색하다 왔습니다. 제작하신 "NT-ARS V1" 제품으로 (매우)장시간 동안 조금씩 움직이는 각도(아직 얼마나 미세하게 측정할지 정확하게 않아서.. 대략 1도 내외가 될거 같습니다.)를 측정하는 용도로 사용한다면 어떤지 궁금합니다.

    • PinkWink 2011/06/20 15:15

      네.. 매우장시간이 얼마의 기간인진 모르겠지만
      몇주씩 테스트를 해도 문제는 없습니다.
      단, 제시되어있는것 처럼 원래 참값에서의 오차를 가지고 있으니 가만히 '0'상태를 유지해도 0.5도 이내에서의 오차가 있습니다.
      즉, 실제 0도에서 0.1도로 살짝 움직인다면
      그 움직임은 검출하기 어렵습니다.

  • boanpc 2011/07/26 15:54

    안녕하세요?
    이쪽 분야에 대해서 잘 모르지만 제가 하는 일에 응용할 수 있을지 궁금해서 문의 드립니다.
    이 모듈을 추진력이 없는 부이에 장착하고 흐르는 물에 띄워서
    부이의 공간적인 이동 경로를 기록할 수 있는지 궁금합니다.

    위의 질문에 포함된 질문일지도 모르겠지만...
    또, yaw를 측정할 수 없다면 x축은 항상 정면을 향해야 하는지요?

    • PinkWink 2011/07/26 16:23

      관성항법장치중에서 ARS와 AHRS는 모두 자신의 자세(3축상의 기울기)를 측정하는 장비입니다. 여기에 사용되는 자이로센서와 가속도센서만으로는 말씀하신 이동거리를 측정하는 것은 아주 어렵습니다.
      부가적으로 바다에서 사용하시는 거라면, 간단하게는 GPS모듈을 이용하시는게 가장 편한 방법일듯하빈다. (물론 GPS오차도 상당합니다만...)

      그리고, 마지막 질문에서 ARS와 AHRS는 yaw를 측정하냐 아니냐의 차이로, 말씀하신데로 센서의 정면이 절대좌표의 정면과 같다고 보통 생각하고 만든 것입니다. 즉, ARS는 yaw는 항상 0으로 본것으로 생각하셔도 됩니다.

  • boanpc 2011/07/26 16:38

    빠른 답변 감사드립니다.

    GPS를 이용해서 관측해 왔습니다.
    아시다시피 오차가 너무 커서 신뢰할 만한 결과를 얻지 못하고 있습니다.

    그럼...INS가 제가 하는 목적에 맞나 보네요?
    INS 모듈도 출시를 생각하시는지요?
    아니면 추천할 만한 INS 모듈이 있으시면 추천을 부탁드립니다.

    • PinkWink 2011/07/26 17:12

      네... 바닷물에 그냥 둥둥떠다는 물체의 이동거리를 감지하는 정도라면 일반적인 GPS로는 오차가 클것으로 예상됩니다. 그러나 INS장비라 하더라도 가격도 만만치 않고, 또 환경에 따라 쓸만한지 아닌지 테스트결과가 안좋을 수도 있으니 제가 다 걱정이 됩니다.
      아무튼, 국내에서 상용으로 쓸만한 양산체제를 갖춘 업체가 있는지 잘 모릅니다. 일반적으로 가격도 워낙높고 방위산업등등에서 많이 쓰는것 같아서 말이죠.
      도움이 되얻드리지 못해 죄송합니다.

  • 비켜라쪼지 2011/08/03 11:24

    안녕하세요
    지금 센서를 잘 사용하고 있는 대학원생입니다.
    기존의 가속도 및 자이로 센서를 이용해보니
    오차와 노이즈가 심했는데
    이번꺼는 값을 정확히 출력하는것 같네요.
    그래서 질문이 필터는 어떤것을 썼는지
    혹시 자료를 주실 수 있는지 궁금하네요
    가속도로 보정을 하더라도 쾌 정확한 값이
    나오기는 힘든걸로 알고 있거든요
    그래서 어떤 필터나 다른 것들을 했는지 알고 싶네요
    가능하다면....
    현재 이 제품을 이용하여 실험을 하는데
    다른 센서와 비교를 할려고 합니다..
    그리하여 드리는 질문입니다.

    • PinkWink 2011/08/03 14:13

      기초적 자료는 제 블로그에 있는 것으로만 하셔도 충분할 겁니다.
      단지 저희가 제품을 만들때는
      2차상보필터가 특허가 잡혀있더군요, 그래서 2차상보필터는 사용할 수가 없었습니다.
      그리고, 제품화를 위한 여러 개념을 많이 사용을 했습니다.
      그리고, 이 제품의 알고리즘과 관련된 부분은 회사에서 월급받으며 수행했으니, 당연히 제공할 수 없습니다.ㅠㅠ.
      그러나 제가 학위과정일때 테스트해본결과로는 그냥 2차상보필터 정도 사용하면 꽤 괜찮은 성능을 얻을 수 있습니다.

  • 질문자 2011/08/06 15:37

    안녕하세요. 간단한 궁금점이 있어서 글을 남깁니다.
    2축의 각도만 측정이 가능하다고 되어있는데, ARS 2개를 사용하면 3축의 각도를 잴수있을까요? 아니라면, 혹시 어떤 방법을 사용해야할지 알려주시면 감사하겠습니다 ^^;

    • PinkWink 2011/08/07 12:38

      ARS는 yaw를 검출하지 못합니다. 쉽게는 중력방향을 중심으로 한 회전각도를 읽지 못합니다. 그러니 그걸 몇 개를 사용하든 3차원의 각도를 읽을 수 있는 것은 아닙니다.
      3차원의 각도를 모두 읽고 싶다면, AHRS같은 장비를 사용해야합니다.
      아직은 상당히 고가입니다.ㅠㅠ

  • 꽁대생 2011/11/05 17:36

    안녕하세요~^^. 여기서 많은 도움을 받고 있는 공대생입니다~
    질문이 있습니다.
    1. 위에서 제작하신 제품으로 동적으로 움직이는 물체의 기울어진 각도 측정. 즉 , 예를 들어 사람이 걷거나 계단을 오르내리거나 하는 등의 움직임을 가지고 있을 때, 허리나, 목의 기울기를 측정한다하면, 가능할까요?

    2. 위의 상황에서 두개의 가속도 Sensor를 이용하여 하나의 Sensor에서 동적 가속도(AC성분)을 얻은뒤, 다른 Sensor에서 측정된 값에 동적 가속도 성분을 제거해 준다면, 정적 가속도 성분(DC 성분) 즉 기울기 값을 측정할 수 있을까요? ^^ 조언 부탁드립니다

    • PinkWink 2011/11/06 15:16

      1=> 네 가능할겁니다. 그러나, 저가형 mems센서를 사용하고 있으므로, 어느회사의 제품이든 실제 사용환경에 맞는지는 확인을 해보셔야합니다.
      2=> 같은 결과를 내는 센서를 비슷한 곳에 장착을 하면, 같은 출력이 나오는 것은 당연합니다. 여기서 어느 하나의 결과를 다른 결과와 비교하여 어떤 2차 결과를 얻을 수는 없습니다. 결국 센서 하나 단것과 같을 겁니다.

  • 원격데스크톱 2011/11/18 18:56

    atmega 128에 붙여서 사용하고 싶은데 일반적인 방법으로는 붙이기가 힘들군요. 속도를 낮추거나 연결할 수 있는 오픈된 소스가 없을까요?

    • PinkWink 2011/11/19 21:57

      128에서 시리얼 통신으로 연결할수가없었나요?
      제가 펌웨어 부분을 담당한것이 아니라 디테일은 챙기지 않았습니다만 일반적으로 AVR을 사용하시는 분들도 사용을 하시던데요

  • 123123 2012/03/19 22:23

    헉.. 얼마일까요?

    • PinkWink 2012/03/20 12:35

      글 상단쯤에 있는 판매페이지로 바고 가기를 누르시면 된답니다.

  • 2012/05/03 20:07

    비밀댓글입니다

    • PinkWink 2012/05/04 09:38

      죄송합니다. 현재 저도 무쟈게 바빠서 여유가 없답니다.ㅠㅠ

  • 2012/05/04 13:28

    비밀댓글입니다

    • PinkWink 2012/05/04 09:38

      이 센서는 거리변화를 감지하는 센서는 아닙니다.
      거리를 측정하는 또다른 센서 혹은 알고리즘을 사용하셔야합니다

  • 이혁 2012/05/18 22:11

    이센서는 cortex m3에서도 받을수있어요 ? 그럼 어떻게 받아야되는지 궁궁함니다 지금 cortex 를 배우고있읍니다 .

    • PinkWink 2012/05/21 09:25

      어떤 MCU에서 받을 수 있다 없다 이런게 아니라
      그저 시리얼 통신과 CAN통신을 지원하니...
      MCU중 위 두 통신을 하나라도 지원하면 모두 받을 수 있습니다.
      메뉴얼에 예제가 있습니다.

  • 문의가 있습니다. 2012/05/23 17:56

    우연한 기회에 병원에서 MEMS sensor를 쓰게 되는 의사입니다.
    검색을 하다 흘러 흘러 여기 오게 되었습니다.
    저희가 쓰는 기계는 시간과 각속도를 엑셀로 제공해주는데요, 포스팅에 적으신대로 20~30초 간의 측정에서도
    drift가 심했습니다. 다른 대학에 문의해보니 high pass filtering을 적용하면 drift가 잡힐 것이라고 답변을 주었습니다.
    그러나 정작 저희는 주어진 데이터에 대해 high pass filtering을 구현할 능력이 없습니다.
    혹시 도움 주실 수 있을지 문의 드립니다.
    (mslayer9@gmail.com 으로 연락 주시면 됩니다.)

    • PinkWink 2012/05/24 09:37

      단순히 high pass filter를 건다고 해결되지 않을 수도 있습니다.
      일단 HPF나 LPF를 어떻게 구현하는지에 대한 이야기들이 제 블로그에 있습니다.
      http://pinkwink.kr/437
      이 글인데요. 먼저 검토해보시는것도 괜찮지 않을까 합니다.

  • 문의가 있습니다. 2012/06/05 17:38

    위 댓글의 작성자입니다. (병원에서 자이로를 쓰려고 적었던 그 사람입니다.)
    저는 matlab이나 프로그램 언어를 전혀 쓸 줄 모릅니다, 해서 너무 어이없는 질문이더라도 양해를 부탁드립니다.

    계속 검색질을 하다가 filter를 matlab으로 어찌 저찌 짰습니다. 그림을 그려보니 drift도 제거되는 것 같아 보였습니다. 다만 이게 맞는 코딩인지는 알 길이 없어서 문의를 또 드리려고 합니다. 아래는 제가 어디선가 퍼온 code를 조금 고친 것입니다.

    (저희가 가진 자이로 센서는 sampling frequency 128Hz로 각속도를 보내 주는 물건입니다. 이전에 적었듯이 이걸 엑셀로 뽑는 부가 기능이 있습니다. 저는 band pass filter로 0.5~8Hz 사이를 통과시키려고 했습니다.)

    data=load('1.txt'); % 시간과 각속도를 1.txt에 옮겨적어서 그걸 data로 불렀습니다.
    time=data(:,1); % 데이터의 첫 줄은 시간이구요
    wx=data(:,2)l % 데이터의 둘째 줄은 각속도입니다.
    fs=128;
    fc_low=8;
    fc_high=0.5;
    order=2;
    [num den]=butter(order, [fc_high/(fs/2) fc_low/(fs/2)]);
    wxf = filter(num,den,wx);
    angle=cumtrapz(time,wxf);

    제가 궁금한 것은,
    1. 이게 제대로 돌아가는 bandpass filter인지와;; (원래 데이터와 뭔가 달라지기는 했습니다만;)
    2. order를 2로 하는 것이 옳은지 입니다. 찾아보니 bandpass filter에서는 order = n이면 butter(2n, [x y]); 로 적는 게 맞다는 말이 있었던 것 같습니다. (사실 order가 뭔지도 모릅니다;, 읽을 만한 내용을 알려주셔도 무척 감사하겠습니다.)

    • PinkWink 2012/06/07 09:28

      http://pinkwink.kr/117에서 보시면, 제일 밑의 두 그래프에서 파란색 그래프가 필터의 영향으로 다듬어져 있는것이 보이실 겁니다. 여기서 사용된것은 moving average입니다. 원하는 형태로 그래프가 다듬어져 있다면 필터적용은 성공인거죠. 과정이야 어떻게 되었든 말이죠.
      그리고, order의 문제는 디자이너의 선택입니다. 1차, 2차, 3차 ,... 차수에 대해 바로 결론을 내릴 수 있는 사람은 없습니다. 그저 사용해보니 좋더군.. 정도의 경험이라고 해둘까요.
      통상 보면, 디자이너의 목표치에 들어오면, 1차부터 시작하다가, 멈추더군요.
      그리고, 얼핏제기억에는 하이패스필터를 건다고 하셨던것 같은데요. 자이로를 테스트하실때 가장 간과하시는 것은 참값과의 비교입니다.
      단순히 드리프트가 없다고 좋다라는 글을 올리는 블로거들을 많이 보게 되는데요. 문제는 추정하는 각도가 참값과 얼마나 근접하는가입니다.
      그래서 참값을 측정하는 방법을 강구하셔서 비교해보셔야합니다.
      참값대비 오차는 얼마며, 참값대비 결과값이 나오는 시간은 얼마인지 아셔야합니다.

  • 이명준 2012/06/07 16:02

    윗 글의 작성자입니다.

    (무척 죄송합니다만 pinkwink.kr/117의 글을 제가 볼 수가 없군요 ㅎ; 더 이상 존재하지 않는 글이라고;)
    저희는 손가락 움직임에 대한 연구를 하려고 자이로를 쓰는 중인데요,
    사실 참값 같은 것은 모릅니다; 어떻게 재야할지도 감도 안 잡히구요;

    code를 bandpass로 짠 것은.. 사실 다른 논문을 쓴 사람들이 다들 그리 했길래
    그냥 그리한 것이지 별 다른 이유는 없습니다 -_-;
    하이패스만 해도 드리프트는 얼추 없어지더군요;;

    조언 감사합니다.. 근데 참값을 어떻게 측정할지에 대한 방법은 또 막막하군요 ㅎ
    그냥 정해진 두 점을 왔다 갔다 해도 되는 것일까요?

    • PinkWink 2012/06/07 16:10

      댓글의 링크가 잘못되었네요
      http://pinkwink.kr/117
      를 눌러보시면 됩니다. 링크에 '에서'까지가 포함되어서 그렇습니다.
      그리고, 참값과의 비교를 통해서만이
      소위말하면
      "쓸만하다..."는 결론을 얻을 수 있지 않겠습니까.
      그 쓸만하다의 기준은 만드는 사람이 정하는 것입니다만...

      계속말씀드리지만, 저가의 MEMS형 자이로만 가지고는 아무리 하이패스필터를 연결하셔도 정상적 각도를 얻기 힘듭니다. 학술적으로 보고된것은 최장 4시간정도로 알고 있습니다만, 그것도 드리프트가 없더라는 것이 주제였던것 같았습니다.
      드리프트를 없애는것이 목적이 아니라,
      참 각도를 얻는 것이 목적이시지 않나요?
      역시 그렇다면, 참값이라고 믿을 만한 환경구축이 필요합니다.
      하다못해, 원형 각도기 한가운데 구멍을 뚫고 자이로를 고정하셔서 눈으로라도 관측하시는게 어떨까요?^^

  • 이명준 2012/06/13 15:50

    참값을 측정하는 시도를 해보라는 말씀을 듣고,

    비디오를 찍어서 비디오에 찍힌 손가락의 각도를 .... 각도기로 재어봤습니다.
    (좀 창피하군요; 생각나는 방법이 따로 없어서;;;;)
    대충 비슷하게 나오는 것 같았습니다.

    이것 저것 해보고 있는데, 궁금한 점이 또 생겨서 이렇게 염치없이 리플로 여쭤봅니다.

    이전에 말씀드렸듯이 손가락의 움직임을 연구하려고 하고 있습니다,
    그런데 사람들 중에서는 손을 떠는 사람이 있어서,
    이 손 떨림을 제거하려고, low pass filter (5Hz)를 적용했습니다.

    저는 지금까지 막연히 lowpass filter 5Hz를 걸면 5Hz 이상의 신호는 모두 사라질 것이라고 생각했는데요,
    frequency spectrum을 구해보니 손 떨림이 있는 신호가 좀 작아지기는 했는데 완전히 사라지진 않았습니다.

    왜 이런 걸까요? 제가 필터를 잘못 이해하고 있는 것인지, 아니면 제가 코딩을 잘못한 것인지 궁금합니다 ^^;

    • PinkWink 2012/06/13 17:04

      네.. 필터의 이해가 이상적인겁니다.^^
      어떠한 필터도 말씀하신것처럼 깔끔하게 떨어지는건 없습니다.
      신호가 어떤형태로든 왜곡됩니다.
      간단한 low-pass필터는 걸러내고 싶은 신호가 좀 작아지기도 하죠.
      더 확실히 보고 싶으시다면, 간단한 1차필터에서 좀 더 복잡한 2,3,4차로 확대해보시면 됩니다만...
      부수적으로 프로그램이 복잡해진다는 단접이 있지요..^^

  • 이명준 2012/06/14 09:25

    자꾸 여쭤봐서 죄송합니다, 그리고 빠른 답변 무척 감사합니다.

    필터로 신호가 왜곡된다고 말씀 주셨는데,
    그럼 시간이 지날수록 신호가 점점 작아지는 식의 변화도 가능할까요?
    아니면 작아지는 정도는 모두 일정할까요?

    • PinkWink 2012/06/16 11:50

      어떤 결과를 원하시든지 가능하다는 답변을 드릴 수 밖에 없습니다.
      그러나
      필터링을 한다는 것은 어마어마한 기술과 공부가 필요합니다.
      제가 아는 것은 그저 평균값을 취한다던지 하이패스필터나 로우패스필터를 적용한다던지, 혹은 그 두개를 융합한다는 정도의 지식뿐이랍니다.

  • 문의 2012/06/25 16:51

    이동체의 수평자세값을 얻을라고 하는데요.
    가속도 값을 사용하면 이동체의 속도가 올라가면 기울기도 같이 변화하는지요??
    음. 그러니깐. 경사 없는 평지를 이동한다라고 했을때 속도에 따라서 기울기도 변하는지요??

    • PinkWink 2012/06/26 12:51

      네 비록 수평한 각도를 유지하고 있어도, 속도보다는 가속도가 한 방향으로 걸리면, 참값에 대해 오차가 발생합니다. 이는 가속도센서를 사용했기 때문입니다. 물론 잡을려고 애는 썼습니다만, 이 부분은 아직 좀 그렇습니다.ㅠㅠ

  • 문의 2012/06/29 12:43

    저 센서를 가지고 다니면서, 도로의 경사를 계속 측정하고, ubs등 메모리에 바로바로 저장하고 싶은데..
    어떻게 하면 가능할지요?

    • PinkWink 2012/06/29 13:27

      이 센서모듈은 이전의 데이터를 저장하는 기능은 없습니다. 만약 그걸 원하신다면, 별도로 MCU나 PC 혹은 임베디드 시스템으로 센서의 출력 데이터를 저장할 수 있도록 꾸미셔야합니다.

  • 문의 2012/07/02 16:06

    저희가 이런쪽으로는 전혀 지식이 없어서 그런데, 말씀하신 출력데이터를 저장할 수 있는 시스템 구성을 의뢰하고자 하는데, 혹시 소개시켜주실수 있을런지요? 가능하시다 하시면, 제가 따로 메일 드리겠습니다.

    • PinkWink 2012/07/03 09:30

      글쎄요. 저희가 센서를 만들긴 했지만, 그외 사용자의 사용 환경에 대해서는 대응하기가 좀 힘든 부분이 있습니다. 간단히는 인터넷에서 비쥬얼베이직등으로 시리얼 통신을 통해 데이터를 수집하는 것을 확인해보셔도 될 듯합니다.

  • 질문 2013/02/15 16:54

    이번에 세그스케이트를 만들려고 하는 대학생입니다. 현재 ATMEGA128을 사용하고 있는데 이 센서는 내부에서 ADC처리를 해서 RS232로 직접 통신해서 각도값을 받는 것인가요?

    • PinkWink 2013/02/15 17:18

      이 센서는 가속도센서와 자이로센서로부터 각 정보를 읽어와서 각도를 구하는 필터가 적용된 것입니다. 그래서 통신을 통해 절대각도를 알 수 있는 제품입니다.

  • 질문 2013/02/15 17:47

    질문 하나 더 드립니다ㅎㅎ;
    센서의 응답시간이 10ms라고 되어 있는데 제가 알고 있는 정보에 의하면 세그웨이정도의 밸런싱로봇을 만들려면 응답시간이 1ms정도는 돼야 한다고 합니다. pinkwink님이 세그스케이트를 만드실 때 10ms의 응답시간은 적당했었나요?

    • PinkWink 2013/02/15 19:04

      센서의 응답속도가 빠르면 당연히 좋겠죠.
      그러나, 펜들럼, 셀프 밸런싱 로봇 등과 사람이 타는 형태의 경우 등 밸런싱 기능을 다수 직접 수행해본 결과 10ms의 샘플링 주기로도 충분했습니다.

    • 질문 2013/02/15 21:15

      답변 정말 감사드립니다ㅎㅎ

    • PinkWink 2013/02/18 09:05

      네.. 좋은 성과 있으시길 바랍니다.

  • 질문 2013/02/27 04:53

    질문드립니다. atmega128로 신호를 받으려고 하는데요 데이터시트에보니까 MAX232를 쓰라고 되어있는데 안쓰면 데이터를 못받나요? 아직 학생이라 많은 것을 알지 못해서 MAX232사용법도 모르겠고;;난감하군요ㅜㅜ

    • PinkWink 2013/02/27 09:11

      MAX232는 따로 크게 사용법이 있는게 아닙니다.
      그냥... 인터넷의 어느 카페정도에서 검색해보시면
      주변회로를 구성하는 방법에 대해 잘 나와 있을겁니다.
      그리고, TX, RX를 연결하고 그냥 사용하도록 되어있을겁니다.

  • 질문 2013/02/27 15:07

    아...그냥 MAX232없이 그냥 TX,RX를 MCU에 연결해서 읽으면 된다는 말씀이시군요?
    감사합니다ㅎㅎ

    • PinkWink 2013/02/27 15:57

      어~??
      그렇게 설명한게 아닙니다.

      간단히 연결법을 설명드리자면, VCC는 5~10V 사이로 넣어주시면 되고, GND는 사용하시려는 보드의 GND와 같이 물려주시면 됩니다.

      그리고 TX,RX 는 RX232C 전압레벨인 +-12V 레벨로 이루어진 신호이니 반드시 MAX232를 거쳐서 신호를 받으셔야 합니다.

  • 질문 2013/02/27 19:37

    아...그렇군요...답변감사드립니다 더 공부하고 오겠습니다ㅠㅠ

  • 질문 2013/07/12 00:43

    안녕하세요
    궁금한게 있는데
    Rated Roll, Rated Pitch 이 두개의 데이터는 어떤 의미를 갖고 있나요?
    데이터 시트에서는 변화율이라고 표시되어 있는데 잘모르겠어요
    예를 들면 현재 이전 출력된 roll 데이터와 현재 출력된 roll 데이터 2개의 변화율을 말하는건가요?
    즉 수신된 두점(두개의 데이터)의 평균변화율과 같이 생각해도 될런지..

    • PinkWink 2013/07/12 09:25

      각속도입니다. 이 제품은 각도와 각속도를 pitch와 roll의 상태에 대해 알려줍니다.

  • 궁금해요 2013/07/12 01:04

    한가지 더 여쭤보겠습니다.
    아직 설계 단계 이지만 저희가 쿼드콥터를 제작하려 합니다.
    자세제어에 필요한 방법을 2가지를 도출했는데
    한가지는 각 모터의 RPM를 엔코더로 읽어와서 MCU을 이용해 자세를 잡아주는 방법과
    다른 한가지는 자이로 센서를 이용해서 틀어진 축의 모터의 PWM를 조정하는 방법을 이용하려 하는데
    후자의 경우에 장착할 센서를 작성자님이 기제하신 센서를 이용하려 합니다. 가능할런지요 ^^;

    • PinkWink 2013/07/12 09:27

      모터의 RPM만 읽어온다구요? 그럼 기체의 자세를 몰라서 제어를 할 수가 없습니다. 무선 조종기로 조종하는 경우라면 일반 RC 헬기처럼 하시면 됩니다만, 그런경우는 RPM도 읽을 필요가 없죠
      자세를 읽어서 제어를 해야하는데
      이 제품은 그러기엔 좀 부족합니다. 왜냐면 ARS거든요. ARS는 YAW각을 읽어오지를 않습니다. 일반적인 비행체는 yaw-pitch-roll을 모두 읽어서 상태를 잡아야합니다.

  • 황태민 2013/07/24 12:18

    안녕하십니까
    지금 NT-ARSv1 모듈을 사용 하여 세그웨이를 제작하려고 하고있습니다.
    이 모듈과 MCU(Atmegq128)사이의 직접적인 통신과 피드백(각도를 받아와 MCU에서 연산을 통하여 명령)이
    가능한지 궁급합니다. 만약 가능하다면 어떤방식을 통하여 가능한지 궁금합니다.
    설명상으로는 RX, TX즉 MCU의 UART통신이 가능하다고 설명이 되어 있던데 .
    어떤식으로 접근을 해야 될지 잘 모르겠습니다.
    혹시 AVR을 통하여 이센서를 사용하여 잡업 하신적이 있으시면 사용법을 좀 알려주시면 감사 하겠습니다.

    • PinkWink 2013/07/24 12:45

      UART 통신을 통해 피치와 롤의 각도와 각속도를 받아올 수 있습니다.
      http://www.ntrexgo.com/archives/12020
      http://www.ntrexgo.com/archives/11947
      http://pinkwink.kr/555
      http://pinkwink.kr/566
      등에 보면 ARS를 통한 통신 예제들이 나타나 있습니다.
      통상 10ms 주기로 데이터를 받고 싶다면 <CAH> 명령을 사용하고, 한번씩만 각도를 받고 싶다면 <CAO> 명령을 사용하면 됩니다.

  • 공돌이 2013/07/30 14:22

    nt-ars를 졸업작품의 부품으로 사용하려는 학생입니다. 다름이 아니라 atmega128로 nt-ars의 센서값을 받아 모터의 출력을 제어하고 싶은데 nt-ars의 센서값을 읽어드리는 codevision이나 avrstudio 예제 소스를 구할 수 있을까요?

    • PinkWink 2013/07/30 14:41

      바로 위에 황태민님의 질문에 대한 답변과 같습니다.

  • 이형록 2013/10/24 17:49

    세그웨이(밸런싱 이동수단)을 만들려고 합니다.
    도중에 프로그램적으로 문제점이 발생하여 이렇게 조언을 구해봅니다.
    우선 하드웨어적인 부분은, 기존에 잘 운행되었던 것을 그대로 사용했습니다.
    그래서 소프트웨어적인 부분에 대해서 몇가지 질문을 드리겠습니다.

    1. 센서의 사용방법
    센서는 가속도센서와 자이로센서 2가지를 사용했는데요.
    이 두개의 센서를 이용해서 각도를 구했습니다.

    Gyroangle = (Gyro_data - offset) * x
    Accelangle = (Accel_data - offset) * y
    Angle = 0.95(Angle + Gyroangle) + 0.05(Accelangle)
    (샘플링간격 5msec)

    이렇게해서 +90도 ~ -90도 까지 각을 검출해냈습니다.
    제자리에서 센서를 기울여보면 앞쪽이면 +각도, 뒷쪽으로 기울이면 -각도가 잘 나옵니다.
    그런데 이 센서를 수평을 맞추고 전진,후진을 하면 각도값이 역으로 나와버립니다.
    전진하면 -각도가, 후진하면 +각도가 나옵니다.
    세그웨이에 쓰는 센서는 저2개가 있다고 들었는데..저렇게 각도를 만들어서 사용하는게 아닌가요?
    혹시 아시는것이 있으시면 답변 부탁드립니다.



    탑승을 목표로 하고 있습니다.

    • PinkWink 2013/10/27 14:00

      보여주신 코드는 보지 않았습니다.
      어떤 현상에 대한 이유야 많이 있겠지만,
      기본적으로 자이로+가속도센서로 각도를 추정할때 조심해야할 것들중 하나가 한 방향으로 움직이는 힘이 클때입니다. 그러면 실제로 기울어지지는 않았지만, 가속도센서에 어떤 입력이 있으니 그게 각도를 추정할때 영향을 미치게 됩니다. 쉽게 확인할 수 있는것은 책상위에 각도 측정 모듈을 놓고, 손으로 한 방향으로 확 끌어보면 실제 기울어지지 않았는데 각도가 순식간에 변화하는 것을 확인할 수 있습니다.
      이런건 가속도센서의 z축의 값이 변화하지 않는데, x,y 축의 값이 변화하는 것은 병행이동이라고 보고 대응하는 임기응변이 있긴 합니다만, 역시 튜닝에 어려움을 겪을 수 있으니, 대체로 칼만필터로 각도추정을 하게 됩니다. 필터를 설계할 때, 그와같은 경우를 고려하도록 하는 거죠.

  • 오잉 2013/11/26 12:22

    안녕하세요 항상 잘보고 배워가는 학생입니다.

    관성안정화장치 연구를 하고있는데 틸트센서를 찾다가 여쭤요.

    NT-ARSv1 이거 혹시 아날로그 출력도 가능한가요?? 아니면 시리얼통신으로 해서 MCU로 처리해야하나요?

    지금 시뮬링크로 daq로만 하고있어서 아날로그 출력이 가능한 제품을 찾고있거든요.. ㅠ

    • PinkWink 2013/11/26 12:59

      네 이 제품은 통신을 통해 값을 출력하도록 되어 있습니다.

1 ... 8 9 10 11 12 13 14 15 16 ... 37