「未分類」カテゴリーアーカイブ

ASUS NUK13ANKにUbuntu18+ROSをインストール

やりたいこと

NUCにUbuntu18系とROSをインストールする.今後の使用を考えているデバイスが,デバイスドライバや既存のプログラムの関係で昔のバージョンの環境しか使えないというのは,組込みあるある.JSKEUSを使いたいので,必要なROS (Melodic)が推奨しているUbuntu 18.04を用いる.

やったこと
  1. ASUS NUK13ANKにUSBメモリからUbuntu18.04 LTS (Bionic Beaver)をインストールする.
    1. USBメモリにブートできるLinuxイメージを入れるやり方は検索すると出てくる.こういう本家からダウンロードして,rufusのようなソフトを使って起動可能なデバイスを作ればよい.
    2. Ubuntu 18.04 LTSとLubuntu 18.04  LTSは両方インストールできた.Lubuntuの方が軽くてLXQtがWindowsデスクトップに近くていいのだが,後から入れるいろいろなもののことがあるので,標準のUbuntuにした.
    3. まずUSBメモリの試用版でブートして,それからインストールした.
    4. Ubuntu 20.04 LTSはUSBメモリから起動するが,なぜかインストールできなかった.
  2. 有線LANにつながるように調整する.
    1. Ubuntu 18.04 LTSの標準カーネルは ver.5.0で,標準的なアップデートでは5.4.0-150-genericまで上がる.
    2. しかし,NUC13ANK 搭載のオンボード LANチップ (Intel I226-V)はver. 5.10以降のカーネルにしか対応していない模様.
    3. そのため,ver. 5.15系のカーネルを入れることにした.ubuntuのメインラインカーネル置き場にv2.6.27.60以降の分は全部あるので,ver. 5.15に拘る必要はないが,ver. 5.10から対応なら少し後のバージョンの方がバグが減ってる気がする.
    4. /usr/srcに移動.v5.15.193/内に各CPUごとのリンクがあるが,intelのもamdのも普通のPCに載っているようなCPUならamd64用のでいい.リンクをコピーして,
      > wget https://kernel.ubuntu.com/mainline/v5.15.193/amd64/linux-headers-5.15.193-0515193-generic_5.15.193-0515193.202509111705_amd64.deb
      などとして4つ(headers, headers-generic, image, modules)をダウンロード.
    5. dpkg -i linux-headers-5.15.193*などとして4つをインストール.
    6. linux-headers-5.15.193-0515193-genericは,インストール自体はされているようだが,依存関係のエラーで設定されなかった.既存のlibc6とlibssl3のバージョンが古いためらしい.v5.15.50とか少し古いバージョンなら大丈夫かもしれないが,未検証.今回はこのままにする.外部ドライバをコンパイルする時などに問題が発生する可能性がある.
    7. 再起動してv.5.15.193のカーネルで起動していることを確認し,LANケーブル挿して通信を確認した.
これからやること
  1. ROS (Melodic)のインストール.ROSについてはここがよくまとめてくれている:ROSによるロボット操作法 Part-1 実機編
  2. ROSをインストール前に,Ubuntuも入れただけではmakeやgccすら入っていないので,build-essentialとcmakeをインストールしておく.
    > sudo apt install build-essential
  3. ROS (Melodic) をROS wikiの通りにインストールする.手順自体はROS jaのものと同様であろう.
  4. JSKEUSのプロジェクト(https://github.com/euslisp/jskeus/)をgithubからクローンする.やり方はここと同様(クローンまで):Git を Ubuntu にインストールしてリモートリポジトリにプッシュする
    1. ROSが入っていたら,apt install ros-melodic-roseusでjskeusも入るらしいが未確認.
    2. jskeusがなくてもkxreusをgithub.com/inabaeus?からクローンすればいいらしいが,稲葉先生のgithubは消えているので??

  5. euslisp/jskeusにある通りにeuslispをインストールして設定する.
  6. (以下のメモがあるが何のことかわからない)
    1. makeの最後にあるメッセージのとおり,source .bashrc する.
    2. 環境変数が必要 export EUSDIR=~/jskeus/eus
    3. .basheus
  7. ここまで再起動していなくて何かうまくいかないようなら,Ubuntuを再起動する.
  8. これでeuslispを使った動作シミュレータ,KXRを使ったロボットをリーダー・CGをフォロワとした遠隔操作シミュレータなどができるはず.
    1. Ubuntu上でのKXR用自作プログラム環境rcb4eusのgit cloneとbuild
    2. ロボットモデル可視化
    3. サンプル動作生成
  9. さらにJSKのロボットの背中にあるradxa zeroを使った物体認証
    1. radxa zero用のディスプレイが別途必要.radxa zeroの方はmicroHDMIだから,それ用のアダプタかケーブルが必要.
    2. radxa zeroのUSB-CポートからRealSense D405カメラ,キーボードを用いるための,USB-C-USB3.0ハブが必要.

私は8.シミュレータまでしか実装していないので,そこから先は自身で確かめてください.