LoginSignup
1
1

More than 1 year has passed since last update.

Raspberry pi4を用いたルンバのROS(ros-melodic)制御について

Last updated at Posted at 2022-03-01

目的

この記事は,ラズパイ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
1
1
1

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
1
1