KBKN-Autonomous-Robotics-Lab / orange_ros2

This project is to use orange robot with ROS2
Apache License 2.0
12 stars 2 forks source link

with_ros2bagで地図作成ができない #100

Closed shunsugar closed 3 weeks ago

shunsugar commented 3 weeks ago

概要

bagファイルに必要なトピックが揃っているにも関わらず、

の3つを起動しても地図が作成できません。

frameuse_sim_timeの問題だと思っています。おそらくodomとlivox_frameのフレームが繋がっていないのが原因です。 今、作業しているブランチはfix/with_ros2bagです。これは最優先に解決したいです。お願いします。

odom

Odometry形式のトピックである/odom/odom_fast/odom_CLAS_movingbase/fusion/odomの確認はできています。

スクリーンショット 2024-10-29 160029

livox_frame

/livox/lidarをpointcloud2形式に変換したトピックもそれぞれ確認できています。

スクリーンショット 2024-10-29 160102

kugurofu commented 3 weeks ago

解決したため、以下に解決までに行ったことを示します。 ・ros2 launch orange_bringup with_ros2bag.launch.xml のnodeすべてにuse_sim_time=trueを設定 ・rosbagのplay時にオプションとして--clockを設定 この二つを行うことで解決しました。

プログラム内でuse_sim_timeの設定がない場合でもlaunchに追記することで解決できます。 以下に記述例を示します。

launch.xmlの場合

launchを実行している場合はargを使用します。

<include file="$(find-pkg-share your_package)/launch/your_launch.launch.xml">

<arg name="use_sim_time" value="true"/>

nodeを実行している場合はparamを使用します。

<node pkg="your_package" exec="your_node">

<param name="use_sim_time" value="true"/>

launch.pyの場合

まだ確認できていませんが、おそらくparametersを使用します。

        parameters=[{
            'use_sim_time': True
        }],

コマンド

今後rosbagを使用してmapを作成する際のコマンドを示しておきます。 ・ros2 launch orange_bringup with_ros2bag.launch.xml use_sim_time:=trueros2 launch orange_slam slam_toolbox.launch.xml use_sim_time:=true with_ros2bag:=trueros2 bag play {BAG_FILE_NAME} --clock

shunsugar commented 3 weeks ago

ついに見つけちゃいましたね。ありがとうございます。

shunsugar commented 3 weeks ago

参考として過去のissueとpull requestを上げておきます。

discussionsにも上げておきました。

実際に地図が作成できるとこのようになります。

image