Skip to content

Latest commit

 

History

History
338 lines (262 loc) · 16.3 KB

README_tb3_big_wheel_3rs_jp.md

File metadata and controls

338 lines (262 loc) · 16.3 KB

日本語 | English

TurtleBot3 Friends: Big Wheel 3RS

TB3 Big Wheel 3RS

注意:Gazeboのみの対応。実機への対応中。

セットアップ手順(Quick Start Guide)

1. 環境設定

Turtlebot3の新FriendsモデルのBig Wheel 3RSを利用するには、まずTurtlebot3の基本的な設定を行う必要があります。そのため、TurtleBot3のe-Manualの「Quick Start Guide」に従って、セットアップを行ってください。ただし、以下の変更点に注意してください。

Big Wheel 3RSモデルではSBCとして、Raspberry Pi 4BもしくはNUC11を使います。現時点で、ROS Noeticに対応していますので、「Quick Start Guide」の「Noetic」ブランチを選択してください。

この部分では必要なROSパッケージをインストールしますが、今回はDebianのバイナルパッケージを使わずに、Robotis日本支店の公式GitHubからダウンロードします。以下の手順通りセットアップを進めてください。

$ sudo apt remove ros-noetic-dynamixel-sdk
$ sudo apt remove ros-noetic-turtlebot3-msgs
$ sudo apt remove ros-noetic-turtlebot3
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src/
$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone -b noetic-jp-devel https://github.com/ROBOTIS-JAPAN-GIT/turtlebot3_jp_custom
$ cd ~/catkin_ws && catkin_make
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

NUC11をBig Wheel 3RSのSBCとして使う場合には、e-Manualに記載されているセットアップ手順は実行せずに、次のような手順でセットアップを行います。

Note Raspberry Pi 4Bを用いる場合は、e-Manualを参考に通常のTurtleBot3と同様のセットアップ手順によりネットワークの設定を行ってください。

  1. NUCにUbuntu 20.04をインストールします。

  2. ROS Noeticをインストールします。

  3. Turtlebot3の必要なパッケージをインストールします。

$ sudo apt remove ros-noetic-dynamixel-sdk
$ sudo apt remove ros-noetic-turtlebot3-msgs
$ sudo apt remove ros-noetic-turtlebot3
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src/
$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone -b feature/bw_sara https://github.com/ROBOTIS-JAPAN-GIT/turtlebot3_jp_custom
$ cd ~/catkin_ws && catkin_make
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

OpenCRを設定するには、Raspberry Pi 4BもしくはNUC(使用しているSBC)を通して、セットアップを行います。

  1. OpenCRをmicro USBケーブル経由でNUCに繋げてください。

  2. OpenCRにファームウェアをアップロードするために必要なDebianパッケージをRaspberry Pi 4Bへインストールします。NUCの場合は不要です。

$ sudo dpkg --add-architecture armhf
$ sudo apt-get update
$ sudo apt-get install libc6:armhf
  1. OPENCR_MODELにbig_wheelと書きます。
$ export OPENCR_PORT=/dev/ttyACM0
$ export OPENCR_MODEL=big_wheel_3rs_noetic
$ rm -rf ./opencr_update.tar.bz2
  1. ファームウェアをダウンロードして、解凍します。
$ wget https://github.com/ROBOTIS-JAPAN-GIT/OpenCR_jp_custom/releases/download/v1.0.0/opencr_update_jp_custom.tar.bz2
$ tar -xvf opencr_update_jp_custom.tar.bz2 
  1. OpenCRにファームウェアをアップロードします。
$ cd ./opencr_update
$ ./update.sh $OPENCR_PORT $OPENCR_MODEL.opencr
  1. Turtlebot3 Big Wheel 3RSのファームウェアが正しくアップロードされたら、以下のようなメッセージが出力されます。 TB3 Big Wheel 3RS OpenCR Success Output

2. ネットワーク設定

今までのTurtleBot3のモデルの中で、分散処理のためRaspberry Piが使われてきました。しかし、今回はその代わりにNUCをmaster pcとして、そして別のPCをリモートパソコンとして用意することになりますので、以下のように設定してください。

Note Raspberry Pi 4Bを用いる場合は、e-Manualを参考に通常のTurtleBot3と同様のセットアップ手順によりネットワークの設定を行ってください。

  • NUC(master PC)側
  1. NUC PCが繋がれたWIFIのIPアドレスを取得します。
$ ifconfig

「wlp2s0」の「inet addr」に書いてある192.168.X.XXXのようなIPをメモしておきます。

Note 192.168.X.XXXの「X」という文字を各PCのIPに応じて変更してください。

  1. 「~/.bashrc」のファイルにROS IPを設定します。
$ nano ~/.bashrc

ドキュメントの一番下に以下のように書きます。

export ROS_MASTER_URI=http://192.168.X.XXX:11311
export ROS_HOSTNAME=192.168.X.XXX
  1. 以上2行を追加したら、ファイルを保存するため、Ctrl+s(保存)の次にCtrl+x(戻る)を押します。

  2. 最後にROS IPの変更点をターミナルに反映させます。

$ source ~/.bashrc
  • リモートPC(remote PC)側
  1. 前のNUC PCのIPアドレスを確認し、メモしておきます。(192.168.X.XXX)
  2. リモートPC側のIPアドレスをifconfigのコマンドで確認して、メモしておきます。(192.168.X.YYY)
  3. 「~/.bashrc」のファイルにROS IPを設定します。
$ nano ~/.bashrc

ドキュメントの一番下に以下のように書きます。

export ROS_MASTER_URI=http://192.168.X.XXX:11311
export ROS_HOSTNAME=192.168.X.YYY
  1. 以上2行を追加したら、ファイルを保存するため、Ctrl+s(保存)の次にCtrl+x(戻る)を押します。

  2. 最後にROS IPの変更点をターミナルに反映させます。

$ source ~/.bashrc

3. 追加レポジトリの設定

Turtlebot3のBig Wheel 3RSモデルには、デフォルトとして「Realsense D435」のデプスカメラが搭載されています。ここでは、レポジトリのセットアップ手順を説明します。

Warning 以下の手順はリモートPC側に行われます。

  1. カメラ設定

まず、必要なパッケージをインストールします。

  • ROS Wrapper for Intel® RealSense™ Devices(公式サイトより)
$ sudo apt-get install ros-$ROS_DISTRO-realsense2-camera
$ cd ~/catkin_ws/src
$ git clone https://github.com/ROBOTIS-JAPAN-GIT/realsense-ros_jp_custom
$ cd ~/catkin_ws
$ catkin_make

Note realsense-rosの設定手順のついて詳しく公式のGitHubに参照してください。

次に、シミュレーション環境でもRealsense D435を使えるように、次のレポジトリもダウンロードします。

$ cd ~/catkin_ws/src
$ git clone https://github.com/pal-robotics/realsense_gazebo_plugin
$ cd ~/catkin_ws
$ catkin_make
  1. LiDAR設定

TurtleBot3 Big Wheel 3RSでは、通常のTurtleBot3と同じくLDS-01もしくはLDS-02を使用します。そのため、e-Manualと同様の手順でセットアップを行ってください。

シミュレーション環境(Gazebo)

TurtleBot3 Big Wheel 3RSにはGazeboという物理演算を考慮したシミュレーション環境も備えています。基本的に、シミュレーションのパッケージをダウンロードするだけで、すぐに使うことができます。

$ cd ~/catkin_ws/src/
$ git clone -b noetic-jp-devel https://github.com/ROBOTIS-JAPAN-GIT/turtlebot3_simulations_jp_custom
$ git clone https://github.com/robotics-upo/lightsfm
$ cd lightsfm
$ make
$ sudo make install
$ cd ~/catkin_ws && catkin_make

動かしてみましょう!

実機

この時点に付いたら、環境のセットアップは完了となります。これから、Turtlebot3 Big Wheel 3RSモデルを実際に動かしてみましょう。動作方法は、e-Manualの「Bring-Up」のままで進めば大丈夫です。

Note sshよりNUCに繋ぐとき、NUCのIPアドレス(192.168.X.XXX)を使用することになります。

そして、新しいターミナルを開くたびに、Turtlebot3のモデルも指定してください。

$ export TURTLEBOT3_MODEL=big_wheel_3rs
$ export TURTLEBOT3_PLAT=false

Note 新しい端末をたちが得るたびに、以上のコマンドを実行する必要があります。そして、big_wheel_3rs以外にも、burger, waffle_pi, big_wheel, pizza等というモデルもあります。

  1. まずNUC側でroscoreを起動します。
$ roscore
  1. NUC側でTurtlebot3 Big Wheel 3RSのbring-upコマンドを実行します。
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
  1. 必要であれば、リモートPC側でTeleOPを実行します。
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
  • SLAM (地図生成) + Navigation

通常のTurtleBot3と同じ手順で実行できますので、公式のe-Manualの「SLAM」や「Navigation」に従って進めてください。

シミュレーション

動作方法は、e-Manualの「1.1.2. Launch Simulation World」の項目ままで進めば大丈夫です。

$ export TURTLEBOT3_MODEL=big_wheel_3rs
$ export TURTLEBOT3_PLAT=false
$ roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch

Note empty_world以外にも、house, simulation, stage_1などという環境もあります。そして、ROBOTIS日本支店カスタムのワールドもあります。現時点では、turtlebot3_jp_world_empty, turtlebot3_jp_world_static, turtlebot3_jp_world_dynamic, turtlebot3_jp_world_corridor_pedestrianの4種類のワールドを用意しています。

モデル名 画像
turtlebot3_jp_world_static TB3 static
turtlebot3_jp_world_dynamic TB3 dynamic
turtlebot3_jp_world_corridor_pedestrian TB3 corridor
turtlebot3_jp_world_corridor_pedestrian (rgbd) TB3 corridor rgbd

ハードウェア関係

部品リスト(BOM)

部品名 型番 個数 購入リンク
TurtleBot3 Waffle Pi --- 1 here
NUC 11 Pro Kit NUC11TNHv7 BNUC11TNHV70000 1 here
Realsense D435 --- 3 here
車輪(5inch) --- 2 here
--- --- --- here

3Dモデルの参照

詳細なパーツのリストとモデルの設計は、Turtlebot3 Friends: Big Wheel 3RSのOnShapeドキュメントで確認できます。

モデルの特徴

項目 Pizza Big Wheel 3RS
最大直進速度 0.35 m/s 0.50 m/s
最大回転速度 1.49 rad/s 3.41 rad/s
最大ペイロード 30kg
サイズ(長さ x 幅 x 高さ) 434.94mm x 489.10mm x 261.54mm 281mm x 306mm x 170.30mm
重量
乗り上げ可能高さ
動作時間
充電時間
コンピュータ NUC10i7FNHN Raspberry Pi
MCP Intel® Core™ i7-10710U Processor (12M Cache, up to 4.70 GHz) 32-bit ARM Cortex®-M7 with FPU (216 MHz, 462 DMIPS)
リモートコントローラ - -
アクチュエータ XM540-W150 XM430-W210
LiDAR SICK TiM571 360 Laser Distance Sensor LDS-01 or LDS-02
カメラ Realsense D435 Realsense D435
IMU Gyroscope 3 Axis Gyroscope 3 Axis
Accelerometer 3 Axis Accelerometer 3 Axis
供給入力端子 3.3V / 800mA, 5V / 4A, 12V / 1A
I/Oピン GPIO 18 pins, Arduino 32 pin
周辺機器 UART x3, CAN x1, SPI x1, I2C x1, ADC x5, 5pin OLLO x4
DINAMIXELポート RS485 x 3, TTL x 3 RS485 x 3, TTL x 3
オーディオ 複数ブザービート使用可能 複数ブザービート使用可能
LED使用可能 User LED x 4 User LED x 4
LEDステータス Board status LED x 1, Arduino LED x 1, Power LED x 1 Board status LED x 1, Arduino LED x 1, Power LED x 1
ボタンとスイッチ Push buttons x 2, Reset button x 1, Dip switch x 2 Push buttons x 2, Reset button x 1, Dip switch x 2
バッテリ マキタ互換バッテリー BL1490 14.4v 9Ah Lithium polymer 11.1V 1800mAh / 19.98Wh 5C
PC接続 USB USB
ファームウェア更新 USB経由, JTAG経由 USB経由, JTAG経由
電力アダプタ Input : 100-240V, AC 50/60Hz, 1.5A @max, Output : 12V DC, 5A Input : 100-240V, AC 50/60Hz, 1.5A @max, Output : 12V DC, 5A

TurtleBot3のROBOTIS e-Manual

TurtleBot3に関するオープンソース関連

TurtleBot3に関するドキュメントと動画