5
4

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.

ROS2環境構築 <Part 2-1> TurtleBot3(実機)のセットアップ/Raspberry Pi 3B+

Last updated at Posted at 2022-10-21

はじめに

TurtleBot3をROS2で動かした際の忘備録(1)です
(waffle pi と burger 両方で確認済)
同じネットワーク内のPCからTurtleBot3をリモート操作します

Raspberry Pi 4B バージョンの場合は下記別記事参照
https://qiita.com/pez/items/1251c7ad0a21fd6f0a48

・リモートPCにVirtualBox+Ubuntuが導入済み(下記別記事参照)
https://qiita.com/pez/items/a3ef1855f7e1e0ed3dfd
・リモートPCにROS(ROS2 Foxy)がインストール済み(下記別記事参照)
https://qiita.com/pez/items/1df36628524ff40a3d93

・TurtleBot3は組立て済み

の状態からを想定しています

環境

リモートPC (Panasonic Let's Note CF-FV)

・OS: Windows11 Pro (64bit)
・VirtualBox: 6.1.38 (Ubuntu20.04.5, GUI環境)
・ROS: ROS2 Foxy

ロボット

・TurtleBot3 waffle pi (Raspberry Pi 3B+)
 または
・TurtleBot3 burger (Raspberry Pi 3B+)

Raspberry Pi 4B バージョンの場合は下記別記事参照
https://qiita.com/pez/items/1251c7ad0a21fd6f0a48

その他

・microSD カード
 16GB以上あればOK

TurtleBot3用のイメージファイルをダウンロード

ラズパイのハードウェアのバージョンを確認
※このページでは Raspberry Pi 3B+ を使用しています

ラズパイ(TurtleBot3にて)
$ cat /proc/device-tree/model

以後の手順は下記公式サイトを参考にしています
(ページの上の方で「Foxy」を選択する)

使用するTurtlebot3に合わせてイメージファイルを選択しダウンロード:ここでは「Raspberry Pi 3B+」のROS2 Foxy image
具体なファイル名は「tb3_rpi3b+_foxy_20210715/tb3_rpi3b+_foxy_20210715.img」でした

イメージファイルの準備

ダウンロードした iso ファイルを microSD カードに書き込む
色々方法はあるかと思いますがここでは Disk Imager を使いました

※環境によってはかなり時間がかかる場合があります
できるだけデータ転送速度が速いもの(USBならGen3以降とか)を使うとよいと思います

micorSDの未割り当て領域を有効に

上のリンクの公式サイトではGPartedなどを使ってパーティションのリサイズをしなさいとありますが,今回はやろうとしたら何もしなくても全領域使ってパーティションが切られていたので何もせず

TurtleBot3を起動・初期設定

書き込みできた microSD を TurtleBot の RaspberryPi に挿入して起動する
waffle pi だとこんな感じ↓で入れにくいですが burger の方は手で何とかなります
図15.png

・ユーザー名:ubuntu
・パスワード:turtlebot

となっています.

下記やったことのメモ(全てTurtleBot3のUbuntuでのコマンド入力)

キーボードレイアウト修正
$ sudo dpkg-reconfigure keyboard-configuration

Generic 105-key(Intl) PC → Japanese → Japanese → The default for the keyboard layout → No compose key

再起動
$ reboot
wifiの設定
$ cd /etc/netplan/
$ sudo vi 50-cloud-init.yaml

・access-points: の下の行に繋げたいwifiのSSIDを記入
・さらにその下 password: [パスワードを記入], 保存して終了

また再起動
$ reboot
wifiが繋がっていることを確認
$ ifconfig

※ifconfig が入っていない場合は sudo apt install net-tools

apt-get updateでエラー
$ sudo apt-get update

E: Release file for http://~~~~~  is not valid yet ~~~
 (という感じのが4行ほど)

時刻がずれていることが原因らしいので修正しなくてはいけない

Raspberry Pi の時刻の同期について

まずは確認
$ timedatectl

→ 1年以上前の日時が表示された

timezoneを日本にする
$ sudo timedatectl set-timezone Asia/Tokyo

次に「timedatectl」関連で設定を試みたのですがなかなかうまくいかず・・・
System clock synchronized: が何をしても yes になってくれないなと思いながら調べたところ,どうやら私の職場のネット環境のせい(ntp通信が許可されていない,外部へのpingも帰ってこない)らしいということが分かった.実際,自宅のWiFiに繋いだらあっさり同期できた.

仕方ないので職場では時計を見ながら手動で合わせて乗り切ることにする
(再起動する度に時間がずれるが・・・)

手動での時刻合わせ
$ sudo date --set='yyyy/mm/dd hh:mm:ss'

(例) sudo date --set='2022/10/27 09:18:55'
とりあえず apt-get update などはできるようになる

$ sudo apt-get update

OpenCRのファームウェア更新

※OpenCR:Turtlebot3のラズパイにくっついている制御用ボード
基本的に公式サイトの通りなのでここはメモ書き程度

ファームウェアのインストール
$ sudo dpkg --add-architecture armhf
$ sudo apt update
$ sudo apt install libc6:armhf
OPENCR_MODELの指定
$ export OPENCR_PORT=/dev/ttyACM0
$ export OPENCR_MODEL=waffle_pi
$ rm -rf ./opencr_update.tar.bz2
$ wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS2/latest/opencr_update.tar.bz2
$ tar -xvf ./opencr_update.tar.bz2
アップロード
$ cd ~/opencr_update
$ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr

ここで最後の行に
failed to set dtr/rts
という気になる表示が出ていたが調べても原因は分からず
放置してもロボットは動くらしいのでスルー

音が鳴る(ドレミファソラシド)
完了の合図?

Lidarの設定

ここで使うTurtleBot3のLidarは「LDS-01」だったので下記を実施

$ echo 'export LDS_MODEL=LDS-01' >> ~./bashrc
$ source ~/.bashrc

設定確認/.bashrc

※ここからはTurtleBotだけでなくリモートPCの方のターミナルでもコマンド入力します

TurtleBotとリモートPC両方で ~/.bashrc の中を確認する

$ sudo vi ~/.bashrc

export の部分

TurtleBot, リモートPC共通
export ROS_DOMAIN_ID=30
export TURTLEBOT3_MODEL=waffle_pi
export OPENCR_MODEL=waffle
export OPEN_PORT=/dev/ttyACM0
export LDS_MODEL=LDS-01

burgerの場合はwaffle, waffle_piのところをburgerにする

有効化

$ source ~/.bashrc

動作確認

公式サイトにてスイッチを押して動くか試せとあるのでその通りにする
https://emanual.robotis.com/docs/en/platform/turtlebot3/opencr_setup/#opencr-setup
(上で「Foxy」を選択して下の方の「OpenCR Test」の部分,詳細省略)

最後にteleopの確認

TurtleBotにて(ssh接続でok)
$ ros2 launch turtlebot3_bringup robot.launch.py
リモートPCにて
$ ros2 run turtlebot3_teleop teleop_keyboard

リモートPCからキーボード操作でTurtleBotが動かせたら成功

5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?