Turtlebot3 の自作 #8
-- Jetson Nano 2G の搭載 --
Jetson Nano 2G を ESP32 と UART 接続して、TurtleBot3 の完成形にします。
その後、リモートPC 上の roscore を起動して、リモートPC 上から Teleop Keyで、Turtlebot3 をリモート操作できる事を確認します。
自作 Turtlebot3 foxbot_core3
環境
1)リモートPC
Ubuntu Mate 18.04
ROS: Melodic
IP:192.168.1.170
2)TurtleBot3 SBC
Jetson Nano 2G
Wi-Fi Lan
IP:192.168.1.37
ROS:Melodic
電源: 5 [VDC] - 3[A] のレギュレーターを使用します。
1. Jetson Nano 2G には、https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-2gb-devkit
辺りを参考に、Jetson Nano 2GB Developer Kit をインストールします。
Wi-Fi も必要なので、Wi-Fi ドングルを購入して、リモートPC から、SSH2 でログインできるようにします。
2. Power スイッチが有れば便利なので、付けます。
https://developer.nvidia.com/embedded/learn/jetson-nano-2gb-devkit-user-guide
Button Header J12
5-6 をジャンパーで短絡
11-12 にリセットボタンを付ければOKです。
3. ROS と Turtlebot3 パッケージをインストールします。
ROS: Melodic
詳しくは、『ROS ロボットプログラミングバイブル』P265
依存パッケージのインストール方法 [TurtleBot SBC]
TurtleBot3 パッケージのインストール方法 [TurtleBoot SBC]
を行います。
または、本家のサイト を参照してください。
4. ESP32 と Jetson Nano 2G を、UART 結線します。
ESP32 -- Jetson Nno 2G 40-Pin Header[J6]
TXD0(35) ---- RXD(10)
RXD0(34) ---- TXD(8)
GND ----- GND(6)
Jetson Nano 2G では、/dev/ttyTHS1 でアクセスできます。
使うときは、パーミッションを設定します。
$ sudo chmod 666 /dev/ttyTHS1
注1) あとで判ったことですが、Jetson nano JetPack は、ディフォルトで、Serial Console が有効になっていて、それが、/dev/ttyTHS0、
/dev/ttyTHS1 をオープンしてそれが悪さをするようです。
なので、Serial Console を無効にします。by nishi 2022.7.5
$ sudo systemctl stop nvgetty
$ sudo systemctl disable nvgetty
$ sudo udevadm trigger
reboot system
Jetson Nano - UART
5. リモートPC の設定& roscore 起動。
~/.bashrc に記述
export ROS_HOSTNAME=192.168.1.170
export ROS_MASTER_URI=http://192.168.1.170:11311
FireWallの設定
# ufw allow 11311
# ufw allow 33329:47000/tcp
# ufw reload
注) port 33329-47000 も開けないと、 teleop key が通信できないみたいです。
ros のログの中に teleop_key 使用ポートが見える。
~/.ros/log/latest/turtlebot3_teleop_keyboard-1.log
$ roscore
6. Jetson Nao 2G で、設定 & Tutlebot3 を起動。
~/.bashrc に記述
export ROS_HOSTNAME=192.168.1.37
export ROS_MASTER_URI=http://192.168.1.170:11311
~/catkin_ws/src/turtlebot3/turtlebot3_bringup/launch/turtlebot3_core.launch の修正。
<param name="port" value="/dev/ttyTHS1"/>
$ sudo chmod 666 /dev/ttyTHS1
Tutlebot3 を起動
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch --screen
ここで、各トピックがアクティブになれば、OK です。
7. リモートPC から、teleop_key を起動&操作
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
どうぞね!! うまく動いたかね?
これで、自作 Turtlebot3 の完成です。
この後は、 Intel Depth Camera を買って、Jetson Nano 2G に取り付けます。
これでやっと、rtabmap_ros で、Stereo Mapping ができるようになると思うので、
それからが、草刈りロボットの開発のスタートです。
後日、最新のプログラムコードを、Github に更新しようと考えていますが、Github が、2021.8 から、
SSL 対応でないとUpload できなくなったみたいで、どうしたものか!!
tosa-no-onchan/foxbot_core3
後記。
本当は、Gazebo 上で、Intel RGB-D Stereo カメラを付けて、Turtlebot3 でシミュレーション上で、
rtabmap の Stereo mapping が出来ていれば良かったのに、誰か、やり方を公開しないものだろうか?
と、以前の記事で、書きましたが。
今日になって、rtabmap関連の古いお気に入りリンクを見ていたら、とんでもないリンクを見つけました。
注) 出来るようです。YouTube に公開 されていました。
rtabmap_rosTutorialsMappingAndNavigationOnTurtlebot
とほほです。今までの努力は、何だったのか?
しかし、実機では、シュミレーションでは現れない事が出てくるので、最終的には、実機での経験が必要です。
後で、晴れの日に、写真を撮って掲載しよおっと。
以上で、Turtlebot3 の自作 は、これで終わりじゃ。
次からは、実際の草刈りロボットの開発になるぞね。
Streo Camera は、こちらの情報を参考にして、
Intel Realsense D435i を Mouser で購入しようかと思います。