Turtlebot3/Raspberry4版の製作(2号機)ROSの基本操作:e-Manual【7.1】~

リモートPC側操作:PC表示
ロボット2側操作:R2表示とします。
ROS・ロボット(Turtlebot3)/2号機操作を、e-Manual に沿って確認していきます。
e-Manual の前提条件と異なる部分は、
 1.UbuntuMATE16.04   → Raspbian/Buster(PC:Ubuntu18.04.4)
 2.ROS・kinetic       →  ROS・melodic(PC:ROS・melodic)
 3.RaspberryPi3     → RaspberryPi4

【 7.1:Bringup 】
PC:$roscore
PC:$ssh pi@192.168.1.110 (IPアドレス固定:RaspberryPi4は、固定方法が3とは異なる)
   PW:ja3dxa8823     RaspbrryPi4に入り込んでからは、R2と表記します。
R2:$roslaunch turtlebot3_bringup turtlebot3_robot.launch
   ここでLiderが無いので、エラーが出るが使用上問題ない:Lider起動を止める方法は勉強してから取り組みます。

【 7.3:Load a Turtlebot3 on Rviz 】
PC:$export TURTLEBOT3_bringup turtlebot3_remode.launch  これはPC側の「~/.bashrc」で宣言済みの為、不要
PC:$ rosrun rviz rviz -d `rospack find turtlebot3_description`/rviz/model.rviz
   画像は、前頁で記載済み(問題なく表示された:Rviz)

【 8.1:Topic Monitor 】
PC:$rqt
   画像は、前頁で記載済み(問題なく表示された:rqt)

【 8.2.1:Keyboard 】
PC:$ export TURTLEBOT3_MODEL=burger  これはPC側の「~/.bashrc」で宣言済みの為、不要
PC:$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
   「w」「s」「x」「a」「d」キーでモーターは正常に回転しました。



【 8.3.1:Move using Interactive Markers 】
 PC:$roscore
 PC:$ssh pi@192.168.1.110
 PC:PW:ja3dxa8823    これで Turtlebot3 に入りました。
 Turtlebot3:$roslaunch turtlebot3_bringup turtlebot3_robot.launch

 PC:$ export TURTLEBOT3_MODEL=burger      これはPC側の「~/.bashrc」で宣言済みの為、不要
 PC:$ roslaunch turtlebot3_bringup turtlebot3_remote.launch

 PC:$ roslaunch turtlebot3_example interactive_markers.launch

 PC:$ rosrun rviz rviz -d `rospack find turtlebot3_example`/rviz/turtlebot3_interactive.rviz

下図が現れ赤矢印、青サークルをマウスで操作することで Turtlebot3 が前後、回転を行います。



【 8.3.2:障害物検出 】:これは2号機には、Lidarが付いていないので省略します

【 8.3.3:ポイント操作 】
 PC:$roscore
 PC:$ssh pi@192.168.1.110
 PC:PW:ja3dxa8823    これで Turtlebot3 に入りました。
 Turtlebot3:$roslaunch turtlebot3_bringup turtlebot3_robot.launch

 PC:$ roslaunch turtlebot3_example turtlebot3_pointop_key.launch

 | X | Y | Z | と表示されるので、「0.5 0.3 0」等の数値を入力します。単位はmなので、0.5=50cmとなり指定された距離移動します。


【 8.3.4:Patrol 】
 PC:$roscore
 PC:$ssh pi@192.168.1.110
 PC:PW:ja3dxa8823    これで Turtlebot3 に入りました。
 Turtlebot3:$roslaunch turtlebot3_bringup turtlebot3_robot.launch

 PC:$ rosrun turtlebot3_example turtlebot3_server
 PC:$ roslaunch turtlebot3_example turtlebot3_client.launch

 mode area count が表示されるので、

  mode 「s:正方形」「t:正三角形」「c:円」を選択します。
  area  単位mで指示
  count 繰り返し回数


【 10:Navigation 】
ナビゲーションには、地図情報が必要でSLAMで作成した「map.pgm」と「map.yaml」($ HOMEディレクトリ:/home/<username>)を
使用する為、このファイルが無いとエラーで動作しません。


今回も残念ながらSLAMデータが無いので、この機能はパスします。

地図上には太く長い緑色の矢印が現れるので、ロボットの初期位置はマウスで指示してやる必要があり、おおよその指示が出来たらロボットを
前後に動かして位置の確定をする必要があります。


【 11:Simulation 】

TurtleBot3は、シミュレーションで仮想ロボットを使用してプログラムおよび開発できる開発環境をサポートしています。
これを行うには2つの開発環境があります。
1つは偽ノードと3D可視化ツールRVizを使用し、もう1つは3DロボットシミュレータGazeboを使用しています。

偽ノード法は、ロボットモデルと動きのテストに適していますが、センサーは使用できません。
SLAMとナビゲーションをテストする必要がある場合は、シミュレーションでIMU、LDS、カメラなどのセンサーを使用できるGazeboを使用します。
(IMU:慣性計測装置(IMU)で加速度センサ+角速度センサ<ジャイロ>を使ったもの、LDS:Lidar)

【 11.1:偽ノードを使用したTurtleBot3シミュレーション 】
turtlebot3_fake_nodeには、turtlebot3_simulationメタパッケージが必要です。ターミナルからダウンロードします。

 $ cd ~/catkin_ws/src/
 $ git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
 $ cd ~/catkin_ws && catkin_make

make中、1個だけ下記のワーニングがでた。これがどれぐらい影響が出るのか先ずは進めていきます。


catkin_packge() は 'gazebi’ に存在するが、'gazebo_INCLUDE_DIRS' も 'gazebo_LIBRARIES' も定義されていない。というワーニング。

仮想ロボットを起動するには、以下のようにパッケージturtlebot3_fake.launch内のファイルを実行します。
turtlebot3_fakeは、実際のロボットがなくても実行できる非常にシンプルなシミュレーションノードです。
遠隔操作ノードを使用して、RVizの仮想TurtleBot3を制御することもできます。