====== 2016년 2월 11일 ====== https://www.coursera.org/learn/robotics-flight lession 1 공부하다가 matlab 공부. {{http://i.imgur.com/tynGmX9.png}} .^ 같은 표현을 element-wise operator 라고 하는데, 굉장히 함축적인 표현이다. 오랜만에 재미난 코드 궁금해서 python에서는 element-wise operator를 구현하나 보니깐. 리스트의 각 요소를 접근하는 방법(map 또는 zip)을 이용하여 구현한다. 참고: http://stackoverflow.com/a/17595695 {{http://i.imgur.com/LmWfF9Z.png}} 벡터곱이 어떻게 하는지 왜 하는지 생각이 안난다. ㅡ.ㅡ; ---- pixhawk를 읽다 보니깐 pixhawk fmu랑 io가 만들어 보고 싶다. pixhawk 구현체는 여러개 있어도 괜찮은것 같다. 그런데 pixhawk에서 사용하는 stm32f437 칩은 하나에 16달러정도 한다. 속도는 180mhz고... pixhawk코드을려다 main 이 안보여서 제용형에게 물어보니깐 nuttx안에 os_start.c 파일 안에 있었다. 아무래도 [[http://nuttx.org/doku.php?id=documentation:userguide| nuttx user guide]]부터 읽어야 하겠다. px4를 어떻게 읽을지 감이 없다. ====== 2016년 2월 10일 ====== PX4FLOW에 sonic sensor가 붙는데, PX4FLOW가 pixhawk fc에 붙는다. 음. 물론 onboard에도 붙일 수 있다. 기준은 시간에 대한 요구사항일 뿐. crazyflie코드는 attitude update가 250hz로 돌았는데, pixhawk는 1khz 이상으로 loop가 돈다. 흠. 얼마이상으로 빠르면 좋은걸까? 성능 평가는 어떻게 하지? ====== 2016년 2월 9일 ====== pixhawk의 소프트웨어 구조에 대한 논문을 찾아 보고 정리 * PX4: A Node-Based Multithreaded Open Source Robotics Framework for Deeply Embedded Platforms https://www.inf.ethz.ch/personal/lomeier/publications/px4_autopilot_icra2015.pdf 리뷰: 박동희 2016년 2월 9일 저자: Meier, L. and Honegger, D. and Pollefeys, M. 요약: 오픈소스 드론 프레임워크인 PX4 에 대한 *디자인 기준 제시*, 소프트웨어 구조와 성능평가. **배경** 다양한 형태의 드론으로 확장하기 위해서는 모듈방식으로 표준화 프레임워크가 필요하다. Our system architecture is centered around a publish- subscribe object request broker on top of a POSIX application programming interface. **디자인 기준제시** 논문에서는 리얼타임 임베디드 시스템(MCU)에서의 디자인 기준(Design Criteria) 제시( 1. Controller Timing Requirements, 2. Reusability, 3. Interoperability )하고 이를 기준으로 대한 평가를 이후에 진행한다. **소프트웨어 구조** 모듈방식의 표준화된 프레임 워크를 만들기위해 소프트웨어는 4개의 레이어(device driver, device node/nuttx, micro object request broker, application layer)로 구성. 제안된 프레임워크는 ROS에서도 동작하고 micro controller에서도 동작을 한다. mcu에서 동작하는 프레임워크는 리눅스 기반의 프레임 워크 보다 low latency를 보인다. **성능평가** 평가는 3개의 디자인 기준으로 평가. 모든 평가 기준에서 다른 오픈소스 드론 프레임워크에 비해 우위. flexibility는 VTOL의 구현이 쉽다는 정도와 onboard와 fc에서의 모듈의 교환이 가능하다는 정도로 평가 평가: 8/10 px4의 배경연구에 대한 당위성이 타당하다. 모듈러리티에 대해서 구조에 대한 구현 부분에 대한 자세한 설명이 있으면 좋겠다. 그리고 모듈러리티 평가로 포팅할때 코드 구조나 라인수로 평가하면 더 좋을 것 같다. Reflect: * 왜 px4가 복잡한 아키텍쳐를 가졌는지 이해하게 되었다. * 센서를 fc에 붙일 수도 있고, onboard에 붙일 수 있다. 판단의 기준은 timing requirement이다. * PX4Flow는 px4에 붙네. onboard가 아니라. * px4구조는 같은 코드로 onboard(ROS)나 fc(자체)에 붙일 정도로 이식성이 좋다. * 디자인 기준에서 나오는 드론의 종류에 따른 Timing Requirements에 대한 스키마 더 읽을 필요가 있다. "Trajectory generation and control for precise aggressive maneuvers with quadrotors", "A new nonlinear guidance logic for trajectory tracking." * 테스팅에 odroid u3를 사용했네. * px4에는 2개의 마이크로 컨트롤러가 있어서 하나가 죽으면 다른것이 동작하도록 saft를 보장하는데, 어떻게 하는 걸까? * drone의 timing requirements에 대해서 Fig. 1에 정의 되어 있다. 나중에 자료 만들때 쓰면 좋을 듯. * px4가 milliseconds 단위로 자세 제어를 한다. 이러니 안정적일 수 밖에. {{{https://i.imgur.com/4sThmfb.png}}} --박동희