Ubuntu
ROS

ROS用Ubuntuで最初にやることリスト

ROS用Ubuntuで最初にやることリスト

ROSをインストールしてロボットに搭載するためのUbuntuで使い始めるために必要なことを備忘録としてまとめます.
適宜思い出したら追記していくと思います.

シリアルポート関係

modemmanager をアンインストールする

sudo apt purge modemmanager

こいつがいるとシリアルポートとして認識されるデバイスが認識されてから1分(だっけ?)間デバイスを専有されてしまい他で使えなくなる.
ロボットでこいつが必要になることは無いと思うので,アンインストール.

ユーザをdialoutグループに追加する

sudo usermod -aG dialout ゆーざ名

シリアルポートデバイスは dialout グループとしてデバイスファイルができるので,ユーザを追加しておけば sudo しなくてもシリアルポートを使える.

ネットワーク関係

ホスト情報を設定する

/etc/hostname

にそのPCのユニークな名前を書く.
他のPCと被らない名前にする.
短いほうが楽.

/etc/hosts

の一行目にある

127.0.0.1 localhost

のしたに

127.0.1.1 なまえ

という感じでhostnameに書いたのと同じ名前を書く.

修正したら再起動する.

IPv6 を無効化する

ROSはIPv4を使う前提だったはずなので,IPv6は無効化しておいたほうが面倒がない.

方法 : https://qiita.com/RYOSKATE/items/dcd96d2d940cfd3197bc

apt update の自動実行を止める

sudo systemctl mask apt-daily.service
sudo systemctl mask apt-daily.timer
sudo systemctl mask apt-daily-upgrade.service
sudo systemctl mask apt-daily-upgrade.timer

起動時やネットワークがつながったときに勝手にapt updateされると非力なマシンではCPU使用率が食われるし,携帯電話回線で動かすロボットでは余計なパケットが発生するし,いいことがない.

ssh key を交換する

ロボット上にPCが乗っていて,そこでROSが動いている場合,sshでログインすることが多いかと思います.
その場合に毎回パスワードを入力するのにも面倒なので,さっさとssh keyを交換してパスワード無しでセキュアにログインできるようにしたほうが楽です.

ssh key でログインできるように設定する

ロボットPC上の/etc/ssh/sshd_configを開いて,下記行にコメントがついてたら外す.

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     $h/.ssh/authorized_keys

その後,設定を有効にするため,sshdを再起動する.

$sudo systemctl restart sshd

keyを作って交換する

  1. ロボット上にssh keyを保存する場所を作る

    $ mkdir ~/.ssh
    $ touch ~/.ssh/authorized_keys
    $ chmode 600 ~/.ssh/authorized_keys

  2. 作業PC上でssh keyを作る

    $ cd ~/.ssh
    $ ssh-keygen -t rsa -f robo_rsa

  3. ロボットに送る


    ssh-copy-id -i ~/.ssh/robo_rsa.pub ロボットのユーザ名@ロボットのIP

その他

タイムゾーンの設定と確認

GUIを使わない方法をよく忘れるのでメモ.

設定するとき

sudo timedatectl set-timezone Asia/Tokyo

確認するとき

timedatectl 

NTPの設定 (おまけ)

sudo timedatectl set-ntp true
sudo timedatectl set-ntp false

これを使って,確認した結果が no になってても, chrony は生きて動くっぽい.
ntpd にだけ効果がある?