3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rover製作11 ロボット用のNUCの事前設定をする

Last updated at Posted at 2023-08-10

環境

この記事は以下の環境で動いています。

項目
CPU Core i5-8250U
Ubuntu 22.04
ROS2 Humble

概要

EspressoFrameにはメインのコンピューターとしてNUCを搭載しています。
EspressoFrameの電源投入で、NUCの起動->Ubuntuの自動ログイン->ROS2プログラム&Rvizの自動起動が行われるまでの設定を行います。

背景知識

自動起動

NUCに電源を刺したらあとは操作をせずに待つだけで自動でプログラムが起動するように設定します。このためには以下の要素が必要です。

  • (1)NUCのDCプラグに電源が来ると、電源ボタンを押さずに電源ONする。
  • (2)Ubuntuで自動でログインする(GUI表示に必要)
  • (3)ros launchが自動で起動する
  • (4)rvizの画面が自動でGUIに表示される。

このうち(3)はsystemdを、(4)はGUIが絡むのでgnomeのauto-startを使用します。

HWボタンでのシャットダウン

ubuntuのshutdownをせずに、PCから電源を抜くとファイルが壊れる可能性があります。しかしロボットのPCにいちいちsshログインしてsudo shutdown nowするのは面倒ですし、場合によってはネットワークにつながっていないこともあります。
acpiという電源をつかさどるプログラムの設定をして、起動中に電源ボタンを押すとshutdownすることが出来ます。

リモートデスクトップ

Ubuntu22からGUIでリモートデスクトップの設定が出来るようになりました。自動ログインと併用するとパスワード関係の問題が発生します。デフォルトではパスワード用のkeyringはログインしないと解除されませんが、自動ログインではこれが解除されません。そのため自動ログインでログインした場合は、リモートデスクトップ接続が出来ません。
これの対処法としてパスワード設定を変更して平文で置くことで回避します。

事前条件

以下が必要です。

  • WindowsPC
    • インターネット接続
  • USBメモリー
    • パーテーションごと書き換えるので、内容がクリアされます。
  • インストール対象のNUC
    • 有線接続のUSBキーボード・マウス、HDMIモニタ接続

手順

Ubuntuインストールメディアの作成

  • WindowsPCでの作業を行う
  • ubuntu公式サイトより「Ubuntu Desktop 22.04.2 LTS」をダウンロード
  • MicrosoftStoreより「Rufus」をインストールする
  • WindowsPCにUSBメモリーを挿入
  • 「Rufus」を実行する
    • 「デバイス」で挿入したUSBメモリを選択
    • 「選択」でダウンロードしたUbuntuのisoファイルを選択
    • 「スタート」を押すとUSBメモリへの書き込みが始まる
    • 終了したら「Rufus」を閉じる
  • USBメモリを抜く

rufus.png

NUCへのUbuntuのインストール

  • NUCにUSBキーボード、マウスを接続する、HDMIモニターを接続する
  • NUCに上記のUSBメモリを接続する
  • NUCを起動して、画面指示に従ってUbuntuをインストールする

NUCでUbuntuが起動して、ログインできれば完了

追加プログラムのインストール

  • Ubuntu起動後に「activity」から「Terminal」を実行
  • 以下を実行する
追加プログラムのインストール
sudo apt update
sudo apt upgrade
sudo apt install git vim openssh-server

ROS2のインストール

ROS2公式ドキュメントを参照

Ubuntuの自動ログイン設定

  • 「setting」アプリを起動
  • 「Users」タブを開いて、以下の設定をする。
    • 「Automatic Login」:「on」
  • 「setting」アプリを閉じる

プログラムの自動起動

  • vim ~/data/start_ros.shで以下のファイルを作成する(のちに書き換えます)。
~/data/start_ros.sh
#!/bin/bash
echo "start ${0}"
source /opt/ros/humble/setup.bash
echo "end ${0}"
  • sudo vim /etc/systemd/system/ros.serviceで以下のファイルを作成する。
/etc/systemd/system/ros.service
[Unit]
After=network-online.target
Requires=network-online.target

[Service]
User=ubuntu
ExecStart=/home/ubuntu/data/start_ros.sh
Type=simple

[Install]
WantedBy=multi-user.target
  • terminalで以下のコマンドを実行する。
systemdの設定
systemctl daemon-reload
sudo systemctl enable ros
sudo systemctl restart ros

GUIプログラムの自動起動

  • vim ~/data/start_rviz.shで以下のファイルを作成する(のちに書き換えます)。
~/data/start_rviz.sh
#!/bin/bash
echo "start ${0}"
source /opt/ros/humble/setup.bash
echo "end ${0}"
  • 「Activity」にて、「gnome-session-properties」と入力してアプリを呼び出す
  • 出てきたウィンドウで「Add」を押す。出てきた画面で以下の操作
    • 「Name」に「rviz_autostart」を入力
    • 「command」横の「Browse」を選択して上記のshファイルを選択する
    • 「Add」を押す。

電源ボタン押下でshutdownする設定

  • sudo vim /etc/acpi/events/powerで以下のファイルを新規作成する
/etc/acpi/events/power
event=button/power
action=/sbin/poweroff
  • sudo service acpid restartを実行する。

画面OFF防止設定

画面設定(OFFにしない、lockしない)設定->privacy

  • 「setting」アプリを起動
  • 「privacy」タブを開いて、以下の設定をする。
    • 「Blank screen display」:「Never」
    • 「Utomatic screen lock」:「off」
  • 「setting」アプリを閉じる

サイドバーが自動で隠れる設定

  • 「setting」アプリを起動
  • 「Apearance」タブを開いて、以下の設定をする。
    • 「Auto-hide the Dock」をOffにする。
  • 「setting」アプリを閉じる

USB接続デバイスの設定

  • ターミナルで以下を実行
USBデバイス設定
$usermod -aG GROUPS $USER

リモートデスクトップの設定

  • 「activity」から「Passwords and Keys」を選択します。
    • 左のベンドから選択すると「GNOME Remote Desktop RDP credentials」となるものを選びます。
    • 左のベント上のアイテムを右クリックして「change Password」をクリック
    • 「Choose a new pasword for ...」の画面で空欄のまま「Continue」を押す。
  • 「setting」アプリを起動
  • 「sharing」タブを開く
    • 「Remote Desktop」を押す。
      • 「Remote Desktop」をonにする。
      • 「Remote Control」をonにする。
      • 「Authentication」の「Password」を「ubuntu」にする。
      • ウィンドウを閉じる。
  • 「setting」アプリを閉じる

Grubの待機時間を短くする。

  • sudo vim /etc/default/grubでファイル編集
    • GRUB_TIMEOUT=10GRUB_TIMEOUT=2と書き換え
  • sudo update-grubを実行

電源投入でNUCの起動設定

  • NUCを電源OFF状態から電源ONにする。
  • bool中にキーボードの「F2」を押す。
  • bios画面で「Power」->「Secondary Power」を選択する。
  • 「After Power Failure」で「Power On」を選択する。
  • 「F10」を押して、Biosを抜ける

参考

目次ページへのリンク

ROS2講座の目次へのリンク

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?