work:quadcopter
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
work:quadcopter [2014/04/02 16:41] – donghee | work:quadcopter [2018/07/18 14:10] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 개발: ====== | + | ====== 개발 |
+ | |||
+ | |||
+ | ## ar9331 보드 만들기 | ||
+ | |||
+ | ### USB 허브칩 ftdi GL850G | ||
+ | |||
+ | TP WR703N의 확장 보드: GL850사용해서 만든 허브 http:// | ||
+ | |||
+ | arduino yun에서 RT8010-33GQW라는 step down dcdc 사용합 1.5mhz 1A | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## 알리바바에 파는 ar9331 보드 | ||
+ | |||
+ |  carambola2랑 비슷한 수준; 그런데 1000개가 기본 수량 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ### TL-WR703N Reverse Engineering | ||
+ | |||
+ | * https:// | ||
+ | * http:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ## openwrt configure for tplink 703N | ||
+ | |||
+ | steps: | ||
+ | |||
+ | 1. buy an tplink 703N, if it is A17 version , need to download an old firmware from tplink http:// | ||
+ | 2. download the bin to downgrade the firmware | ||
+ | 3. download tplink specific firmware with squre factory os | ||
+ | 4. flash the firmware within the web ui | ||
+ | 5. after reboot, link lan with laptop, and telnet into the system | ||
+ | 6. type passwd to set new passwd for root, reboot and ssh to system with new passwd | ||
+ | 7. change / | ||
+ | ------------------------ | ||
+ | |||
+ | | ||
+ | |||
+ | http:// | ||
+ | |||
+ | http:// | ||
+ | |||
+ | http:// | ||
+ | 좀 이유 설명 | ||
+ | |||
+ | Hard Fault freertos xPortPendSVHandler | ||
+ | |||
+ | http:// | ||
+ | |||
+ | |||
+ | http:// | ||
+ | |||
+ | |||
+ | http:// | ||
+ | Mike, | ||
+ | I've seen exactly this problem several times on the 205 and it was generally caused by the main ' | ||
+ | |||
+ | http:// | ||
+ | |||
+ | . If you are using an STM32 with the STM32 driver library then ensure all the | ||
+ | | ||
+ | |||
+ | 이미 NVIC_PriorityGroup_4로 되어 있네ㅣ | ||
+ | |||
+ | 스택 사이즈? | ||
+ | 시스템 테스크를 2배에서 4배로 스택 크기를 수정 | ||
+ | -> 그래도 죽네;; 다른때보다 3배정도는 늦게 죽는다. | ||
+ | |||
+ | http:// | ||
+ | |||
+ | Uart에 이걸 넣음 | ||
+ | |||
+ | vTaskSuspendAll() | ||
+ | xTaskResumeAll() | ||
+ | |||
+ | The stack in use when you call main() is recycled for use by all interrupt handlers. | ||
+ | |||
+ | |||
+ | |||
+ | ---------------- | ||
+ | |||
+ | Heli controls are like following | ||
+ | |||
+ | Throttle/ | ||
+ | Rudder == yaw, rotate left/ | ||
+ | Elevator == (bank)/fly forward/ | ||
+ | Aileron == (bank)/fly sideways left/ | ||
+ | |||
+ | openpilot | ||
+ | |||
+ | https:// | ||
+ | |||
+ | 체크 리스트 | ||
+ | - http:// | ||
+ | - mbed로 | ||
+ | |||
+ | - openpilot esc | ||
+ | - x copter, quard copter http:// | ||
+ | |||
+ | |||
+ | esc 세팅 | ||
+ | http:// | ||
+ | http:// | ||
+ | |||
+ | http:// | ||
+ | |||
+ | |||
+ | |||
+ | http:// | ||
+ | |||
+ | pwm 코드 수정 | ||
+ | - http:// | ||
+ | - 50mhz 1ms~2ms 로 데이터 수정! | ||
+ | |||
+ | pid 코드 수정 | ||
+ | - http:// | ||
+ | - pid 값 수정해서 스테이블한 상태 만들기 | ||
+ | |||
+ | |||
+ | modules/ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | crazyflie는 기본으로 attitude mode? rate 모드는 뭐지? | ||
+ | |||
+ | Project Quadcopter | ||
+ | |||
+ | http:// | ||
+ | |||
+ | http:// | ||
+ | http:// | ||
+ | |||
+ | http:// | ||
+ | m-bugs altitude holding | ||
+ | |||
+ | 쿼드콥터 만들기 | ||
+ | - 8MIPS로 400hz? 제어기 성능보다 추저성능이 중요. | ||
+ | http:// | ||
+ | - 인터럽트 사용해서 쓰는uart와 i2c가 추적 성능을 낮게 만들지.도 nrf24는 dma로 했나? | ||
+ | |||
+ | 칼만필터: | ||
+ | |||
+ | |||
+ | ## crazyflie | ||
+ | |||
+ | https:// | ||
+ | |||
+ | http:// | ||
+ | |||
+ | 슬라이딩 어떻게 하지? | ||
+ | |||
+ |  | ||
+ | |||
+ | |||
+ | Accel보다 자이로만 사용했을때 계속 밀린다. | ||
+ | |||
+ | GyroBias 값을 0으로 해보았는데, | ||
+ | |||
+ | Gyro에 low pass filter를 적용 해보자! | ||
+ | |||
+ | -> lpf와 average filter(250hz) 적용 | ||
+ | |||
+ | low pass filter가 별로 나아지는것은 없어보이는데 | ||
+ | GyroBias가 지대한 영향을 끼치는것 같다. | ||
+ | 분산, 평균을 이용해서 추세를 보는듯. | ||
+ | |||
+ | 0.296548, -0.452743, 3.047594 | ||
+ | | ||
+ | 0.295663, -0.450056, 3.115887 | ||
+ | | ||
+ | 0.292134, -0.452814, 3.190397 | ||
+ | | ||
+ | 0.236752, -0.417580, 3.254106 | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | bias계산 안하고 그냥 손으로 넣은게 나을려나? | ||
+ | |||
+ | bias계산해서 넣으니깐 한쪽으로 계속 치우친다. | ||
+ | |||
+ | 날개를 바꾸는것도 이상해. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | #### Reading accelerometers | ||
+ | |||
+ | | ||
+ | |||
+ | ## openpilot | ||
+ | |||
+ | - http:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||
+ | 모터를 exp? 왜 이렇게 계산하냐? | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | { | ||
+ | | ||
+ | |||
+ | - value = ipow(UINT16_MAX, | ||
+ | + value = fastPow(UINT16_MAX, | ||
+ | | ||
+ | } | ||
+ | |||
+ | +double fastPow(double a, double b) { | ||
+ | + union { | ||
+ | + double d; | ||
+ | + int x[2]; | ||
+ | + } u = { a }; | ||
+ | + u.x[1] = (int)(b * (u.x[1] - 1072632447) + 1072632447); | ||
+ | + u.x[0] = 0; | ||
+ | + return u.d; | ||
+ | +} | ||
+ | |||
+ | +static double fastPrecisePow(double a, double b) { | ||
+ | + // calculate approximation with fraction of the exponent | ||
+ | + int e = (int) b; | ||
+ | + union { | ||
+ | + double d; | ||
+ | + int x[2]; | ||
+ | + } u = { a }; | ||
+ | + u.x[1] = (int)((b - e) * (u.x[1] - 1072632447) + 1072632447); | ||
+ | + u.x[0] | ||
+ | + | ||
+ | + // exponentiation by squaring with the exponent' | ||
+ | + // double r = u.d makes everything much slower, not sure why | ||
+ | + double r = 1.0; | ||
+ | + while (e) { | ||
+ | + if (e & 1) { | ||
+ | + r *= a; | ||
+ | + } | ||
+ | + a *= a; | ||
+ | + e >>= 1; | ||
+ | + } | ||
+ | + | ||
+ | + return r * u.d; | ||
+ | +} | ||
+ | + | ||
+ | ---- | ||
안드로이드 콘트롤러 | 안드로이드 콘트롤러 | ||
work/quadcopter.1396456898.txt.gz · Last modified: 2018/07/18 14:09 (external edit)