sbgisen / autoware_ai_planning

Apache License 2.0
0 stars 0 forks source link

[lane_planner]traffic_waypoint_arrayトピックの重複解消 #12

Closed nyxrobotics closed 1 year ago

nyxrobotics commented 1 year ago

下記コールバックがほぼ毎回呼ばれており、previous_number == -1になる→これまでに通った経路を無視して常に一番近い点を出力する https://github.com/sbgisen/autoware_ai_planning/blob/f4633fbe7c40b108fba525c13a7ef6f866ab6b09/lane_planner/nodes/lane_select/lane_select_core.cpp#L620-L637

/traffic_waypoints_array/lane_ruleが最初に一回、/lane_stopが10Hzでパブリッシュしている Screenshot from 2023-03-17 12-03-29

実装を見る限り「レーンが変化したらprevious_numberを-1にして初期化」したそう。 /lane_ruleノードからトピックを受け取る想定と思われる。 /traffic_waypoint_arrayでトピック名が重複して誤動作している可能性あり。

_Originally posted by @nyxrobotics in https://github.com/sbgisen/autoware_ai_planning/issues/10#issuecomment-1473114830_

nyxrobotics commented 1 year ago

提案内容

下記のように、/lane_stopがパブリッシュするトピック名を変更する

before Screenshot from 2023-03-17 12-03-29

after Screenshot from 2023-03-17 18-17-55

nyxrobotics commented 1 year ago

lane_plannerのREADMEで、/traffic_waypoints_arrayは変化しないと書かれており、 lane_select_coreのコールバックでは/traffic_waypoints_arrayを受け取ると初期化するような処理になっている。 https://github.com/sbgisen/autoware_ai_planning/blob/a9553172cdb642b8af8120ea10e553933754b91f/lane_planner/nodes/lane_select/lane_select_core.cpp#L620-L637

一方で、lane_stopは信号機が赤のときに速度がゼロになるようにウェイポイントを変換して/traffic_waypoints_arrayとして一定周期でパブリッシュしている。これが本来の仕様にあっていないものと予想される。

想定している原因は以下

  1. /traffic_waypoints_arrayを流用して実装したことにより機能が噛み合っていない
  2. 何か使い方が違う

上記の1であると仮定しての提案です

nyxrobotics commented 1 year ago

lane_selecttraffic_waypoints_arrayは不要と見られるためstop_waypoints_arrayのみサブスクライブするように変更します

nyxrobotics commented 1 year ago

トピック名の変更はremapで対応可能なためoutdoor_navigation_toolsで対応します