目的
この記事は,ラズパイ4にROSとルンバのライブラリを導入して,ルンバを制御することを目的とする.
このような記事は,色んな先人達によって,構築され続け良質なコンテンツがたくさん存在する状況となっている.
しかしながら,それらのサイトたちは,複数ページからなるもの(リンク飛んだりする)が一般的であり,単体のページで
実現できるものは少ないと思う.ということで,自分の備忘録とコピペ等の簡略化のため順番に書いていくこととする.
基本的に,コマンドをつらつら書いていく流れとする.
参考文献等はたくさんありますが,とりあえず完成を急ぐので,後で書きます.
ubuntuのインストール
まずは,SDカードフォッマッターでクリーンにします.
次は,ubuntu18.04.5を書き込みます.
使うソフトウェアはRaspberry Pi Imagerです.
電源をつないで起動する.
ubuntuの準備各種設定
login: ubuntu
pass: ubuntu
そうすると,
パスワードの変更を求められるので,
みんながわかるパスワードに変更する.
WIFIの設定
sudo vim /etc/netplan/50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
access-points:
「ここにSSID名を書く」:
password:「ここにパスワードを書く」
dhcp4: false
addresses: [192.168.11.89/24]
gateway4: 192.168.11.1
nameservers:
addresses: [8.8.8.8, 192.168.11.1]
version: 2
設定項目を反映する.
sudo netplan apply
ip addr
sudo reboot
sudo apt update
sudo apt upgrade
GUI上で動くようにする.
sudo apt install ubuntu-desktop
ROSのインストール
リポジトリが有効かどうか確認する.
grep ^deb /etc/apt/sources.list
手始めにやるやつ.ROSのインストール
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
キーを読み込む?
sudo apt install curl
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
アップデート
sudo apt update
ロスのメロディックをインストール
sudo apt install ros-melodic-desktop-full
その後初期設定を行う.
sudo apt install python-rosdep
sudo rosdep init
rosdep update
次に,環境設定
cd
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
次に,以下のツールをインストールする.
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
create_autonomyのインストール
ライブラリはros-melodicのみしか対応していない.
さらに,新しいライブラリだと,エラーをはくので,
過去のバージョンのものをインストールしないといけません.
sudo apt update
sudo apt upgrade
sudo apt install -y python-rosdep python-catkin-tools libqt4-dev
ワークスペースの作成とビルドについて
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin build
ライブラリのダウンロード
cd ~/catkin_ws/src
git clone https://github.com/RoboticaUtnFrba/libcreate.git
cd ~/catkin_ws/src/libcreate
git checkout 2.1.0
cd ~/catkin_ws/src
git clone https://github.com/RoboticaUtnFrba/create_autonomy.git
cd ~/catkin_ws/src/create_autonomy
git checkout a522e080f267253fa2cba237ad32df5132c9aeb5
cd ~/catkin_ws
./src/create_autonomy/sensors/ca_imu/scripts/install_rtimulib.sh
cd ~/catkin_ws
sudo apt install -y python3-vcstool
vcs import src < src/create_autonomy/dependencies.repos
rosdep update
rosdep install --from-paths src -yi
注意事項
~/catkin_ws/src/viso2/libviso2/CMakeLists.txtと~/catkin_ws/src/viso2/viso2_ros/CMakeLists.txtを
以下内容に変更する.
変更前: SET(CMAKE_CXX_FLAGS -mfpu=neon)
変更後: SET(CMAKE_CXX_FLAGS -march=armv8-a+simd)
~/catkin_ws/src/viso2/libviso2/src/filter.hとmatcher.hに#if defined(ARM_NEON)があります.
その1行上に,以下の処理を書く.
#define __ARM_NEON__
ソースコードのビルド,以下のビルドコマンドでjを大きい数字にすると,インストールが早くなりますが,
ラズパイがメモリオーバーする可能性があるので,そこそこの値で抑える.
cd ~/catkin_ws
catkin build -j1 -DCMAKE_BUILD_TYPE=Release -DARM_CROSS_COMPILATION=ON
ファイルの編集
gedit ~/.bashrc
bashrcの中身の追加事項
export GAZEBO_IP=127.0.0.1
export LASER=rplidar
export NUM_ROBOTS=1
export RVIZ=true
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash
次のコマンドで設定を反映させる.
source ~/.bashrc
ターミナルを2つ開いて,1つ目で以下を実行.
roslaunch ca_gazebo create_empty_world.launch
2つ目で以下を実行する.これで,シミュレーション上でルンバがキーボードで動くはず.
roslaunch ca_tools keyboard_teleop.launch
次は,実機で動かします.ラズパイのUSBポートに通信ケーブルを接続する.そして以下を実行する.
次に,ベンダーID(0403?)とプロダクトID(6001?)をチェックしておく.
lsusb
次のファイルを作成して,
mkdir -p /etc/udev/rules.d/
cd /etc/udev/rules.d/
touch 77-roomba.rules
以下の内容を保存します.ここで,ベンダーIDとプロダクトIDにさっきチェックしたものを書きます.
KERNEL=="ttyUSB*", ATTRS{idVendor}=="ベンダーID", ATTRS{idProduct}=="プロダクトID", GROUP="dialout", MODE="0666"
USBの設定
sudo usermod -a -G dialout $USER
source ~/catkin_ws/src/create_autonomy/ca_bringup/scripts/udev/create_rules.sh
一回電源を落とします.
sudo reboot
ルンバに通信ケーブルを接続してから,ルンバの電源を入れる.そして,以下のコマンドを入れる.
sudo apt install ros-melodic-teleop-twist-keyboard
sudo apt install ros-melodic-teleop-twist-joy
次にターミナルを2つ立ち上げて,
1つ目に以下のプログラムを実行する.
roslaunch ca_driver create_2.launch
2つ目のターミナルで以下を実行
rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/create1/cmd_vel