Quantcast
Channel: OSQZSS
Viewing all 643 articles
Browse latest View live

SDカードのバックアップ

$
0
0
BeagleBoneでRTKLIBが動くようになったので,ここから作業を進める前に
SDカードのバックアップを取っておくことにしました.

マイコン工作入門の記事で,ddrescueを使うと良いとアドバイスがあったので,
試してみます.

SDカードのバックアップは,ubuntuをインストールしているPCで行いました.
まず,ddrescueをインストールします.

$ sudo apt-get install gddrescue

次に,バックアップを取るSDカードをPCのカードリーダに挿入します.
自動的にマウントされるので,デバイス名をfdiskで確認します.

$ sudo fdisk -l

例えば,ここでは/dev/mmcblk0としてマウントされています.

Disk /dev/mmcblk0: 3991 MB, 3991928832 bytes
255 heads, 63 sectors/track, 485 cylinders, total 7796736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 63 144584 72261 c W95 FAT32 (LBA)
/dev/mmcblk0p2 144585 7132859 3494137+ 83 Linux

このSDカードのイメージを,バックアップのファイルにコピーします.

$ sudo ddrescue /dev/mmcblk0 /path/to/backup.img

バックアップされたイメージを新しいSDカードに書き込むためには,
次のコマンドを実行します.

$ sudo ddrescue --force /path/to/backup.img /dev/mmcblk0

BeagleBoneでWi-Fi

$
0
0
屋外でもntripにアクセスできるように,BeagleBoneに無線LANアダプタを接続.

Buffalo: WLI-UC-GNM

Adafruitのtutorialに従ってセットアップしてもangstromではまったく動作せず,
おとなしく諦めてubuntu 13.10をインストール.

こちらの記事を参考にwlan0でIPアドレスが取得できたのだが,
しばらくするとrt2x00usb_vender_requestのエラーが発生してubuntuが停止してしまう.

 (クリックで拡大)

Googleで検索すると,同じような現象がいくつか報告されているものの,
適切な解決法は発見できず挫折…

【追記】外部電源を接続しないとwifi接続は不安定になるというコメントは
良くみかけたので,USBと一緒に5Vの外部電源を接続していた.
しかし,同時に接続したら,どちらが優先されるのか疑問に思い,
BeagleBoneの電源コントローラであるTPS65217bのデータシートをチェック.
そうしたら,両方接続されているときは外部電源優先と書かれていた.
それはそうだろうな.

そんな折に,こんな記事を発見.

Beagleboard Rev C3 USB EHCI Controller Trouble

外部電源から電力が供給されても,基板側の問題で十分な電流が確保できて
いないのだろうか?

半信半疑で,外部入力付きのUSBハブを介して無線LANアダプタを接続.
これであれば,BeagleBoneの基板に関係なく電力が供給できる.



いまのところ,安定して通信ができています.
これが正解?

【追記2】Googleのフォーラムでも似たようなことが議論されているけど,結局原因不明.

BeagleBone USB A port extension cable/hub problem

USBの延長ケーブルを付けるだけで問題が解決するようなことも書いてある.
本当かと疑いながらも,USBハブに外部電源なしで接続してみたら問題なく動く.
電源の問題ではない?

BeagleBoneでUARTの追加

$
0
0
LEA-4Tの基板はBeagleBoneにUSBで接続できるのですが,UARTでも接続してみたいので,
マイコン工作入門の記事を参考にttyO2とttyO4を追加してみました.
Ubuntuのバージョンは13.10です.

 (クリックで拡大)

なぜか/sysへの書き込みは,sudo echoではパーミッションエラーが出てしまうので,
sudo suでrootになってから実行しています.

さて,このままでは電源を入れる度にttyO2とttyO4を作成しなければなりません.
そこで,bootのパーティションに入っているuEnv.txtに以下のラインを追加します.

optargs=capemgr.enable_partno=BB-UART2,BB-UART4

このパーティションのフォーマットはFATなのでWindowsでも普通に開けるのですが,
Windows上でuEnv.txtを編集すると,BeagleBoneがSDから起動できなくなりました.

Ubuntuで編集すると問題なし.DOSとUNIXの改行コードの違い?

 (クリックで拡大)

BeagleBoneでPPP

$
0
0
BeagleBoneで動作するRTKLIBで単独測位は確認できたので,
IGS Real-Time Serviceの精密歴を使ってPPPを試してみます.

基本的には,ここで試したRTKNAVIの設定を,そのまま使います.
Roverには,単独測位と同様にMGEXのCHOFを選びました.

inpstr3-pathにCorrectionのストリームを指定します.
ここでは,rt.igs.orgのIGS01を使います.

inpstr1-type =ntripcli # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr2-type =off # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr3-type =ntripcli # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr1-path =user:password@mgex.igs-ip.net:2101/CHOF7
inpstr2-path =
inpstr3-path =user:password@rt.igs.org:2101/IGS01
inpstr1-format =rtcm3 # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:sp3)
inpstr2-format =rtcm3 # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:sp3)
inpstr3-format =rtcm3 # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:sp3)

Positioning Modeはppp-kin,衛星システムはGPSのみとしました.
ver 2.4.2で実装されたambiguity resolutionのオプションはoffにしています.

pos1-posmode =ppp-kine # (0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp-static)
pos1-frequency =l1+l2 # (1:l1,2:l1+l2,3:l1+l2+l5)
pos1-soltype =forward # (0:forward,1:backward,2:combined)
pos1-elmask =15 # (deg)
pos1-snrmask =0 # (dBHz)
pos1-dynamics =off # (0:off,1:on)
pos1-tidecorr =on # (0:off,1:on)
pos1-ionoopt =dual-freq # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec)
pos1-tropopt =saas # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph =brdc+ssrapc # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-exclsats = # (prn ...)
pos1-navsys =1 # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:comp)
pos2-armode =off # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)

これでPPPの準備が整いました.設定ファイルのppp_bb.confをここに置いておきます.
忘れずにntpdateでBeagleBoneの時計を設定した後に,rtkrcvを実行します.

ubuntu@arm:~/rtklib_2.4.2/app/rtkrcv/gcc$ ./rtkrcv -o ppp_bb.conf

ホスト側のrtkplotに接続すると,PPPの測位結果が表示されます.

 (クリックで拡大)

ばらつきは小さいのですが,CHOFのアンテナ位置から1mほど離れており,
少しずつその方向へ移動しています.しばらく放置すれば収束するのかな?

CHOFのアンテナ位置は,MGEX station listFTPサイトからダウンロードできます.

ついでに,htopでCPU usageを調べてみました.
rtkrcvは,10%も使っていないようです.全然余裕があります.

 (クリックで拡大)

色付きシルクスクリーンを試してみた

$
0
0
最近出回っている白のレジストに色付きのシルクスクリーンの基板を
自分でも作ってみたくなり,安く製造してくれるメーカを探してみました.

OSQZSS: Fancy colored silkscreen PCB

結果的に,格安基板の価格では到底無理で,10枚程度作るのであれば,
送料込みで$150あたりが相場であることが判りました.

内訳を見ると,ツーリングに$80程度と半分以上を占め,基板1枚の価格は$2程度です.
あとは,レジストやシルクの色のオプションに$10,送料に$20といったところでしょうか.

P板よりは安いのですが,趣味で作るにはやや高価です.

しかも,色付きのシルクスクリーンは,仕上がりの色合いが想像できません.
いくつかのメーカに見積りを依頼する際に,仕上がりのサンプル写真があれば
見せてもらえないかとお願いしたのですが,見事にスルー.

そんな中で,Project PCBは対応がとても丁寧でした.
さらに,色付きのシルクスクリーンを試すために,白レジストの同じ基板であれば,
シルクスクリーンの色はいくつ選んでも追加料金なしというオーファーをいただきました.

価格で躊躇していたのですが,セールストーク?に誘惑されて,物は試しと発注してみることに.

試験的な基板だから実用的なものが良いなと,LEA-4Tのbreakout boardにジャンパを追加して,
格安LEA-6Tにも対応した基板を急遽設計.実働8日+FedExで,2週間ほどで到着しました.



シルクスクリーンが原色のきつい色だったら嫌だなと心配していたのですが,
白いレジストのおかげで,柔らかいパステルカラー調になっています.
やや欠けたり掠れたりしていますが,問題のない仕上がりです.

格安基板と比較すると高価な買い物ですが,ちょっと変わった基板を作りたい方に
Project PCBはお勧めです!

Rawデータの精度とダイナミクス

$
0
0
測位演算の素となるGPSのrawデータですが,その性能は精度とダイナミクスの
トレードオフで決まります.

まず精度ですが,rawデータに含まれる雑音を減らすためには,平滑化の時間を
長くすればするほど有効です.

一方,受信機と衛星の距離は刻々と変化しており,これを追尾しなければなりません.
受信機側の動きが激しければ,それだけ短時間に距離の変化を推測する必要があります.

つまり,精度を高めるために平滑化の時間を長くすると,静止点や滑らかに
移動する受信機でしか信号が追尾できず,逆に高ダイナミクスの受信機で
信号を追尾しようとすると,平滑化の時間が短く,精度が劣化します.

したがって,受信機の設計では,想定される受信機のダイナミクスの
最大値に合わせて,平滑化の時間を決定することになります.

GPS受信機の主なユーザである歩行者や車は,通常は一定速度で移動すると
仮定できるため,信号追尾には2次の線形フィルタが広く使われます.
疑似距離を生成するために拡散コードの位相を追尾するフィルタを
DLL(Delay Locked Loop),精密測位に使われる搬送波位相を追尾する
フィルタをPLL(Phase Locked Loop)と呼びます.

線形フィルタでは,その次数のダイナミクスに対して定常偏差が残ってしまいます.
rawデータである距離は0次となるため,1次は速度,2次は加速度に相当します.

この定常偏差の大きさは,加速度とフィルタの帯域によって決まります.
帯域とは,ざっくりと平滑化時間の逆数だと考えてください.
つまり,帯域が狭いと平滑化の時間が長いことになります.

2次の線形フィルタでは,定常偏差は加速度に比例し,帯域の3乗に反比例します.
したがって,DLLまたはPLLに許容される定常偏差の大きさが与えられれば,
アプリケーションに応じた加速度の最大値に対して,帯域が求められます.

さて,通常の受信機が経験するであろう加速度は,せいぜい2G程度です.
この加速度に対応した帯域を求めると,DLLで1Hz以下,PLLで10Hz程度と
なります.

つまり,疑似距離は1秒以上平滑化され,搬送波位相は0.1秒ほど平滑化
されることになります.

このため,疑似距離においては1Hz以上,搬送波位相においては10Hz以上の
距離の変化は,平滑化されてダイナミクスとして意味をなさないことになります.

世の中には,測位結果やrawデータを50Hzや100Hzで出力する受信機が存在しますが,
サンプリングレートと帯域は別物です.これらの受信機で広帯域な観測が可能という
訳ではありません.出力頻度の高い受信機を利用して地震波や建築物の振動などを
観測しようとする研究もみられますが,GPS受信機のrawデータは,信号追尾の原理上,
帯域がそれほど広くないことに注意が必要です.

心機一転

$
0
0
今日からしばらく古巣でお世話になります.

GNSS関連の設備は充実しているので,
いろいろと作業が捗る!

BeagleboneでSDR?

$
0
0
taro君のGNSS-SDRLIBがどんどん進化している.

Taro +memo: 2013年度のまとめ(2) GNSS-SDRLIB

次のリリースでLEX信号もサポートされるらしい.
このあたりの小型PCで,LEX受信機が簡単に作れそう.

PC Watch: ECS、世界最小のBay Trail-M搭載デスクトップを国内投入
Gigazine: 2万円以下で購入できる世界最小スーパーコンピューターをNVIDIAが発表

それ以上に興味のあるのがgccでのコンパイルのサポート.
Linux環境でも動かせるのは嬉しい.

デフォルトだと相関器が多すぎてキツイけれど,
普通にEarly-Lateだけであれば,Beagleboneでも
なんとかならないかな?

【追記】Micheleのblogを読む限り,Beagleboneで動きそうな感じ.
しかし,これ2009年の記事か.何周回遅れているんだ…

Michele's GNSS blog: Still alive and working hard

【追記2】taro君の記事でも紹介されているESAのGalileo Fixesの認定書に応募してみよう.
Galileoに対応した受信機も出回っているし,受信機がなくてもMGEXからリアルタイムで
RTCMが配信されている.いまさらな企画のような気もするが,Beagleboneで動くRTKLIBでの
測位なら,それなりにネタになるかな?

今週,東京からGalileoが4機観測できるのは,5日の0時か6日の7時あたりか.




GPSでDoppler測位

$
0
0
@fenrir_nさんがTLで「スクリーンショットから位置が特定できるもんならやってみろ(意訳)」と
煽っていらっしゃったので,その方針を検討してみた.

そんなものsnapshot測位で一発だろと思ったのだが,さすがにGPS測位を理解されているので,
100km以上の疑似距離情報が黒塗りされている.これでは,単純にcode ambiguityを解くことはできない.
SVも黒塗りしているあたり,さすがだ.

しかし,時刻情報とDopplerは提供されている.衛星配置も他のスクリーンショットに写っている.
少なくとも日本在住だろうから,これらを頼りにSVの特定とDopplerによる測位は可能だろう.

ちなにみ,静止点であれば,Doppler測位で10km程度まで位置を絞り込むことができる.
そこからは,黒塗りされた部分的な疑似距離であっても,code ambiguityを解くことができるだろう.

リフローでublox基板の半田付け

$
0
0
OSH Stencilsから購入した格安ステンシルを早速試してみる.



リフローは信頼の山善ホットプレート
ちなみに,写真を撮ってから受信機の向きが間違っていることに気づく.

 (クリックで拡大)

特に温度プロファイルを取るわけでもなく,スイッチサイエンスの
記事を参考に180度で3分間のプレヒート.その後,230度に上げて
半田が溶けたら30秒間そのまま.最後にフタを開けて冷却という手順.

使ってみた印象としては,ステンシルが薄いかも.
パッドに塗布される半田ペーストの量が少なく感じます.

また,受信機モジュールの一部が浮いてしまい,
半田付けされていない端子もありました.



aitendoから購入したソルダペーストは,粒子が粗いのか,
ごわごわしたような仕上がりです.

 (クリックで拡大)

何も気にせずリフローで加熱してしまったリチウムバッテリは,
破裂して青い液体を吐き出しています.危ない,危ない.



リチウムバッテリを新品に取替え,コネクタ類も手付けして完成.
いくつかトラブルがありましたが,問題なく動作しています.



部品点数が少ないので,手付けより劇的に効率が良くなったとは感じませんが,
数を作るのであれば,やっぱり楽かな.

MGEXでGalileo Fixes

$
0
0
ESAのCertification of Galileo fixesに応募しようと,
東京からGalileoが4機可視となる早朝から調布のMGEX局にアクセス.

しかし,Galileo衛星はしっかりと4機観測されるものの,
RTCMでephemerisが流れていないのか,測位に使うことができません.

 (クリックで拡大)

MGEXのstation tableを見ると,CHOF7では,Galileoのephemerisである
message type 1045と1046に対応しているようです.

RTCMがダメならrawデータにアクセスしようと,mountpointにCHOF0を選んだのですが,
こちらには接続できず.他のサイトも,rawデータのmountpointに接続できません.
何か別の手順が必要なのかな?

【追記】RTCM 3のmessage typeを忘れるのでメモ.

1001 GPS L1 code and phase
1002 GPS L1 code and phase and ambiguities and carrier to noise ratio
1003 GPS L1 and L1 code and phase
1004 GPS L1 and L2 code and phase and ambiguities and carrier to noise ratio
1005 Station coordinates XZY for antenna reference point
1006 Station coordinates XYZ for antenna reference point and antenna height
1007 Antenna descriptor and ID
1008 Antenna serial number
1009 GLONASS L1 code and phase
1010 GLONASS L1 code and phase and ambiguities and carrier to noise ratio
1011 GLONASS L1 and L1 code and phase
1012 GLONASS L1 and L2 code and phase and ambiguities and carrier to noise ratio
1013 Modified julian date, leep second, configured message types and intervall
1014-1017 Network RTK (MAK) messages
1019 GPS Ephemeris
1020 GLONASS Ephemeris
1045-1046 Galileo Ephemeris
1071-1077 GPS-MSM data
1081-1087 GLONASS-MSM data
1091-1097 Galileo-MSM data
1101-1107 SBAS-MSM data
1111-1117 QZSS-MSM data
1121-1127 BeiDou-MSM data

【追記2】コメントでTTAKASUさんからGalileoのephemerisの受信方法を
教えていただいたので,早速試してみました.

まず,RTKNAVIのInput Streamsの(2) Base Stationに,NTRIP Clientを追加します.
FormatはRTCM 3になります.

 (クリックで拡大)

(1) Roverは,これまで通りに,調布のMGEX局に接続します.



(2) Base Stationには,MountpointとしてRTCM3EPH-MGEXを入力します.



IGS Real-time Pilot Projectなどで配信されているephemerisの情報は,
GDCのサイトで紹介されています.

GDC: Broadcast Ephemeris from EUREF & IGS Real-time GNSS Resources

続いて,RTKNAVIのOptionsからMiscタブを選び,Navigation Message Selectionに
Allか(2) Base Stationを選びます.

 (クリックで拡大)

RTKNAVIをStartしてしばらく経つと,E12のephemerisが受信され,skyplot上に表示されました.
この時間帯に東京からGalileoは1機しか観測できませんが,GPSとの複合測位ができています.

 (クリックで拡大)

(2) Base Stationで受信しているRTCM 3のstreamを見てみると,Galileoのephemerisである
Message Type 1046が確かに受信されています.

 (クリックで拡大)

これでGalileoのみでの単独測位の準備が整いました.
次に4機可視になるのはいつだろう?

SiRFstarIVでRTKLIB

$
0
0
RTKLIBのAndroidへの移植について調べていたら,こんなebayサイトがヒット.

ebay: GPS receiver for RTKLIB Android app - USB SiRF Star IV

あれ?SiRFstarIVもrawデータを出力するように改造できる?

出品されているのはGlobalSat社のG-STAR IV.アンテナ一体型の受信機です.

日本でもGPSDGPSで取り扱いがある.5,724円で在庫あり.

GPSDGPS: BU-353S4 SiRFstarIV

【追記】しかし,どうせ改造するなら,NEO-6Mが圧倒的に安い.

helimonster.jp: NEO-6M Ublox/u-blox GPS Module with Compass
surehobby.com: CRIUS CN-06 V2.0 GPSレシーバー

BeagleBoneでWi-Fi

$
0
0
屋外でもntripにアクセスできるように,BeagleBoneに無線LANアダプタを接続.

Buffalo: WLI-UC-GNM

Adafruitのtutorialに従ってセットアップしてもangstromではまったく動作せず,
おとなしく諦めてubuntu 13.10をインストール.

こちらの記事を参考にwlan0でIPアドレスが取得できたのだが,
しばらくするとrt2x00usb_vender_requestのエラーが発生してubuntuが停止してしまう.

 (クリックで拡大)

Googleで検索すると,同じような現象がいくつか報告されているものの,
適切な解決法は発見できず挫折…

【追記】外部電源を接続しないとwifi接続は不安定になるというコメントは
良くみかけたので,USBと一緒に5Vの外部電源を接続していた.
しかし,同時に接続したら,どちらが優先されるのか疑問に思い,
BeagleBoneの電源コントローラであるTPS65217bのデータシートをチェック.
そうしたら,両方接続されているときは外部電源優先と書かれていた.
それはそうだろうな.

そんな折に,こんな記事を発見.

Beagleboard Rev C3 USB EHCI Controller Trouble

外部電源から電力が供給されても,基板側の問題で十分な電流が確保できて
いないのだろうか?

半信半疑で,外部入力付きのUSBハブを介して無線LANアダプタを接続.
これであれば,BeagleBoneの基板に関係なく電力が供給できる.



いまのところ,安定して通信ができています.
これが正解?

【追記2】Googleのフォーラムでも似たようなことが議論されているけど,結局原因不明.

BeagleBone USB A port extension cable/hub problem

USBの延長ケーブルを付けるだけで問題が解決するようなことも書いてある.
本当かと疑いながらも,USBハブに外部電源なしで接続してみたら問題なく動く.
電源の問題ではない?

LEA-4T評価基板の頒布案内

$
0
0
搬送波位相の出力に対応したublox社製GPS受信機モジュールLEA-4Tの
評価基板の頒布を始めました.価格は送料込で4,000円になります.

 (クリックで拡大)

 (クリックで拡大)

BeagleboneでRTKLIBを動かした際に使用したものを,ホットプレートによる
リフローで量産したものです.あくまでも個人が趣味で設計したものであり,
性能を保証するものではありません.

USBケーブルやGPSアンテナは付属しませんのでご注意ください.
GPSアンテナは,SMAコネクタのものが接続できます.

スイッチサイエンス:GPSアンテナ 28dB 5m SMAコネクタ型

発送前にはGPS信号の受信および測位の動作を確認いたしますが,
この評価基板によって生じたいかなる故障や損害について,
いかなる責任も負いません.

以上の注意をご理解いただいた上で頒布を希望される方は
osqzss at gmail.comまでご連絡ください.

Beagleboneの無線化

$
0
0
amazonで面白そうなUSBハブを発見.Beagleboneに丁度良さそう.

amazon: ELECOM USBハブ USB2.0対応 バスパワー 3ポート U2H-PP3BBK



3ポートあるので,Wi-FiのドングルとLEA-4T,XBeeを接続.



USBシリアルのポートにはモバイルバッテリから給電.
これで独立して動作するプラットフォームができた.



これが2台あれば,一方はbase stationとしてstr2strを,
もう一方はroverとしてrtkrcvを実行すれば,RTKができる!

そう,2台あれば…


測位演算の効率化

$
0
0
リソースの潤沢なPCであれば問題ありませんが,組み込みシステムの
マイコンで疑似距離と放送歴から単独測位を実施しようとすると,
処理能力が不足しがちです.

特に,放送歴から衛星位置を求める演算は,三角関数を多用します.
さらに,測位演算のitterationのたびに,すべての衛星位置を再計算するのは,
非常に効率の悪い実装になります.

そこで,この衛星位置の計算を効率化する手段として,衛星の位置,速度,
加速度をある一定周期で計算し,その間は等加速度運動と仮定して
2次関数から衛星位置を求める方法が考えられます.

ICD-GPS-200には,放送歴から衛星位置を求めるアルゴリズムしか
説明されていませんが,下記の論文などで,速度,加速度の
導出方法が示されています.

GPS Satellite Velocity and Acceleration Determination using the Broadcast Ephemeris

ちゃんとした評価をしたことがありませんが,実装してみての実感として,
10秒間隔でも単独測位には十分な精度で衛星位置を近似することができます.

可視のGPS衛星は多くても10機程度なので,1秒に1衛星,放送歴から位置,
速度,加速度を計算するだけて良いことになります.

これでずいぶんと演算負荷を軽減できるのではないでしょうか.
お試しください.

ラジコンカーのRTK測位

$
0
0
良く晴れた実験日和.

RTKの実験にBeagleboneをラジコンカーに積もうとしたけれど,
意外と大きくてかさばる.

RTKLIBがubloxのフォーマットに対応しているのだから,
そのまま送れば良いかと妥協して,xbeeのピッチ変換基板を
その辺のジャンク基板から作成.



そして,合体.



これをラジコンカーに搭載して,roverの完成.



本来であれば,移動体側でRTK測位をすべきだろうけれど,
今回はroverのrawデータを基地局に送信して,そちらで測位.



基準局の受信機もublox.
アンテナは簡易的にカメラの三脚で設置している.



基準局アンテナの位置を精密に求めたいのだが,
一番近い電子基準点でも30kmほど離れている.

さすがに1周波の受信機で,この基線長のRTKは厳しいので,
とりあえずしばらく測位した後,測位結果の平均値を基準局の位置とした.

後はラジコンカーを走らせながら,RTKNAVIで測位するだけなのだが,
まったくFIXしない…





まず怪しいのはアンテナかな.基地局だけでも良いアンテナにすべきか?
あと,ラジコンカーが走行中に飛び跳ね,結構姿勢が安定しない.
それも受信信号に影響しそうだ.

また,20mも離れるとxbeeの通信が切れてしまう.通信は悩みどころ.
roverからrawデータ以外にも,モニタ目的で放送歴や測位結果などを送信している.
rawデータだけに限定してbaudrateを下げれば,もう少し状況が改善される?

それでも,移動体に1Hzの測位だと隙間だらけなので,できれば4Hzくらいに
データの頻度を上げたい.

久々にラジコンカーを走らせたけれど,軌跡をモニタしながらコントロールするのは楽しい.
いろいろと課題の残る実験でしたが,ラジコンも測位も満喫しました.

RTKNAVIの使い方

$
0
0
GPS受信機2台でローカルなRTKを試してみたいと,LEA-4T評価基板
2個購入される方がちらほら.折角なので,ラジコンカーでの実験を例に,
RTKNAVIの基本的な使い方を紹介したいと思います.

走行中の実験では,まったくFIXしてくれなかったので,今回はラジコンカーの
LEA-4Tに直接USBで接続して,静止状態でRTKを試みます.

 (クリックで拡大)

USBで接続されたLEA-4Tは,シリアルポートとして認識されます.
ここでは,基地局がCOM28,ラジコンカーがCOM3に接続されています.

 (クリックで拡大)

RTKNAVIを起動したら,まず画面右上のIボタン(Input Streams)をクリックして,
入力データのインターフェイスを指定します.

 (クリックで拡大)

今回の例では,RoverもBase Stationもシリアル接続ですので,
TypeにSerialを選びます.また,受信機はどちらもLEA-4Tですので,
Formatはu-bloxになります.

 (クリックで拡大)

さらに,Typeの隣のOptのボタンをクリックして,シリアルポートの
オプションを設定します.





u-bloxの受信機をRTKNAVIに接続する場合,受信機出力としてUBXフォーマットの
RXM-RAWとRXM-SFRBが必要になります.RXM-RAWには搬送波位相などの観測データが,
RXM-SFRBには放送歴などの航法メッセージが含まれています.

次に,測位結果を保存するために,Oボタン(Output Streams)をクリックして,
出力データのインターフェイスを指定します.

 (クリックで拡大)

ここでは,PC上のファイルに保存するためにTypeにFileを選びました.
さらに,出力先をOutput File Pathsで指定します.

 (クリックで拡大)

Input Streamsとして入力されるデータも,後解析のためにログとして保存することができます.
L(Log Streams)のボタンをクリックして,ログデータのインターフェイスを指定します.

 (クリックで拡大)

出力データと同様にTypeにFileを選び,Log File Pathsでログファイルを指定します.

 (クリックで拡大)

これで入出力インターフェイスの指定が完了しました.
次に,Optionsボタンをクリックして,RTKのオプションを設定して行きます.

 (クリックで拡大)

まず,Setting1のタブで,Positioning ModeにKinematicを選びます.
Frequenciesは1周波受信機ですので,L1に設定します.

 (クリックで拡大)

Setting2のタブでは,Integer Ambiguity ResとしてInstantaneousを選びました.

 (クリックで拡大)

事前に測位しておいた基地局のアンテナ位置は,PositionsタブのBase Stationで指定します.

 (クリックで拡大)

さて,これで一通りの準備が整いました.Startボタンをクリックして,測位を開始します.

 (クリックで拡大)

しばらくすると,測位結果や受信信号の強度などがRTKNAVIの画面に表示されます.

 (クリックで拡大)

画面右上,Lボタンの下にある三角形のアイコンをクリックすると,表示画面を
切り替えることができます.

 (クリックで拡大)

測位結果をグラフで表示するためには,PlotボタンをクリックしてRTKPLOTを起動します.

 (クリックで拡大)

以上がRTKNAVIの基本的な操作になります.

RTKは結局FIXせず,残念な結果でした.ログファイルに記録した観測データがありますので,
これをRTKPOSTで後処理することで,いろいろな設定を試してみたいと思います.

NAVIO: Raspberry Pi autopilot

$
0
0
DIY Dronesの記事で,NAVIOというRaspberry Piのシールドを知った.

NAVIO: Raspberry Pi autopilot



RTKLIBを動かしているデモも公開されている.
アンテナはTallysmanのようだ.

NAVIO: RTK demonstration

DIY Dronesでのコメントによると,NAVIOの価格は$165らしい.

こういうのを見ると,Beaglebone用のcapeも作りたくなるな.

準天頂衛星アプリコンテスト

$
0
0
準天頂衛星をはじめとした衛星測位サービスを利用する
Androidアプリのコンテストが開催されます.

qzs.jp: 準天頂衛星アプリコンテスト2014の開催について

開催期間中に自作のAndroidアプリをGoogle Playに
アップロードして,ダウンロード数を競うようです.

上位50名に賞品としてNexus 7が贈られますが,
2012年のWi-Fiモデルと微妙.

価格.com: Nexus 7 Wi-Fiモデル 32GB [2012]

それでも,Androidアプリを勉強する良い機会なので,
チャレンジしてみたいと思います.

募集サイトは5月上旬にオープンとのこと.
希望者にNexus 7の貸し出しもしてくれるそうです.
Viewing all 643 articles
Browse latest View live