ROS2 自作 Turtlebot3 による 草刈りロボット開発。#10 走行開始時のロボットの向き。
--- ros2 nav2_gps_waypoint_follower_demo autonomous は、できるか検討する。 ---
ROS2 自作 Turtlebot3 による 草刈りロボット開発。#9 LSTM で経路計画をする。
が出来たので、自分の部屋で、実機を Auto Mower で走らせている。
その中で、気になりだしたのが、ロボットの開始時の向きのズレが気になる。
Auto Mower で走行するときは、予め作成した、Static Map をベースに走行している。
この時、Static Map 作成時の、ロボットの向きと、 Auto Mower 走行時のロボットの向きがずれていると、具合が悪い。
1度ずれていると、数十メートルそうこうすると、かなりのズレが生じてしまう。
やはり、みちびき等の GNSS でロボットの位置を補正するしかないのかも。
その前に、予備知識として、ekf-localization 、navsat_transform を使ったロボット位置推定の場合の話だが、
robot_localization/navsat_transform_node を使った場合、
navsat_transform.yaml
の、datum: [38.161491, -122.4546443, 0.0] # pre-set datum if needed, [lat, lon, yaw]
で、tf-map の原点の緯度、経度と、x 軸の向きを指定する。
yaw (X 軸の方向)は、通常 東=0 [radian] になるみたい。
通常は、X軸の+方向が、東としているので、地図の X軸の+ 方向を変えたければ、ここで指定する。
Navigating Using GPS Localization
によると、robot_localization は、WGS84(世界測地系) を使うとのこと。
与えられた、GPS の lat,logi から、地表上の平面地図上の距離に変換する処理をしてくれる。
つまり、GPS の lat,logi の現在値から、起点となる、datum からの、地表面上の距離をWGS84を使って、算出して、
それは、tf-map(0,0) からのX軸[M]、Y軸[M] の値として教えてくれる。
結構便利なツールじゃ。
地図から、Map に変換する場合は、この WGS84 の地図を使えば良い。
出力は、odometry/gps で得られる。
$ ros2 topic echo /odometry/gps
で、tf-map からの距離が得られる。だから、 GNSS の値が正確であれば、この odometry/gps だけで、ロボットの正確な位置がわかる。
だから、本来は ekf-localization、ukf-localization は必要がない。必要がなければ、無理して使うこともない。
すでに作成された、Static Mapは、作成時に使用した、datum をnavsat_transform_node に与えれば良い。
ロボットの向きも、Static Map 作成時の向きにあわせる。
手作業で、Static Map を作成した時は、そのマップの起点と X軸(+方向)方向 を、datum を使って、navsat_transform_node に与えれば良い。
このページを書いた時は、予備知識として、navsat_transform この知識がなっかたまま書いたので、書き直しが必要みたい。by nishi 2025.8.10
注1) 部屋の中で、GPS を使わない時は、開始時のロボットの向きが、+X に、必然的になる。
以上が、予備知識である。
2025年1月アーカイブ
ROS2 自作 Turtlebot3 による 草刈りロボット開発。#10 走行開始時のロボットの向き。
おんちゃん (2025年1月26日 17:18)
検索
このアーカイブについて
カテゴリ
- AI (1)
- CentOS7.x (5)
- ChatGTP (1)
- Orange PI 5 (3)
- T100TA (2)
- Ubuntu Mate 20.04 (1)
- Windows (11)
- armbian (4)
- おんちゃんの雑談 (18)
- アフェリエイトで儲けるぞ。 (1)
- セキュリティー (5)
- プログラム開発 (139)
- Android Studio 2.1 (1)
- Android Studio Flamingo (3)
- C++ CGI (4)
- CNTK 2.4 (8)
- CUDA Programming (1)
- Coral EdgeTPU (9)
- ESP32 esp-idf (23)
- GPS (10)
- IMU (7)
- Java (3)
- Jetson Nano (17)
- Keras (12)
- OpenCV2 (1)
- OpenCV3.3.x (3)
- OpenCV3.4.2 (1)
- OpenCV4.1.1 (1)
- PIC (4)
- Perl CGI (2)
- Platformio IDE (7)
- Pytorch (10)
- ROS (43)
- ROS2 (24)
- Raspberry Pi (5)
- Sipeed MAix (10)
- Stereo Camera (3)
- TensorFlow (14)
- TensorFlow 2 (9)
- TensorRT 5.1 (2)
- Visual Studio Code (1)
- esp32 arduino (8)
- esp8266 arduino ide (5)
月別 アーカイブ
- 2025年9月 (1)
- 2025年8月 (5)
- 2025年7月 (10)
- 2025年6月 (2)
- 2025年5月 (2)
- 2025年4月 (1)
- 2025年3月 (1)
- 2025年2月 (1)
- 2025年1月 (1)
- 2024年12月 (2)
- 2024年11月 (3)
- 2024年9月 (4)
- 2024年8月 (4)
- 2024年7月 (3)
- 2024年6月 (6)
- 2024年5月 (2)
- 2024年4月 (3)
- 2024年3月 (1)
- 2024年2月 (2)
- 2024年1月 (3)
- 2023年12月 (1)
- 2023年11月 (2)
- 2023年10月 (1)
- 2023年8月 (2)
- 2023年7月 (2)
- 2023年6月 (5)
- 2023年5月 (1)
- 2023年4月 (3)
- 2023年3月 (4)
- 2023年2月 (2)
- 2023年1月 (2)
- 2022年12月 (3)
- 2022年11月 (3)
- 2022年10月 (1)
- 2022年9月 (2)
- 2022年8月 (2)
- 2022年7月 (3)
- 2022年5月 (3)
- 2022年4月 (1)
- 2022年2月 (3)
- 2022年1月 (1)
- 2021年12月 (3)
- 2021年10月 (4)
- 2021年9月 (8)
- 2021年7月 (3)
- 2021年5月 (2)
- 2021年4月 (3)
- 2021年3月 (9)
- 2021年1月 (9)
- 2020年12月 (2)
- 2020年11月 (7)
- 2020年10月 (3)
- 2020年9月 (3)
- 2020年8月 (2)
- 2020年7月 (4)
- 2020年6月 (1)
- 2020年5月 (2)
- 2020年3月 (7)
- 2020年1月 (3)
- 2019年11月 (5)
- 2019年10月 (1)
- 2019年9月 (1)
- 2019年8月 (1)
- 2019年7月 (4)
- 2019年6月 (1)
- 2019年5月 (3)
- 2019年3月 (1)
- 2019年2月 (2)
- 2019年1月 (3)
- 2018年12月 (9)
- 2018年10月 (3)
- 2018年9月 (2)
- 2018年6月 (5)
- 2018年4月 (2)
- 2018年3月 (1)
- 2018年2月 (1)
- 2018年1月 (1)
- 2017年12月 (2)
- 2017年10月 (5)
- 2017年9月 (1)
- 2017年8月 (1)
- 2017年4月 (1)
- 2017年1月 (1)
- 2016年8月 (1)
- 2015年11月 (1)
- 2015年10月 (1)
- 2015年9月 (1)
- 2015年4月 (1)
- 2015年2月 (2)
- 2015年1月 (1)
- 2014年8月 (1)
- 2014年7月 (1)
- 2014年1月 (1)
- 2013年7月 (1)
- 2013年4月 (1)
- 2012年11月 (1)
ウェブページ
- ウエブページの練習です。
- images