サーバ構築・運用・監視のネットフォース

ラズパイで作るGPSカーナビ (Raspberry Pi3 + navit + GPSモジュール)

※現在、ラズパイのOSがバージョンアップしており恐らくは仕様が変わっていると思います。そのままでは動かないと思いますが参考程度に。

こんにちは、ラズパイ部です。
部員はきっと2人ぐらいいるんじゃないでしょうか・・・。

ラズパイでカーナビ作りたいなぁと前々から思っていましたが、OSSでカーナビ用の
プログラムが既にあったのを最近知ったのでちょっとやってみました。

完成品(ちょっと画面の映りが悪いですが、下にキャプチャあります)

 

01/12追記

アンテナが小さいせいか、あまりにGPSの感度が悪いのでアンテナだけ変えてみました。感度がかなり向上

navitとraspberry pi3で作るカーナビ

 

輪ゴムマウント。

使ったもの
■ハード
Raspberry pi (できれば3。navit自体シングルスレッド処理で、結構負荷がありました。)
240 x 320 のLCD
メモリカード16G
ケース
GPSモジュール
バッテリー
ケーブル等

■ソフト
GUI環境
gpsd
navit
OpenStreetMapの地図データ

です。

で、まず、GPSの説明を。。

モジュールなんですがUSB接続の物を使うか、GPSモジュールになっているものを使うかで
若干変わってきます。
極力小型化したかったのでモジュールタイプのものを使っていますが、電波状況が悪い状態での
精度が、結構アレでした。GPSのアンテナがちっちゃすぎました。

仕組みとしては
・GPS電波⇒USBのGPS⇒シリアル通信⇒gpsdでソケット通信⇒navitで表示
・GPS電波⇒GPSモジュール⇒UART通信⇒gpsdでソケット通信⇒navitで表示
みたいな事をしています。

navit側で直接デバイスを指定して読み込ませてもいいんですが、
自分は色々試したいのでソケット通信経由での解説になります。

GPSモジュールには別途バッテリーがついています。
このバッテリーで、衛星のアルマナック情報を受信し保存していますが、バッテリーが劣化等で
機能していないとそれらが失われコールドスタートとなり、最初の補足で時間がかかります。
停止してから数時間後起動した場合、どのみち取得しないといけないとは思いますが。

写真はわかり図らいのですが、新しいバッテリーをハンダで付け直しました。

起動画面

navit_02

 

240 x 320のタッチパネル用なので、画面はすごいちっちゃいです。
右はデータロガーを有効にし、gpxデータを読み込んで実際にチャリンコで測定した位置。うーん。。

暫く使ってみた感想ですが

・高いビルの間は位置が激しくずれる(GPSの性能)
・進んでいる方角は、移動方向に合わせるため、徒歩で受信感度が悪いと時々後ろ向きになる
・案内されるルートが、微妙な時が多い
・例えば地下鉄からでて、地上にでた場合、まずどこの方向に進めばいいのかがわからない(笑

とまあ、色々あるんですが、実用性というよりは、自分で調整する事自体が楽しいソフトですね。
どっちかっていうとチャリナビか、徒歩用になりました。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作り方

■GPSモジュールを調達して、どうにかしてくっつける。
手っ取り早いのはUSB接続
TTLタイプ?のGPSモジュールは、ラズパイのGPIOとの通信が必要なのでハンダ付け等が必要。
自分のは
GPIO端子番号 ⇒ GPSモジュール
2(5v) ⇒ 5V
6(GND) ⇒ GND
8(TX) ⇒ RXD
10(RX) ⇒ TXD
です。3V動作の物もあるので接続は注意

■jessieをインストールする。
ライト版じゃない方。
そして、日本語環境に変更

sudo raspi-config

Internationalisation Options
Locale > ja_JP.UTF-8 UTF-8:デフォルトをJP
Timezone > Asia:Tokyo
Keyboard Layout > Generic 105-key (Intl) PC:Other:Japanese:Japanese – Japanese (OADG 109A):The default for the keyboard layout:No compose key:
Wi-fi Country > JP Japan

■データベースの更新

sudo apt-get update

■フォントインストール

sudo apt-get install fonts-vlgothic

再起動

■gpsdがなければ

sudo apt-get install gpsd
sudo apt-get install gpsd-clients

■マウスカーソル消去

sudo apt-get install unclutter

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

# Hide mouse
@unclutter

■UART通信用(USB接続では不要)

sudo systemctl disable serial-getty@ttyS0.service
でgettyを無効化

sudo nano /boot/cmdline.txt
console=seirial0, 115200
を削除

■gpsd 修正 (pi3+jessie の場合、USB接続はttyAMA0)

sudo nano /etc/default/gpsd

DEVICES=”/dev/ttyS0″
GPSD_OPTIONS=”-F /var/run/gpsd.sock -b -n”

※他の場合では ttyAMA0 とかになるかもしれません。
# sudo cat /dev/ttyS0 で実行した場合、そもそも情報が読み込めていない場合はNGです。

再起動

■navitインストール

sudo apt-get install navit

mkdir /home/pi/.navit
cp /etc/navit/navit.xml /home/pi/.navit/

sudo /home/pi/.navit/center.txt
mg: 0xed2156 0x40e28b
※やらなくてもいいが起動時の場所をとりあえず東京にしとく為。終了すると最終場所で上書きされます。
私は書き込み権限を不可にし、常に起動時は特定の場所にしています。

■Navit :: Planet Extractorのデータをダウンロード
http://maps9.navit-project.org/

から、とりあえずざっくりダウンロード(日本全土)

Predefined Area ⇒ Asia ⇒ Japan+・・・
Map Controls ⇒ select
Get map!

で約1Gぐらいのファイルをダウンロード。
落としたファイルは
jpmap.bin
とし、
/home/pi/.navit/
にアップロード

■navit.xmを修正
自分のサンプルは↓に記述してあります。

で、xwindowのメニューからnavitを選ぶか、コマンドラインでnaivtと入力すると起動はします。
ただ、そもそも調整しないと非常に使いづらいので、ここから千行ぐらいのnavit.xmlコンフィグをいじります。あとは頑張って解析して下さいとしか。。。
あまりに長すぎて、とてもじゃないけどブログで書ききれません。ゴメンナイサイ。
ある程度、理解している範囲でコメント注釈を書いてあるので参考にしてください。

ちなみにnavitのWikiありますが英語です。参考にしたURL
http://wiki.navit-project.org/index.php/Index
http://wiki.navit-project.org/index.php/Configuration
http://wiki.navit-project.org/index.php/Configuration/Full_list_of_options
http://wiki.navit-project.org/index.php/OSD
http://wiki.navit-project.org/index.php/OSD_Layouts
http://wiki.openstreetmap.org/wiki/JA:Map_Features

GPSの感度がちょっと厳しいので、別モジュールを取り寄せ中です。
検証したら、またレポを。

・コンパス部分をクリックすると、メインメニュー
・画面を引きすぎると、raspberry piの性能の上限にたやすくいってしまうので、zoomの上限値を制限してあります。
・ある程度zoomを引くと、3D表示解除
・タッチパネルの誤クリックが非常にストレスな為、通常ではクリック無効にし、クリック有効アイコンを押すと有効にしてます。あと、現在地に戻るタイムアウトを延長します。
・3D/2D切り替えボタンは、2Dモードの場合、車両を中央に設定、上を北にします。
・レイアウトは1パターンのみ。昼用夜用の切り替えも無し。
・プロファイルは自動車用、自転車用、徒歩用。
徒歩にすると、目的地まで常に一直線で案内されるだけです。
・地図のアイコンはかなり削ってあります。目的によって随時追加が必要。
・表示アイコンですが、32×32で自作するかデフォルトのものを指定してください。自分の設定ファイルのアイコン種別は以下です

/home/pi/.navit/icon/
2d.png 2D/3D切り替え用
3d.png 2D/3D切り替え用
zoom_in.png ズームイン用
zoom_out.png ズームアウト用
car_highway.png プロファイル:車 高速道路
car_local.png プロファイル:車 一般道路
walk.png プロファイル:徒歩
set_0.png クリック無効
set_1.png クリック有効
none.png 何もなし用

・GPSのロガーが有効になっていて、起動するたびにデスクトップに保存されていきます。不要であれば log enabled=”yes” type=”gpx” ~~~~ のyesをnoにしてください

↓↓↓
navit.xml のサンプル
2017/1/26 諸々修正

© netforce