へっぽこ元ロボコニスト

ロボコンに燃え尽きた自分が日々の出来事を書くだけのブログです twitter:@mozyanari_tech

MENU

2017/10/19(ROSにおけるchronyを使ったオフライン時刻同期)


スポンサーリンク

時刻同期が出来た

 

研究では,複数台のラズパイとノートPCを使ってROSを実行するのですが,ROSではtfを使う際時間同期をしないといけません

なので,chronyやntpdateを使って外部ネットワークにあるサーバに時刻同期します

ですが,学内のネットワークではSSH接続ができなくてロボットに乗せたラズパイに遠隔接続できないし,携帯のテザリングでは携帯を忘れたらロボットを動かせません

 

そして,先生に相談したら無線LANだけを貸してくれました

つまり,外部ネットワークに繋げずにROSネットワークを作らない行けなくなりました

なので,夏前はテザリングで動かして夏シンポが終わってから,ラズパイがノートPCへ時刻同期を行うように設定できるかなとトライしていました

で,今日やっと成功しました

 

主に,参考にしたページはこれです

ja/ROS/NetworkSetup - ROS Wiki

qiita.com

qiita.com

wings2fly.jp

www.server-world.info

l-w-i.net

tech-mmmm.blogspot.jp

www.orangetakam.com

 

もちろん,公式を見ればいいのですが公式で自分が確認できたのは時刻合わせをしないといけないということでした

なので,それぞれで行ったことをまとめます

いじる場所は,ラズパイ,ノートPCともに

/etc/chrony/chrony.conf

です

vimでもemacでどちらでもいいです

ノートPC側

ノートPCには内臓クロックが搭載されているので特に外部に対して時刻同期しなくてもいいものと考えます

なので,ノートPCがラズパイに対して時刻同期を許可すればいいだけです

 

なので

 

allow [ラズパイのIPアドレス]

 

を追加します

こうすることで,ラズパイが時刻同期しようとするのを許可します

IPアドレスは,無線LANの設定から固定のIPアドレスを与えます

 

次に加えるのが

 

local stratum 10

 

です

これは,ノートPCが外部のサーバに対して時刻同期できなくても,ノートPCの時刻は信頼できるものとして,ラズパイが参考できるというものです

普段,時刻同期はネットにつなげば行われるのですが,もし同期できなければ信頼度が16となり,参考にできないようになります

(信頼度は1が最高で15が最低です)

今回の設定では,同期できなければ10の信頼度でもいいなら同期してもいいよというものです

 

ラズパイ側

まず,ラズパイ側ではどこのIPアドレスに対して時刻同期を行うか設定します

 

server [PCのIPアドレス] iburst minpoll5 maxpoll 6

 

これでどこのIPアドレスの時刻に同期するか指定をします

IPアドレスの後ろはオプションですが,参考文献を見ればわかると思います

 

次に行うのは,信頼度に関係なく時刻同期を行う設定をします

 

stratumweight 0

 

これを書けば,信頼度に関係なく時刻同期を行います

 

読み込み,実行

これらは設定した後

sudo /etc/init.d/chrony restart

で設定を読み込みます

 

どちらも,設定して読み込んだ後

ラズパイ側で

sudo chronyc -a makestep

をするとサーバの時刻に強制的に同期します

ですが,何回かしないと時刻同期できません・・・・・

自分は5分ぐらいすると同期出来ました

なぜ,時間がかかるかはわかりません

 

便利なコマンド

date

コマンドライン上に時刻を表示

 

chronyc sources

今同期しようとしているサーバ一覧が表示される

 

chronyc tracking

同期先に関するデータ?が表示される

 

その他

思い出しながら書いてるので,これだけでできる保証はないです

それに余計なコマンドも書いてるかもしれないですが,とりあえず自分はこれで同期が出来ました

とゆうか,忘れたとき用に書いてるだけですのであしからず

 

今,デュアルディスプレイと無線キーボードとマウスで作業していますが,快適で買ってよかったです