REPORT

2016 summer semester Flying Robot Project 9th Team FJune 08, 2016

620

We are continuing developing our autonomous control system. For computation, we use a microcontroller (STM32F405RG) by STMicroelectronics.

To estimate the attitude of the aircraft, the microcontroller obtains the 6DOF (accelerometer and gyrometer) sensor information from NinjaScan Light Logger board through UART, and process the data by Madgwick filter (AHRS) algorithm. This algorithm assumes that the acceleration direction is near to the gravity directions. Therefore, under certain situations (eg. circular motion), where the two directions are not necessary equal, the estimate will be corrupted. So we have to modify the algorithms in some way.

For altitude sensing, we use ultrasonic sensor. The sensor outputs pulse signal whose width corresponds to the altitude. In order to measure the pulse width, we use the interrupt and timer function of the microcontroller. Same methods were used for obtaining RC Control data from the RC receiver.

For outputting the servo commands, we used timers and its compare functions. The timer periods were set to the servo PWM periods (20msec), and its pulse widths is generated by altering the compare registers. Making use of the peripheral functions is essential to spare the computational load of CPU.

For autonomous landing we use the photodiode sensor, which can detect infrared light. This sensor outputs the analog voltage signal, so the microcontroller uses its ADC functions to convert the signal to digital value.

In order to enhance the development efficiency of this control system, the computation results of the microcontroller can be easily observed through PC monitor, using wireless connection. For communication protocol, we use UART for hardware level, and also use the original packet which is equipped with header and checksum for software level. All data is visualized by using Processing.

Shun Fujioka
Department of Aeronautics and Astronautics
先週から引き続き自動制御装置の開発を継続している。制御装置の演算にはST社の32bitマイコン(STM32F405RG)を使用する。

まず機体姿勢を計測するために、市販のセンサーロガー装置(ちょっとすごいロガー)から6軸(加速度・角速度)のセンサー情報を、テレメトリ機能を用いてUARTによりマイコンへ転送し、現在はMadgwick Filter(AHRS)によって姿勢推定を行っている。このアルゴリズムは、加速度方向が重力方向だと近似するような補正を行うため、定常水平旋回などのように定常加速度方向が重力方向と一致しないような飛行を行うときは推定が崩れる可能性があるため、何かしらの修正が必要となると考えられる。

高度計測にあたっては、超音波センサーを用いる。このセンサーから出力されるパルスの時間幅を計測することにより、高度情報が取得できる。パルス幅の計測するために、今回はピンの立ち上がり・立ち下がりに反応する割り込みとタイマを併用した。またプロポ受信機からのPWMを読み込む際にも同じ手法を用いた。

サーボへの出力には、タイマのコンペア機能を使用した。タイマの上限値をサーボのPWM周期となる20msecとし、コンペア機能を用いることにより任意のパルス幅を出力できるようにしてある。この例に限らず、DMAや割り込みなど出来る限り周辺機器の機能を用いて、マイコンの演算時間を消費してしまうポーリング操作を避けるべきである。

自動着陸のためにフォトダイオードを利用する。フォトダイオードからはアナログ電圧が出力されるため、これをマイコンのADCを用いて、電圧を数値に変換する。

開発及び操縦時の効率・利便性を高めるために、マイコンとパソコンを無線で接続し、マイコンの計算結果をリアルタイムに確認できるようにしてある。通信方法としてはUARTを用い、ヘッダーとチェックサムを備えた独自のプロトコルを用いることにより、適切に受信データをデコードできるようにした。またパソコン側の視覚化としては、Processingを用いた。

航空宇宙工学専攻 修士2年
藤岡 駿

|