日記・備考録
Diary/Memorandum

2008 | 2009/ 1 2 3 4 5 6 7 8 9 10 11 12 | 2010
March April 2009
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
May | Home

2009/05/01〜

.....................................................................................................................................

2009/04/30

GT0.6.4の最終試験。

Windows Vista 64bit上でbuildしたmexファイルがWindows XP上で動作しないことが分かって、色々調べる。CコンパイラはVisual Studio 2008 standardを使ったのだが、どうもランタイムライブラリMSVCR90.dllが実行環境で必要の様。コンパイルオプションで/MTを指定するとスタティックリンクしてくれるらしい (参考) ので設定変更して、全部mexを作り直す。これで1時間。次に試験のためとっくの昔にuninstallしてしまっているMatlab 7.0.1をXPに入れる。PLPが見つからないので過去のメールからこれを検索してinstallするのに30分。でもMatlabが正常に起動しない。Javaのバージョン問題かなあ。ということで-nojvmオプション付で起動。でもjavaなしだとパス追加がメニューで出来ない。これはaddpath, savepathコマンドを使えば良いよう。ということでパス追加して、やっとgpstoolsを実行してメインメニューが出た。でもやっぱりv.7.0.1では.mexw32拡張子を認識してくれない。ということで拡張子を.dllに変更して再度全部mexを作り直して実行。でもmexを呼んだところで「Invalid MEX-file」でエラー終了する (mex生成はR2006b)。これを見る限りv.7.0.1 (R14 sp1) とv.7.3 (R2006b) はmexファイルの (下位) 互換性が無いらしい。これでまた1時間浪費。mexをv.7.0.1で生成すればもしかするとR2006bでは動くかもしれない (GT 0.6.3では動いた) が多分R2007a以降では動かないだろう。ということでv7.0をサポート対象にするとmexを3種類 (.dll, .mexw32, .mexw64) 付ける必要があるし、v.7.0.1用構築環境を再度作り直す必要がある。v.7.0.1ではVS2008用コンフィグファイルもサポートされていないので古いコンパイラを使う必要がある。また、v.7.1やv.7.2のパッケージは持っているのだが使う機会が今までなかったので、開封もしていない。これをインストールして動作確認するだけでもまた2時間、3時間はかかりそう。
もう、いい加減に嫌になってきたので、
GT0.6.4のサポート動作環境はMatlab v.7.3 (R2006b) 以降にすることにしました。従ってv.7.0.1 (R14 SP1)、v.7.1 (R14 SP3)、v.7.2 (R2006a) は動作対象外とします (もしかすると動くかもしれませんが)。v.7.3まではGT0.6.3が動くので、v.7.2以前をお使いの方はGT0.6.3を利用下さい。
GT0.6.4の試験は、v.7.3 (R2006b) 32bit on Windows XP SP3, v.7.6 (R2008a) 32bit and v.7.5 (R2007b) 64bit on Windows Vista 64bitで行っています。それ以外の動作環境で動作を保障するものではありません。これ以外の環境で問題が発生する場合は自分でmexを構築して利用下さい。なお、GT0.6.4のライセンスはGPLv3とし、大部分のmexソースプログラムはパッケージに添付する予定です (一部軌道決定関係のソースプログラムは未添付)。

.....................................................................................................................................

2009/04/29

RTKLIB 2.2.1もやっと安定してきたので、少し評価結果を。少し分かりにくいがRTK解の違い。同じアンテナ/受信機で条件を変えてRTK解を求めた。上の3点は左からRRS (基準点0263), VRS, RRS (0979) で基準点座標としてRTCMで送ってくるものを使ったもの。下の2点は左からRRS (0263), RRS (0979)で基準点座標は2007/1/1のF2解を使ったもの。ちゃんと調べていないが、NGS NRTKの座標系は測地成果2000 (1997/1/1元期) を基にしているのでないかと思う。F2解は (細かくは議論があるが) ITRF2000基準のはずだからその差が出ているのではないか。でも10cm近い差は約10年の地殻変動にしては大きすぎる気もする。今後、日本での測量には地殻変動による座標系歪みを補正するためのセミ・ダイナミック補正が導入されるはずで、絶対座標が重要な場合はこの辺の取扱いをきちんとする必要がある。

補足: VRSの地殻変動補正についてはGPSデータサービスのwebに一応説明がある (PDF) のだが内容は全然分からない。全般的にNGSの技術サポートにはあまり期待しないほうがよさそう。(17:55追記)

.....................................................................................................................................

2009/04/26

u-blox, UBX-TN-09001-A1 PCN-Product Change Notification LEA-5H/T; TIM-5H with FW 6.00, 23 April, 2009
u-bloxのwebに正式に掲載された様なので貼っておく。F/W 6.00からLEA-5Tがraw出力対応になるとのこと。出荷は6/15から。既存のLEA-5TのF/Wを利用者側でupdate可能かは不明。これは未確認情報だがAntaris 4に比較してu-blox-5は大幅に帯域幅が広げられていると聞いた。これはコード雑音やマルチパス特性が良くなる可能性があるということ (昨年LEA-5H F/W 3.00を使って評価した結果では差は出ていない)。また感度は間違いなく良くなると思われる。ただしGalileoにはまだ対応していない様だ。いずれにしても早く評価してみたいものである。

補足: LEA-5Tのrawデータ仕様がまだ公開されていないが、LEA-4Tのrawメッセージ (RXM-RAW, RXM-SFRB) と互換性があるのなら、既にRTKLIB 2.2.0を使えばLEA-5TをRTK-GPS受信機にすることが出来る。もし異なっている場合は、LEA-5Tを入手し次第RTKLIBの将来の版で対応予定。(16:52追記)
今見たらPCNがレビジョンBに更新され、sample 5/20、first shipment 7/1に変更になった様だ。(4/27追記)

.....................................................................................................................................

2009/04/25

自分で開発するソフトのリリースは論文原稿のように〆切がある訳ではない。と言う事で宣言しないとまた気に入るまで弄り始めてずるずると行きそうなので、ここでリリース日を宣言しておく。この期限に間に合わない機能は次のリリースに回す。また不具合が残る場合は今後パッチで対応する。

・GT 0.6.4 : 2009/4/30
・RTKLIB 2.2.1 : 2009/5/17

.....................................................................................................................................

2009/04/21

RTKLIB 2.2.1続き。
機能的にはほぼ完了なので、少し長期でOEMVとVRS/RTCM3を使ってNRTKの評価をしているのだが、どうも安定しない。予想される性能より明らかに劣化している。なんかどこかに新しいバグを作りこんだのかもしれない。5月中旬にはリリースしたいのと、5/21,22の発表にはver. 2.2.1の結果を出したいのだけど、今のままだとちょっと厳しいかもしれない。

補足: 5/22の発表プログラムがupされていたので貼っておく (PDF) 。ちゃんと理解していないのだが電気学会と航海学会共催のこじんまりとした研究会の様である。誰でも無料で聴講できるようなので、(連合大会のように参加料もいらない) ご興味をお持ちの方はぜひご参加下さい。(16:50追記)
事情は良く分からないが航海学会の単独開催となったと連絡があったのでこちらのプログラムを貼っておく (PDF) 。やはり聴講は自由の様である。(4/25追記)

.....................................................................................................................................

2009/04/20

GPS Daily, China To Offer Free Global Navigation By 2020, April 20, 2009
中国の関係者から取材したCompassの計画についての記事。この記事によれば、Compassは2010年または2011年前半には中国およびその近隣地域をカバーし、その後2020年までに全世界に拡張される。Compassは民生利用者に無料で10m以内の測位精度を提供する。Compassの第1フェーズは12機の衛星、第2フェーズは少なくとも30機の衛星で構成される。Compassの全予算は数100億元、第1フェーズだけでは100億元以上 (現為替レートは$1=6.82元) とのこと。
「近隣地域」には日本が含まれると思われるので、順調に行けば、日本ではGalileoより先にCompassが利用可能になるかもしれない。ただ中欧間で周波数割り当て調整の決着がまだついていないので計画が遅れる可能性も当然ある。少し本格的にGPS+GLONASS+Galileo+Compass+QZSS+MSASというシミュレーションをやってみようかなあ。

.....................................................................................................................................

2009/04/19

F.V.Diggelen, A-GPS: Assisted GPS, GNSS, and SBAS, Artech House, 2009
Amazonの予約注文で届いた最新刊。内容はA-GPS, Instant GPS, High sensitivity: Indoor GPS, Long-Term Orbit, Future A-GNSS 等、主にGPS/GNSSのTTFFと感度を改善するための補強技術全般。系統だったA-GPSの解説はそれほど多くないので貴重な参考書だと思う。筆者はBroadcomのエンジニアの様。しかし全般的にこのArtech HouseのGNSS技術シリーズはレベルが高い。

.....................................................................................................................................

2009/04/16

先日打ち上げられたGPS Block IIR-M SVN49/PRN01が信号送信を開始した様だ。下はHemisphere Crescentでの受信例。衛星ステータスはまだUnhealthyとされている。アルマナックに含まれていないせいかGEONET局のTrimbleでは受信出来ていない。

補足: 今、手元にある全部の受信機 (NovAtel OEMV, OEM3, ublox AEK-4T, EVK-5H, SS2, Crescent) で確認してみたがPRN01の信号を追尾できるのはCrescentのみの様だ。(19:13追記)

-------------------

ION向け低価格RTK-GPS受信機用の主要部品。左がBeagle Board Rev.B7, 右がRev. C2。それとu-blox LEA-4T×4。ADI ADIS16350。LEA-4Tはアムテックスさん経由でずいぶん安い価格で買えた。いつもありがとうございます。構成を変えて2式製作の予定。概ね部品はそろったのだけどまだ全然触っていない。基板設計もまだ。Olimexだと10×8cmの基板が2枚 \5,000位で作れそうなのでやっぱりこっちに頼もうかと思っている。まずはAEK-4TとBeagle Boardを繋いで動かすところから。

.....................................................................................................................................

2009/04/15

SpaceFlight Now, Navigation satellite deployed in Chinese launch, April 14, 2009
CRIEnglish.com, China Launches Second Navigation Satellite, April 15, 2009
2009/4/14 16:16 UTC、2機目のCompass衛星 (Compass G2)、中国Xichang Space Launch CenterからLong March 3Cロケットで打ち上げ成功。SpaceFlight Nowの記事ではCompass G2は静止衛星、2007/4月に打ち上げられた1機目はMEO衛星とのこと。CRIEnglish.comの記事では1機目は静止衛星とあり、食い違いがある。

-------------------

RTKNAVI 2.2.1の最終UI。Ground Trackの別ウインドウ化、両SNRモニタ追加、タスクトレイアイコン化追加、入出力ストリーム設定分離等の改良をはかっている。ところで下は、OEM3 - 実基準点 0263 基線のRTK画面だが、GEONET局はL2 C/N0がNovAtelに比較し低い。特に低仰角でずいぶんと信号レベルが落ちる様だ。これはアンテナと受信機 (Trimble 5700) の両者の特性だろう。

.....................................................................................................................................

2009/04/14

現在、RTKLIB ver.2.2.1のデバッグ用に海洋大研究室のNovAtel OEM3受信機 (PWRPAK-II-RT2) を借りてきて評価しているのだけど、観測データ品質そのものは最新受信機 (OEMV) とあんまり差は無い様だ。機能的には、CH数が少ない (12ch) とか、SBASが受からないとか、RTCM3が出力できないとか、USB I/Fが無いとか使いづらい点はある訳だが、生データやRTCM2を使うだけならそんなに問題ない。何でこういうことを書くかというと、調べるとebayで$100以下の中古が結構出ている (Google: ebay+PWRPAK+NovAtel) からで、これを使えば激安RTK基準局を構築可能となる。
問題はちゃんと動くかどうかということなのだが、これは買ってみるしかない。送料も含めると$100を超えてしまうが、これ誰かチャレンジしてみません。

補足: 借りてきた受信機はRT2なのでRTK用F/Wが含まれている。ためしにOEMVからRTCM2を出力させてOEM3に入力して、RTKの動作を確認したが問題なくFIX解が得られた (基線長は1m)。少しFIX時間がかかるとか場合によっては全然FIXしないとかちょっと使いこなしにはコツが必要そうだがそれほど問題ない。従って中古のRT2+RT20を買えば$数100で2周波移動体RTK-GPSが可能になる (2周波アンテナは別途必要だが)。(23:05追記)
OEM3 RAW + RTKLIB 2.2.1 + NGS VRSの構成も評価中だが、性能は問題ない様だ。(23:10追記)

$100以下の出物は主にRT20でこれは1周波受信機。RT2が2周波受信機で、これは概ね$200〜300はする様だ。(23:30追記)

-------------------

Inside GNSS, China to Launch Second Compass (Beidou-2) Satellite, April 13, 2009
中国が2機目のCompass MEO衛星を4/15に打ち上げるとのこと。中国は今年と来年で10機のCompass衛星を打ち上げると表明しているがその最初の衛星となる。ロケットは、Long March 3 (長征3号)。なお1機目のCompass MEO衛星は2007年4月に打ち上げられている。
ところで、CompassはFOCでGEO 5衛星+MEO 30衛星で構成されるが、既にBeidou-1として打ち上げ済みのGEO衛星がこれに含まれるのかよくわからない。(FOCまでまだずいぶんあるので、FOCには打ち上げ済みのGEO衛星は衛星寿命が尽きていて再度打ち上げる可能性が高いが)

.....................................................................................................................................

2009/04/13

Type 1005の問題は38bitのデータフィールドをunsigned intで切り出そうとしていたバグと判明。修正して正常動作するようになった。RTKLIB 2.2.1は機能的にはこれでほぼ完了。サポートメッセージはRTCM2: 1, 3, 9, 14, 16, 17, 18, 19, 22、RTCM3: 1002, 1004, 1005, 1006, 1019。GLONASS系は2.3以降に回す。あとNovAtel OEM3 (Millennium) 対応を追加。RTCM追加に伴い受信機関連コードは全面書き換え。見通しが悪かったコードがずいぶん整理されたと思う。

.....................................................................................................................................

2009/04/12

初のNRTK解 by RTKNAVI 2.2.1b + NGS RRSサービス。受信機はOEMV。基線長6.9km。プロトコルはNtrip+RTCM3。RTCM2/3の実装で思ったより時間がかかってしまった。まだ少し不安定な感じなのと、RTCM3だとtype 1005で基準局座標がちゃんと取得できない。ネットワークレイテンシは十分小さい。10Hzで測位させた際のAge of Differential で最大でも2秒程度。なおこれは回線がADSLなので携帯回線だとこれに携帯基地局-端末間レイテンシ (通常数10〜数100ms) が加わる。VRS (仮想基準局) と RRS (実基準局) のの違い、移動体での性能劣化、低価格1周波受信機での実用性、等々研究テーマになり得る評価項目は一杯ある。今回の改訂で次版 (ver. 2.3) に向けて他GNSS用のフックを沢山入れたので、今後できればGLONASSを入れて評価したいのだけど、これはGEONETがGLONASS対応にならないとどうしようもない。

.....................................................................................................................................

2009/04/11

覚書: NovAtel Convert4のバージョンによる受信機生観測値のRINEX変換結果の違い。MSASだけ擬似距離と搬送波位相の観測値に差が出る。3.5.0は擬似距離の値が明らかにおかしい。これはConver4のバグだろう。(観測型はC1 L1 D1 S1の順)

Convert4 3.2.1 : 37168635.60947 195322525.12147 -0.52347 45.000 
Convert4 3.5.0 :  3614203.60947  19161757.12147 -0.52347 45.000
RTKCONV 2.2.1b : 37168635.609   195322525.1211  -0.523   45.000

-------------------

GPS World, L5 GPS Signal Now Being Transmitted from IIR(M)-20 Satellite, April 10, 2009
先日打ち上げられたGPS Block IIR-M衛星 (SVN49/PRN01) からL5信号の送信が開始されたようだ。GPS Wingの関係者もこれで一安心といったところだろう。

.....................................................................................................................................

2009/04/09

高須, RTK-GPS用プログラムライブラリRTKLIB ver. 2.2の評価および応用, 地球惑星科学連合講演会, 2009/5/18-21, 幕張メッセ
5/21朝一の発表になってしまった。まだ細かい内容は未定だができればver.2.2.1での評価結果を出したい。ver.2.3.0bの結果も可能なら出したい。実は次の日 (5/22) に電気学会/航海学会共催の研究会でも同じような発表をする予定だが、こちらは聴講者が工学者主体なので内容は変えるかもしれない。せっかく一般公開したので今年度前半はRTKLIBの宣伝を色々な所でやるつもり。

.....................................................................................................................................

2009/04/08

Google Earth COM API Documentation
ちょっとGEについて調べていたらGEのCOM APIが公開されていたので貼っておく。他APからGEを操作するにはKMLファイルを出力してその中で自動周期更新を指定する方法がある。GpsGateではこの方法が使われていたが、ファイルI/Fになるのでアクセス衝突の回避処理が必要になるし更新周期も上げられない。その点COMを使えば直接GEの操作や情報取得が可能になる。ということでRTKNAVIの次版か次々版にはこれを使ってGEに測位結果を出力するオプションをつけよう。

.....................................................................................................................................

2009/04/07

GPS World, L5 Signal Activation Anticipated for Thursday, April 6, 2009
先日打ち上げられたGPS Block IIR-M (SVN49/PRN01) が、4/10からL5信号の送信を開始するとのこと。SRI (Stanford Research Institute) ではこれを記念して45m鏡で初L5信号を受けるイベントを開催するらしい。しかしあんな巨大なパラボラでGPSがホントに追尾できるのだろうか。

補足: LEO衛星でも仰角65度までは追尾できる様なので視線移動速度のずっと遅いGPSは天頂付近を通過するのでなければ問題なく受かりそう。(10:58追記)
この文書を読むとL5信号は"data-less mode" で運用され "operational capability" は持たないとのこと。従って完全にITUのL5送信開始期限をクリアするためだけに開発されたペイロードの様だ。もしこのL5ペイロードに不具合が発生したら、8月の期限までに打てる手立ては既にないはずである。そういった意味で2009/4/10はGPSにとって歴史的な一日であるとも言える。(11:30追記)

.....................................................................................................................................

2009/04/05

なんかここのところRTCMのプログラム上の些事を書き連ねているが、これは自分のメモ用なので興味ない方は無視してください。

-------------------

覚書。昨日書いたRTCM2デコードアルゴリズムのコード例。最後にwordをクリアするのも忘れずに (L29)。これがないとメッセージ中にpreambleパターンが含まれる場合に次メッセージ同期に失敗する場合がある。

extern void decodertcm2(FILE *fp)
{
    int i,c,nword=0,nbit=0,nw=0;
    unsigned int word=0;
    unsigned char preamb,buff[256];
    
    while ((c=fgetc(fp))!=EOF) {
        if ((c&0xC0)!=0x40) continue; /* upper 2bit must be 01 */
        for (i=0;i<6;i++,c>>=1) {
            word=(word<<1)+(c&1); /* decode 6-of-8 form */
            
            if (nword==0) { /* frame-sync */
                preamb=(unsigned char)(word>>22);
                if (word&0x40000000) preamb^=0xFF;
                if (preamb!=0x66||!decodeword(word,buff)) continue;
                nword=1; nbit=0;
                continue;
            }
            if (++nbit<30) continue; else nbit=0;
            
            if (!decodeword(word,buff+nword*3)) {
                nword=0; word&=0x3;
                continue;
            }
            if (++nword==2) nw=buff[5]>>3; /* number of words */
            if (nword<nw+2) continue;
            
            decodemsg(buff,nword*3); /* decode messages */
            nword=0; word&=0x3;
        }
    }
}

.....................................................................................................................................

2009/04/04

覚書。RTCM2.3が受信できるようになったので、解析したNGSのVRS/RRS RTCM 2.3 Ntripストリーム (http://ntrip.gpsdata.co.jp:80) の内容と周期を以下に貼っておく。VRSのtype 59 (proprietary message) は内容不明。RRS, VRS共にデータ配信を受けるためにはNMEA GPGGAメッセージをサーバに投げる必要がある。RRS局の選択も送信したGGAの位置に従って行われる。移動体でRRS局のハンドオーバーがちゃんと行われるかは今後評価してみる予定。

RRS_RTCM23: 3 (10), 18/19 (1), 22 (10), 23/24 (20)
VRS_RTCM23: 3 (5), 9 (1), 18/19 (1), 22 (5), 23/24 (5), 59 (10)

なお使ったNGSのNRTKサービスは大学の研究室予算で研究開発用に年間契約してもらったものである (日本GPSデータサービス)。

補足: VRSのtype 3, 22が5s毎なのは5s毎にNMEAを投げているからもしれない。なお現在のサーバはTrimble GPSNet 2.6ないし2.7とのこと。これはNGSの営業の方から聞いた (4/5追記)。

-------------------

覚書。RTCM2の端末インタフェースには通称"6-of-8" formatと呼ぶ型式が使われる。一応RTCM 2.3の5.3 Important Interface Rules に説明があるのだが大変分かりにくいので参考。RTCM2を読み込むのには、各バイトデータから下位6bitを抽出してビットを反転させて繋げてから、preambleを頭から検索して30bitワードを切り出し、昨日書いたGPSのparity algorithmでparity checkをしてフレーム先頭を確定する。各wordはparity algorithmに従ってデコードされているのでpreambleが反転している場合があることに注意 (昨日はこれで嵌った)。フレーム先頭が決まればword 2に含まれるワード数を読み込んでメッセージフレームを切り出せる。問題はGPS parity algorithmでは前wordの最終2bitを使うので、RTCMメッセージ間にRTCM以外のメッセージが挟まっていると3/4の確率でフレーム同期に失敗することである。従って基本的に他メッセージを混在させたり、カプセル化のためのヘッダ/トレーラを付加してはいけない。下に書いたように実際のストリームではRTCMメッセージ間にCR LFが挟まる場合が多いようだ (これはRTCMの規格には見つからない) がこれは上位2bitが 01 以外のバイトを無視すれば良い。RTCM 2.3にはRTCM word boundaryがbyte boundaryに一致することは期待すべきでない、と書いてあるが実際のNovAtel OEMV、OEM3受信機、NGSのNRTK (VRS/RRS) サービスのNtripストリームではword boundaryとbyte boutndaryは一致している。ただ他の受信機やサービスで成り立つかは保証の限りではないのでフレーム同期処理はbyte単位ではなくbit単位で行う必要がある。といった様に、RTCM 2はフレームの切り出しだけで大変面倒なのだが、(まだ実装はしていないが) RTCM 3ではbyte指向のプロトコルに改良されている様だ。

補足: 7bitしか通らないのは少し古い回線用に設計されているということかもしれない。(4/5追記)

-------------------

覚書。NovAtel OEMV受信機でのRTCM (ver.2) の出力用startup/shutdownコマンド。
FIX POSITIONを送らないとRTCMを出力しないので注意 (これが分かるまでちょっと苦労した)。INTERFACEMODE RTCMではRTCMメッセージ間にCR LFコードが挟まる。これが嫌な場合はINTERFACEMODE RTCMNOCRとする。

interfacemode novatel rtcm
fix position 35.872953 138.389647 954.3
log rtcm1 ontime 1
log rtcm3 ontime 10
log rtcm1819 ontime 1
log rtcm22 ontime 10
@
interfacemode novatel novatel
unlog rtcm1
unlog rtcm3
unlog rtcm1819
unlog rtcm22

ところで、調べてみるとRTCM 17 (2.3) や1019 (3.1) のephemerisメッセージをサポートしている受信機は少ないようだ。NovAtelも未サポートである。RTCM出力さえあればどんな受信機でも接続できると思っていたのだが、生データ未サポートの受信機でephemerisをどう持ってくるかは結構難題である。

補足: RTCM 3 type 1019 GPS ephemerisは3.1で追加されたメッセージなので少し古い受信機F/Wではサポートされないケースが多い。NovAtel OEMVの最新F/W 3.500のマニュアルを調べてみると、ログ種別が追加になっていたのでウチの受信機でも出力可能のはずである。Source Tableを見るとリアルタイムIGS局などでも1019を出力する局は結構ある。ただ、RTCM2 type 17は殆ど使われていない様だ。(19:00追記)

.....................................................................................................................................

2009/04/03

覚書。GPS navigation data wordのデコード用コード。結構面倒。ICDからHammingコード抜き出したり、これを書くだけで半日かかっている。RTCMのデコードで必要になった。性能に効く所なので本当は最内ループをテーブル引きにする等最適化したいところ (ビット数の奇偶判定しているだけなのでアセンブラ使えばもっと速いかも)

/* decode navigation word ------------------------------------------------------
* check party and decode a navigation word
* args   : unsigned int word I navigation word (2+30bit)
*                              (previous word D29*-30* + current word D1-30)
*          unsigned char *buff O decoded navigation data without parity
*                              (8bit x 3)
* return : status (1:ok,0:parity error)
* notes  : see IS-GPS-200D 20.3.5.2 user parity algorithm
*-----------------------------------------------------------------------------*/
extern int decodeword(unsigned int word, unsigned char *buff)
{
    const unsigned int hamming[]={
        0xBB1F3480,0x5D8F9A40,0xAEC7CD00,0x5763E680,0x6BB1F340,0x8B7A89C0
    };
    unsigned int parity=0,w;
    int i;
    
    if (word&0x40000000) word^=0x3FFFFFC0;
    
    for (i=0;i<6;i++) {
        parity<<=1;
        for (w=(word&hamming[i])>>6;w;w>>=1) parity^=w&1;
    }
    if (parity!=(word&0x3F)) return 0;
    
    for (i=0;i<3;i++) buff[i]=(unsigned char)(word>>(22-i*8));
    return 1;
}

補足: 結果をバイト配列に出力するようちょっと更新。 (4/5追記)

.....................................................................................................................................

2009/04/02

引き続きRTKLIB 2.2.1。
まずはご要望のあったNovAtel OEM3 binary対応。次にRTCM2.3とNtripのNMEA request対応。その次にRTCM3.1対応 (もともとは3.0の予定だったが3.0にはephemerisメッセージが無いことが分かって3.1で行くことにした)。あと、コンソールAP機能拡張とLinux対応。5月後半に2件RTKLIB関係の発表を行う予定なのでできればその前にver.2.2.1のリリースをしたいなあ。

.....................................................................................................................................

2009/04/01

2009 International Symposium on GPS/GNSS, November 4-6, 2009, ICC Jeju, Korea
今年のGPS/GNSS国際シンポジウムは11/4-6に韓国の済州島で開催。アブスト〆切6/15、論文〆切9/30。日本から近いし、とても綺麗な島らしいので出来たら行きたいなあ。

-------------------

RTKLIBについていくつか頂いている問題の調査と対応。(→RTKLIB: Support Information)

ところで、HemisphereのCrescentボードは1Hz出力までしか対応していないと思っていたのだが、10HzまでRaw出力が可能なことが分かった。MSASも問題なく受かるしデータ品質も良いのでu-blox LEA-4Tとどちらが良いかは微妙。ただアンテナにスプリッタを介しただけで信号レベルがガクッと落ちるとかコードのランダムノイズが大きいとか結構癖がある。前Navtechで買ったときは$285だったが、今見るとpriceが消されている。数千ドルクラスの受信機内蔵のものと同じはずなので$300以下で買えるなら結構ディスカウント価格とも言える (逆に受信機がボッタクリだとも言える)。あと、Superstar IIはどうやってもMSASが受からないなあ。一応SBAS用のメッセージはあるのだけど。なんか手立てはあるのだろうか。

.....................................................................................................................................

〜2009/03/31


Home by T.Takasu