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を作って交換する
- ロボット上にssh keyを保存する場所を作る
$ mkdir ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmode 600 ~/.ssh/authorized_keys
- 作業PC上でssh keyを作る
$ cd ~/.ssh
$ ssh-keygen -t rsa -f robo_rsa
- ロボットに送る
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 にだけ効果がある?
細々した設定
GUI環境があるならTweak Toolを入れる。CAPSとCtrlの入れ替えとか、簡単。