Skip to content

autoware_raw_vehicle_cmd_converter#

概要#

raw_vehicle_command_converter は、望ましいステアリングおよび加速度入力を具体的な車両制御コマンドに変換する、車両自動化システムにおける重要なノードです。この処理は、ルックアップテーブルとオプションのフィードバック制御システムの組み合わせによって実現されます。

ルックアップテーブル#

変換器の機能の中心は、CSV 形式のルックアップテーブルを使用することです。このテーブルは、スロットル/ブレーキペダル(車両制御インターフェイスによって異なります)と、さまざまな速度における対応する車両加速度との関係性をカプセル化します。変換器はこのデータを使用して、目標加速度を適切なスロットル/ブレーキ値に正確に変換します。

accel-brake-map-table

基準データの作成#

ルックアップテーブルの基準データは、次の手順で生成されます。

  1. データ収集: 平坦な道路で、一定値のコマンド(例: スロットル/ブレーキペダル)が適用されて車両を加速または減速させます。
  2. データ記録: この段階で、IMU 加速度と車両速度の両方のデータが記録されます。
  3. CSV ファイル生成: コマンド値、車両速度、および結果として得られた加速度の関係を示す CSV ファイルが作成されます。

アクセルマップが作成されると、RawVehicleCmdConverter ノードを起動するときにロードされ、起動ファイルでファイルパスが定義されます。

自動キャリブレーションツール#

ルックアップテーブルのキャリブレーションと調整を容易にするために、自動キャリブレーションツールが用意されています。このツールの詳細と手順は こちら で確認できます。

可変ギア比 (VGR)#

これは、タイヤ角をステアリング角に変換するためのギア比です。一般的に、操作性を向上させるために、速度が上がるにつれて、またはステアリング角が小さくなるにつれて、ギア比が動的に大きくなります。特定の車両では、データが収集され、ギア比は次の公式で近似されました。

\[ a + b \times v^2 - c \times \lvert \delta \rvert \]

その車両の場合、係数は次のとおりでした。

vgr_coef_a: 15.713
vgr_coef_b: 0.053
vgr_coef_c: 0.042

vgr

convert_steer_cmd_method: "vgr"が選択されている場合、このノードはコントローラーからの制御コマンドを目的タイヤ角として受け取り、出力する目的操舵角を計算します。また、convert_actuation_to_steering_status: trueの場合、このノードはactuation_statusトピックを受信し、steer_wheel_angleから操舵タイヤ角を計算してパブリッシュします。

入力トピック#

名称 タイプ 説明
~/input/control_cmd autoware_control_msgs::msg::Control ターゲットの速度/加速度/ステアリング角度/ステアリング角度速度は、アクチュエータコマンドを計算するために必要です。
~/input/steering" autoware_vehicle_msgs::msg::SteeringReport convert_actuation_to_steering_status: false の場合のみサブスクライブします。ステアリングフィードバック制御に使用されるステアリングの現在の状態
~/input/odometry navigation_msgs::Odometry オドメトリの twist トピックが使用されます。
~/input/actuation_status tier4_vehicle_msgs::msg::ActuationStatus アクチュエータステータスは、車両側に送信されるのと同じタイプのステータスを受信すると想定されています。たとえば、スロットル/ブレーキペダル/ステアリングホイール角度が送信された場合、同じタイプのステータスが受信されます。ステアリングホイール角度の場合は、このノードでステアリングタイヤ角度と VGR の計算に使用されます。

出力トピック#

名称 タイプ 説明
~/output/actuation_cmd tier4_vehicle_msgs::msg::ActuationCommandStamped 車両が機械的入力を適用するためのアクチュエーションコマンド
~/output/steering_status autoware_vehicle_msgs::msg::SteeringReport convert_actuation_to_steering_status: true の場合のみ公開されます。ステアリングタイヤ角度はステアリングホイール角度から計算されて公開されます。

パラメータ#

Name Type Description Default Range
csv_path_accel_map string path for acceleration map csv file $(find-pkg-share autoware_raw_vehicle_cmd_converter)/data/default/accel_map.csv N/A
csv_path_brake_map string path for brake map csv file $(find-pkg-share autoware_raw_vehicle_cmd_converter)/data/default/brake_map.csv N/A
csv_path_steer_map string path for steer map csv file $(find-pkg-share autoware_raw_vehicle_cmd_converter)/data/default/steer_map.csv N/A
convert_accel_cmd boolean use accel or not true N/A
convert_brake_cmd boolean use brake or not true N/A
convert_steer_cmd boolean use steer or not true N/A
use_steer_ff boolean steering steer controller using steer feed forward or not true N/A
use_steer_fb boolean steering steer controller using steer feed back or not true N/A
is_debugging boolean debugging mode or not false N/A
max_throttle float maximum value of throttle 0.4 ≥0.0
max_brake float maximum value of brake 0.8 ≥0.0
max_steer float maximum value of steer 10.0 N/A
min_steer float minimum value of steer -10.0 N/A
steer_pid.kp float proportional coefficient value in PID control 150.0 N/A
steer_pid.ki float integral coefficient value in PID control 15.0 >0.0
steer_pid.kd float derivative coefficient value in PID control 0.0 N/A
steer_pid.max float maximum value of PID 8.0 N/A
steer_pid.min float minimum value of PID -8.0. N/A
steer_pid.max_p float maximum value of Proportional in PID 8.0 N/A
steer_pid.min_p float minimum value of Proportional in PID -8.0 N/A
steer_pid.max_i float maximum value of Integral in PID 8.0 N/A
steer_pid.min_i float minimum value of Integral in PID -8.0 N/A
steer_pid.max_d float maximum value of Derivative in PID 0.0 N/A
steer_pid.min_d float minimum value of Derivative in PID 0.0 N/A
steer_pid.invalid_integration_decay float invalid integration decay value in PID control 0.97 >0.0
convert_steer_cmd_method string method for converting steer command vgr ['vgr', 'steer_map']
vgr_coef_a float coefficient a for variable gear ratio 15.713 N/A
vgr_coef_b float coefficient b for variable gear ratio 0.053 N/A
vgr_coef_c float coefficient c for variable gear ratio 0.042 N/A
convert_actuation_to_steering_status boolean convert actuation to steering status or not. Whether to subscribe to actuation_status and calculate and publish steering_status For example, receive the steering wheel angle and calculate the steering wheel angle based on the gear ratio. If false, the vehicle interface must publish steering_status. true N/A

制限事項#

現在のフィードバック実装は、操舵制御のみに適用されます。