ソフトウェアセットアップ -Ubuntu MATE-
ライトローバーを動作させせるためには、OSや各ライブラリのセットアップが必要です。
以下の手順で、ライトローバーを動作させるための環境を構築していきましょう。
なお本ページはUbuntu MATEを使用する場合の手順です。
Raspberry Pi OSを使用する場合はこちらをご参照ください。
OSのセットアップと設定
OSのセットアップや、ライトローバーを動作させるために必要な設定などを行います。
Ubuntu MATEのセットアップ
OSの書込み
microSDカードにRaspberry Piに対応したOS「Ubuntu MATE」を書込みます。
Ubuntu MATEのサイトから、Ubuntu MATE 20.04.3 LTS(Raspberry Pi 64-bit)のimgファイルをダウンロードします。
OSのアップデートが行われた関係上、上記サイトからでは20.04のimgファイルがダウンロードできなくなっております。
以下のリンクから「ubuntu-mate-20.04.1-desktop-arm64+raspi.img.xz」をダウンロードし、そちらをSDカードに書き込んでください。
Ubuntu MATE 20.04 アーカイブページ
Raspberry Piの基板が更新されたことで、従来のimgファイルではOSが起動しません。
更新済みのimgファイルを用意していますので、こちらをご利用ください。
ライトローバー用Ubuntu MATE 20.04- イメージ書き込みソフトbalenaEtcherのインストーラーをダウンロードします。
- インストーラーを起動し、balenaEtcherをインストールします。
- microSDをカードリーダーを使ってPCに接続します。
- balenaEtcherを起動します。
- balenaEtcherのFlash from fileから、先ほどダウンロードしたUbuntu MATEのimgファイルを選択します。
- Select targetの項目は、OSを書き込みたいSDカードを選択します。
- Flash!でOSを書き込みます。
Raspberry Piの初期設定
Raspberry Piを起動し、各種設定を行います。
現在Vstoneにて配布しているimgファイルは、2の初期設定をすでに行っております。
ユーザー名とパスワードは以下の通りです。
ユーザー名 : pi
パスワード : raspberry
- VS-WRC201の電源ボタンを押して、Raspberry Piを起動します。
初期設定画面が表示されるので、以下の通りに設定します。- Welcome -> 日本語を選択
- キーボードレイアウト -> Japaneseを選択し、その中からJapanese (OADG 109A)を選択
- 無線 -> 「このネットワークに接続する」を選択し、接続したいネットワークのSSIDを選択
- Authentication required-> 選択したSSIDのパスワードを入力
- どこに住んでいますか? -> Tokyoと入力
- あなたの情報を入力してください -> ユーザー名、パスワード等を設定する
以下のコマンドを実行してユーザーにi2cの実行権限を付与します。
sudo usermod -aG i2c ユーザー名
以下のコマンドを実行して再起動します。
sudo reboot
setup.pyの実行
Raspberry Piの設定変更と必須ライブラリの導入を行います。
手動で作業を行うこともできますが、以下のPythonファイルをご使用いただくことで自動で行えます。
次のリンクを右クリックし、「Save Link As ...」を選択して「ホームフォルダ」に保存してください。
〇setup.pyの実行方法
- ターミナルを起動して次のように入力し、ubuntu_setup.pyを実行します。
sudo python3 ubuntu_setup.py
VNCの設定
ライトローバーをネットワーク経由で他のPCから制御できるようにVNCを導入します。
〇Raspberry Piの操作
-
ターミナルを起動して以下のコマンドを入力し、ディスプレイマネージャーを変更します。
sudo apt install lightdm
-
ターミナルに以下のコマンドを入力し、vncをインストールします。
sudo apt install x11vnc
-
下記のコマンドでvncのパスワードを設定します。
sudo x11vnc -storepasswd /etc/.vncpasswd
-
テキストエディタで/etc/systemd/system/x11vnc.serviceを作製します。(例)nanoを使用する場合は以下のコマンドになります。
sudo nano /etc/systemd/system/x11vnc.service
-
以下の内容を書き込み、保存します。
[Unit] Description=x11vnc (Remote access) After=network-online.target [Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -display :0 -rfbauth /etc/.vncpasswd -rfbport 5900 -forever -loop -noxdamage -repeat -shared ExecStop=/bin/kill -TERM $MAINPID ExecReload=/bin/kill -HUP $MAINPID KillMode=control-group Restart=on-failure [Install] WantedBy=graphical.target
-
以下の3つのコマンドを実行します。
sudo systemctl daemon-reload sudo systemctl enable x11vnc sudo systemctl start x11vnc
-
テキストエディタで/boot/firmware/usercfg.txtを編集します。
sudo nano /boot/firmware/usercfg.txt
-
以下の内容を追記し、保存します。
hdmi_force_hotplug=1 hdmi_group=2 disable_overscan=1
-
一度電源を切り再起動します。
sudo poweroff
-
下記のコマンドでIPアドレスを確認します。
ip addr
〇PCの操作
- ライトローバーと同じネットワークに接続してください。
- ブラウザからREALVNCのダウンロードページにアクセスし、VNC Viewerのインストーラーをダウンロードしてください。
- インストーラーを起動し、VNC Viewerをインストールします。
- インストールしたVNC Viewerを起動します。
- ウィンドウの上部にある入力欄に、先ほど確認したライトローバーのIPアドレスを入力します。
- UsernameにUbuntuのユーザー名、PasswordにはVNCで設定したパスワードを入力します。
ROSのセットアップ
ROS Noeticのインストール
ROS Noeticをインストールします。
基本的には以下のサイトの説明に沿って進めて行きます。
ROS.org Ubuntu install of ROS Noetic
-
ROSリポジトリの設定
ROSのリポジトリをソースリストに追加することで、インストールできるようにします。
ターミナルで次の2つのコマンドを実行してください。echo "deb http://packages.ros.org/ros/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/ros-focal.list
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
続いてインデックスをアップデートします。
次の2つのコマンドを実行してください。sudo apt update
sudo apt upgrade
-
ROS Noeticのインストール 以下のコマンドを実行してROS Noeticをインストールします。
sudo apt install ros-noetic-desktop-full
-
環境変数の設定 ターミナルからコマンドを呼び出して実行する際には、そのコマンドに対するパスが通っている必要があります。
ターミナルを起動した際にROSへのパスが通るように設定を追加します。
ターミナルを立ち上げて以下のコマンドを実行してください。echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc
-
依存ソフトウェアのインストール
ROSのビルドに必要なソフトウェアをインストールします。次のコマンドを実行してください。sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
-
rosdepの初期化
次の2つのコマンドを実行してrosdepを初期化します。sudo rosdep init
rosdep update
以上で、ROS Melodicのインストールは完了です。
catkinワークスペースの作成
その他のパッケージのインストール用に新たにcatkinワークスペースを作成しましょう。
catkinはROS1のビルドシステムです。
ROS Wikiのチュートリアルではcatkin_makeコマンドによるビルド方法が紹介されていますが、ライトローバーではcatkin buildを使用します。
catkin buildはcatkin_makeの後継として作られたコマンドで、catkin_makeで使い辛かった点などが改善されています。
以下のコマンドをターミナルで実行し、catkin buikdをインストールします。
sudo apt install python3-osrf-pycommon python3-catkin-tools
setup.bashを実行します。
source /opt/ros/noetic/setup.bash
次のコマンドでワークスペースとなるフォルダを作成してください。
mkdir -p ~/catkin_ws/src
作成したフォルダに移動します。
cd ~/catkin_ws
catkinワークスペースを初期化します。
catkin init
初期化が完了したら一度ビルドを実行しておきましょう。
catkin buildを実行します。
catkin build
ROS本体と同様に、こちらのワークスペースにもパスが通るように設定します。
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
以上で、ワークスペースの作成が完了です。
lightrover_rosパッケージのインストール
作成したワークスペースにライトローバーをROSから制御するためのパッケージ「lightrover_ros」をセットアップしましょう。
新たにターミナルを立ち上げて、次のコマンドでワークスペースのsrcフォルダに移動します。
cd ~/catkin_ws/src
次のコマンドで、Githubからlightrover_rosパッケージのソースをクローンします。
git clone -b noetic https://github.com/vstoneofficial/lightrover_ros.git
catkin buildします。
catkin build
これでlightrover_rosパッケージのインストールは完了です。
しかし、このままではパッケージに含まれるPythonファイルに実行権限がなく起動できません。
以下のコマンドで権限を付けましょう。
sudo chmod +x ~/catkin_ws/src/lightrover_ros/scripts/*.py
これで実行する準備が整いました。
現在のターミナルはパスが通っていないので、ターミナルを立ち上げ直してパスが通っている状態にしてください。
YDLiDARのセットアップ
ライトローバーに取付けられているLiDAR「YDLiDAR X2」を使用できるように、セットアップを行っていきましょう。
まずは、YDLiDARのSDKをインストールします。
以下のコマンドでホームフォルダに移動します。
cd
SDKのセットアップに必要なパッケージをインストールします。
sudo apt install cmake pkg-config
sudo apt install swig python3-pip
次のコマンドで、GithubからYDLiDAR SDKパッケージのソースをクローンします。
git clone https://github.com/YDLIDAR/YDLidar-SDK.git
以下のコマンドを順に実行し、YDLiDAR SDKをメイクしてインストールしましょう。
cd YDLidar-SDK/
mkdir build
cd build/
cmake ..
make
sudo make install
続いてYDLiDAR用のROSデバイスドライバパッケージを入手します。 ワークスペースのsrcフォルダに移動しましょう。
cd ~/catkin_ws/src
次のコマンドで、Githubからydlidar_rosパッケージのソースをクローンします。
git clone https://github.com/YDLIDAR/ydlidar_ros_driver.git
catkin buildします。
catkin build
続いて、YDLiDAR X2接続時の手間を省くため、シンボリックリンクを張る操作を行います。
Ubuntuにデバイスを接続するとデバイスファイルが作成されてアクセスできるようになるのですが、デバイスファイル名は接続ポートやタイミングによって変わってきてしまうため、毎回デバイスファイル名でアクセスするのは不便です。
次の手順でスクリプトを実行することで、ydlidarのデバイスファイルに対して決まった名前でシンボリックリンクを張るようになりますので、毎回決まった名前でアクセスすることが可能になります。
新しくターミナルを起動し、スクリプトがあるディレクトリに移動します。
roscd ydlidar_ros_driver/startup/
スクリプトファイルに権限をつけます。
sudo chmod 777 ./*
スクリプトファイルを実行しましょう。
sudo sh initenv.sh
スクリプトが完了したらターミナルを再起動し、Raspberry Piに接続されているYDLiDARのUSBケーブルを一度抜差ししてください。
YDLiDARのセットアップは完了です。
以上で、ライトローバーをROSで制御する準備が整いました。
引き続き、ROSとはの項目で、ROSの概要について確認することができます。