2.3K Views
February 10, 24
スライド概要
ROS Japan UG #54 関西ROSJP 発表資料、ROS2 TOPICの非同期デバッグ用のツールを自作したりしました。
Hobby Programmer. Caffe, Tensorflow, NCS, RaspberryPi, Latte Panda, ROS, DL, TPU, OpenVINO. Intel Software Innovator. The remarks are my personal opinion.
ROS 2 ビギナー デバッグツール自作から始める @PINTO0309
自己紹介 兵頭 亮哉 Hyodo Katsuya 株式会社サイバーエージェント AI事業本部 AI Lab Agent Development Team Research Engineer https://www.cyberagent.co.jp/techinfo/info/detail/id=23823 マルチモーダル音声対話プラットフォームの開発 @PINTO03091 @PINTO0309 2
なんか、かゆいところに手が届かない ● ROS 2の公式ドキュメントを読んでも頭がもげるほど よくわからない ● 要件を満たす最低限のパッケージにたどり着くまで に時間が掛かる ● Too Much な機能を備えたパッケージはあまり必要と していない ● rosbag からプレゼン資料をサクッと作りたい 3
ROS 2 の非同期デバッグつらい ● 3Node 以上並列に動作させると追いにくい (ツラ過ぎる) ● ROSの思想をゆがめるような便利パッケージは存在しない (ように見える) ● ログを採取して解析して〜、がめんどくさい (エンジニアあるまじき1) ● コード書きたくない (エンジニアあるまじき2) 4
とりあえず自分で作る・作った https://github.com/PINTO0309/simple-ros2-processing-tools 5
rosimg2mp4 / rosdepth2mp4 ● ● ● ● RGBとDepthのトピックをダイレクトにMP4化、するだけ RealSense と ZED2/ZED2i のみに対応の男気仕様 一応、AVI形式での録画にも対応 ● pip install rosdepth2mp4 pip install rosimg2mp4 6
録画後の雰囲気 RAWモード録画 JETモード録画 7
mp42rosimg ● 動画ファイルを再生すると同時にTopic送信する、だけ ros2 run mp42ros runner \ --ros-args \ -p mp4_file_path:=test.mp4 \ -p send_topic_name:=/zed2i/zed_node/rgb_raw/image_raw_color \ -p loop:=True \ -p fps:=15.0 8
送信イメージ 9
ros2bagcut ● ● ● 任意のタイムゾーン指定のタイムスタンプ範囲で rosbag をカットする、だけ とにかく UTC がイヤ pip install ros2bagcut ros2bagcut \ -i rosbag2_2024_01_12-09_37_34_0.db3 \ -o rosbag2_2024_01_12-09_37_34_0_cut.db3 \ -st 2024 1 12 18 37 55 \ -tz Asia/Tokyo 10
ros2bagsend ● ● ● ● ● ● ● ● 独自概念の Frame という単位で rosbag を Topic 送信する、だけ rosbag のステップ送信をしたかった 周期が異なる Topic をある程度ひとまとめで一括送信したかった 精度は ms オーダーで同期が取れればよい 匿名ノードを使って適当にTopic送信 bag ファイルの中身はどんなデータでもよい タイムスタンプを一切見ない男気仕様 pip install ros2bagsend ros2bagsend --ros-args \ -p bag_file_path:='test.db3' \ -p start_frame_no:=5 \ -p end_frame_no:=100 11
rosbag のステップ送信イメージ 12