二次計画法 (QP) スプライン パスの最適化

二次計画法 (QP) スプライン パスの最適化

元のアドレス: https://daobook.github.io/apollo/docs/specs/qp_spline_path_optimizer_cn.html
二次計画法 (QP) + スプライン補間

1. 目的関数

1.1 経路長の取得

パスはステーション横座標系で定義されます。変化間隔sは、車両の現在位置からデフォルトの経路までの長さです。

1.2 スプラインセグメントの取得

パスをn個のセグメントに分割し、パスの各セグメントは多項式で表されます。

1.3 スプラインセグメント関数の定義

各スプライン セグメントi は、基準線に沿った累積距離di d_iを持ちます。d私は各セグメントのパスは、デフォルトでは 5 方向多項式で表されます。

l = fi ( s ) = ai 0 + ai 1 ⋅ s + ai 2 ⋅ s 2 + ai 3 ⋅ s 3 + ai 4 ⋅ s 4 + ai 5 ⋅ s 5 ( 0 ≤ s ≤ di ) l = f_i(s ) = a_{i0} + a_{i1} \cdot s + a_{i2} \cdot s^2 + a_{i3} \cdot s^3 + a_{i4} \cdot s^4 + a_{i5} \ cdot s^5 (0 \leq s \leq d_{i})=f私は( s )=あるそして0+ある1s+ある2s2+あるそして3s3+あるそして4s4+ある5s5 (0sd私は)

1.4 各スプラインセグメントの最適化目的関数を定義する

コスト = ∑ i = 1 n ( w 1 ⋅ ∫ 0 di ( fi ' ) 2 ( s ) ds + w 2 ⋅ ∫ 0 di ( fi ' ) 2 ( s ) ds + w 3 ⋅ ∫ 0 di ( fi ' '' ) 2 ( s ) ds ) コスト = \sum_{i=1}^{n} \Big( w_1 \cdot \int\limits_{0}^{d_i} (f_i')^2(s) ds + w_2 \cdot \int\limits_{0}^{d_i} (f_i'')^2(s) ds + w_3 \cdot \int\limits_{0}^{d_i} (f_i^{\prime\prime\prime })^2(s) ds \Big)コスト_=i = 1( w10d私は( f)2 ()_+w20d私は( f)2 ()_+w30d私は( f)2 (s)ds)_

1.5 コスト関数を QP 式に変換する

QP公式:
1 2 ⋅ x T ⋅ H ⋅ x + f T ⋅ xs を最小化します。と。LB ≤ x ≤ UBA eqx = beq A x ≥ b \begin{aligned} minimum & \frac{1}{2} \cdot x^T \cdot H \cdot x + f^T \cdot x \\ st \qquad & LB \leq x \leq UB \\ & A_{eq}x = b_{eq} \\ & Ax \geq b \end{aligned}最小限にするs 21バツTHバツ+fTバツLB _バツUB _e qバツ=be q×b
以下は、コスト関数を QP 式に変換する例です。
fi ( s ) = ∣ 1 ss 2 s 3 s 4 s 5 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ f_i(s) = \begin{vmatrix} 1 & s & s^2 & s^3 & s^4 & s^5 \end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_ {i2} \\ a_{i3} \\ a_{i4} \\ a_{i5} \end{vmatrix}f私は( s ) 1ss2s3s4s5 あるそして0ある1ある2あるそして3あるそして4ある5

また
fi ′ ( s ) = ∣ 0 1 2 s 3 s 2 4 s 3 5 s 4 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ f_i'(s) = \begin{vmatrix} 0 & 1 & 2s & 3s^2 & 4s^3 & 5s^4 \end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{i3} \ \ a_{i4} \\ a_{i5} \end{vmatrix}f( s )= 012324354 あるそして0ある1ある2あるそして3あるそして4ある5

また
fi ' ( s ) 2 = ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ⋅ ∣ 0 1 2 s 3 s 2 4 s 3 5 s 4 ∣ ⋅ ∣ 0 1 2 s 3 s 2 4 s 3 5 s 4 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ f_i'(s)^2 = \begin{vmatrix} a_{i0} & a_{i1} & a_{i2} & a_{i3 } & a_{i4} & a_{i5} \end{vmatrix} \cdot \begin{vmatrix} 0 \\ 1 \\ 2s \\ 3s^2 \\ 4s^3 \\ 5s^4 \end{vmatrix} \cdot \begin{vmatrix} 0 & 1 & 2s & 3s^2 & 4s^3 & 5s^4 \end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{ i2} \\ a_{i3} \\ a_{i4} \\ a_{i5} \end{vmatrix}f( s )2= あるそして0ある1ある2あるそして3あるそして4ある5 012324354 012324354 あるそして0ある1ある2あるそして3あるそして4ある5
その後、
∫ 0 difi ' ( s ) 2 ds = ∫ 0 di ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ⋅ ∣ 0 1 2 s 3 s 2 4 s 3 5 s 4 ∣ ⋅ ∣ 0 1 2 s 3 s 2 4 s 3 5 s 4 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ds \int\limits_{0}^{d_i} f_i'(s)^2 ds = \int \limits_{0}^{d_i} \begin{vmatrix} a_{i0} & a_{i1} & a_{i2} & a_{i3} & a_{i4} & a_{i5} \end{vmatrix} \cdot \begin{vmatrix} 0 \\ 1 \\ 2s \\ 3s^2 \\ 4s^3 \\ 5s^4 \end{vmatrix} \cdot \begin{vmatrix} 0 & 1 & 2s & 3s^2 & 4s ^3 & 5s^4 \end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{i3} \\ a_{i4} \\ a_{ i5} \end{vmatrix} ds0d私はf( s )2ds__0d私は あるそして0ある1ある2あるそして3あるそして4ある5 012324354 012324354 あるそして0ある1ある2あるそして3あるそして4ある5 ds _

結合関数中引出常量得,
∫ 0 dif ' ( s ) 2 ds = ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ⋅ ∫ 0 di ∣ 0 1 2 s 3 s 2 4 s 3 5 s 4 ∣ ⋅ ∣ 0 1 2 s 3 s 2 4 s 3 5 s 4 ∣ ds ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ \int\limits_{0}^{d_i} f'(s) ^2 ds = \begin{vmatrix} a_{i0} & a_{i1} & a_{i2} & a_{i3} & a_{i4} & a_{i5} \end{vmatrix} \cdot \int\limits_{ 0}^{d_i} \begin{vmatrix} 0 \\ 1 \\ 2s \\ 3s^2 \\ 4s^3 \\ 5s^4 \end{vmatrix} \cdot \begin{vmatrix} 0 & 1 & 2s & 3s^2 & 4s^3 & 5s^4 \end{vmatrix} ds \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{i3} \\ a_ {i4} \\ a_{i5} \end{vmatrix}0d私はf( s )_2ds__ あるそして0ある1ある2あるそして3あるそして4ある5 0d私は 012324354 012324354 ds _ あるそして0ある1ある2あるそして3あるそして4ある5

= ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ⋅ ∫ 0 di ∣ 0 0 0 0 0 0 0 1 2 s 3 s 2 4 s 3 5 s 4 0 2 s 4 s 2 6 s 3 8 s 4 10秒 5 0 3秒 2 6秒 3 9秒 4 12秒 5 15秒 6 0 4秒 3 8秒 4 12秒 5 16秒 6 20秒 7 0 5秒 4 10秒 5 15秒 6 20秒 7 25 s 8 ∣ ds ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ =\begin{vmatrix} a_{i0} & a_{i1} & a_{i2} & a_{i3} & a_{i4} & a_{i5} \end{vmatrix} \cdot \int\limits_{0}^{d_i} \begin{vmatrix} 0 & 0 &0&0&0&0\\ 0 & 1 & 2s & 3s^2 & 4s^3 & 5s^4 \\ 0 & 2s & 4s^2 & 6s^3 & 8s^4 & 10s^5\\ 0 & 3s^2 & 6s^3 & 9s^4 & 12s^5&15s^6 \\ 0 & 4s^3 & 8s^4 &12s^5 &16s^6&20s^7 \\ 0 & 5s^4 & 10s^5 & 15s^6 & 20s^7 & 25s^8 \end{vmatrix} ds \cdot \begin{vmatrix} a_{i0 } \\ a_{i1} \\ a_{i2} \\ a_{i3} \\ a_{i4} \\ a_{i5}\end{vmatrix} あるそして0ある1ある2あるそして3あるそして4ある5 0d私は 00000001232435402426384105032639412515604384125166207054105156207258 ds _ あるそして0ある1ある2あるそして3あるそして4ある5

ついに手に入れた、

∫ 0 difi ' ( s ) 2 ds = ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ⋅ ∣ 0 0 0 0 0 0 0 Didi 2 di 3 di 4 di 5 0 di 2 4 3 di 3 6 4ディ4 8 5 ディ5 10 6 ディ6 0 ディ3 6 4 ディ4 9 5 ディ5 12 6 ディ6 15 7 ディ7 0 ディ4 8 5 ディ5 12 6 ディ6 16 7 ディ7 20 8 ディ8 0 ディ5 10 6 di 6 15 7 di 7 20 8 di 8 25 9 di 9 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ \int\limits_{0}^{d_i} f'_i(s) ^2 ds =\begin{vmatrix} a_{i0} & a_{i1} & a_{i2} & a_{i3} & a_{i4} & a_{i5} \end{vmatrix} \cdot \begin{vmatrix} 0 & 0 & 0 & 0 &0&0\\ 0 & d_i & d_i^2 & d_i^3 & d_i^4&d_i^5\\ 0& d_i^2 & \frac{4}{3}d_i^3& \frac{6} {4}d_i^4 & \frac{8}{5}d_i^5&\frac{10}{6}d_i^6\\ 0& d_i^3 & \frac{6}{4}d_i^4 & \frac {9}{5}d_i^5 & \frac{12}{6}d_i^6&\frac{15}{7}d_i^7\\ 0& d_i^4 &\frac{8}{5}d_i^5 & \frac{12}{6}d_i^6 & \frac{16}{7}d_i^7&\frac{20}{8}d_i^8\\ 0& d_i ^5 & \frac{10}{6}d_i^6 & \frac{15}{7}d_i^7 & \frac{20}{8}d_i^8&\frac{25}{9}d_i^9 \ end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{i3} \\ a_{i4} \\ a_{i5} \end{vmatrix}0d私はf( s )2次元_= あるそして0ある1ある2あるそして3あるそして4ある5 0000000d私はd2d3d4d50d234d346d458d5610d60d346d459d5612d6715d70d458d5612d6716d7820d80d5610d6715d7820d8925d9 あるそして0ある1ある2あるそして3あるそして4ある5

最終的には、5 次元スプライン補間の導出コストを表す 6 次元行列になることに注意してください。
同じ推論方法を適用すると、2 次元および 3 次元のスプライン補間の導出コストを取得できます。

2 制約

2.1 初期点の制約

最初の点が ( s 0 s_0であると仮定します)s0l 0 l_00)、( s 0 s_0s0l0'l'_00) と ( s 0 s_0s0l0'l'_00)、ここでl 0 l_00l0'l'_00そしてl0''l''_00横方向のオフセットを表し、計画された経路の始点の 1 番目と 2 番目の点の導出コストはfi (s) f_i(s)から取得できます。f私は( s )fi ' ( s ) f'_i(s)f( s )fi ( s ) '' f_i(s)''f私は( s )と計算されます。

次の式を使用して、上記の制約を QP 制約式に変換します。

A eqx = beq A_{eq}x = b_{eq}e qバツ=be q

変換の具体的な手順は次のとおりです。

fi ( s 0 ) = ∣ 1 s 0 s 0 2 s 0 3 s 0 4 s 0 5 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ = l 0 f_i(s_0) = \begin{vmatrix } 1 & s_0 & s_0^2 & s_0^3 & s_0^4&s_0^5 \end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{ i3} \\ a_{i4} \\ a_{i5}\end{vmatrix} = l_0f私は( s0)= 1s0s02s03s04s05 あるそして0ある1ある2あるそして3あるそして4ある5 =0
また
fi ' ( s 0 ) = ∣ 0 1 2 s 0 3 s 0 2 4 s 0 3 5 s 0 4 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ = l 0 ' f'_i( s_0) = \begin{vmatrix} 0& 1 & 2s_0 & 3s_0^2 & 4s_0^3 &5 s_0^4 \end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{ i2} \\ a_{i3} \\ a_{i4} \\ a_{i5} \end{vmatrix} = l'_0f( s0)= 0120302403504 あるそして0ある1ある2あるそして3あるそして4ある5 =0
また
fi '' ( s 0 ) = ∣ 0 0 2 3 × 2 s 0 4 × 3 s 0 2 5 × 4 s 0 3 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ = l 0 ' '' f''_i(s_0) = \begin{vmatrix} 0&0& 2 & 3\times2s_0 & 4\times3s_0^2 & 5\times4s_0^3 \end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{i3} \\ a_{i4} \\ a_{i5} \end{vmatrix} = l''_0f( s0)= 0023×204×3025×403 あるそして0ある1ある2あるそして3あるそして4ある5 =0
その中に、i にはs 0 s_0が含まれていますs0スプライン セグメントのインデックス値。

2.2 エンドポイントの制約

始点、終点と同じ( se , le ) (s_e, l_e)( s)は、開始点の計算方法に従って制約も生成する必要があります。

開始点と終了点を組み合わせると、制約式は次のようになります。

∣ 1 s 0 s 0 2 s 0 3 s 0 4 s 0 5 0 1 2 s 0 3 s 0 2 4 s 0 3 5 s 0 4 0 0 2 3 × 2 s 0 4 × 3 s 0 2 5 × s 0 3 1 セセ 2 セ 3 セ 4 セ 5 0 1 2 セ 3 セ 2 4 セ 3 5 セ 4 0 0 2 3 × 2 セ 4 × 3 セ 2 5 × 4 セ 3 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ = ∣ l 0 l 0 '' l 0 '' lele '' le '' ∣ \begin{vmatrix} 1 & s_0 & s_0^2 & s_0^3 & s_0^4&s_0^5 \\ 0&1 & 2s_0 & 3s_0^2 & 4s_0^3 & 5s_0^4 \\ 0& 0&2 & 3\times2s_0 & 4\times3s_0^2 & 5\times4s_0^3 \\ 1 & s_e & s_e^2 & s_e^3 & s_e^ 4&s_e ^5 \\ 0&1 & 2s_e & 3s_e^2 & 4s_e^3 & 5s_e^4 \\ 0& 0&2 & 3\times2s_e & 4\times3s_e^2 & 5\times4s_e^3 \end{vmatrix} \cdot \begin{; vmatrix} a_{i0}\\a_{i1}\\a_{i2}\\a_{i3}\\a_{i4}\\a_{i5}\end{vmatrix}=\begin{vmatrix}l_0\\ l'_0\\l'_0\\ l_e\\ l_e\\ l'_e\\ \end{vmatrix} 100100s010s10s02202se222s033023×20se33e23×2s044034×302se44e34×3e2s055045×403se55e45×4e3 あるそして0ある1ある2あるそして3あるそして4ある5 = 000ee

2.3 スムーズノード制約

このコンストレイントの目的は、スプラインのノードをより滑らかにすることです。2 つのセグメントsegk seg_k を想定しますgを参照してください。およびsegk + 1 seg_{k+1}gを参照してください。k + 1相互に接続され、segk seg_kgを参照してください。累積値 s はsk s_ks制約を計算する式は次のとおりです。

fk ( sk ) = fk + 1 ( s 0 ) f_k(s_k) = f_{k+1} (s_0)f( s)=fk + 1( s0)
テーブルの数を指定します:
∣ 1 大さじ 2 大さじ 3 大さじ 4 大さじ 5 ∣ ⋅ ∣ ak 0 ak 1 ak 2 ak 3 ak 4 ak 5 ∣ = ∣ 1 s 0 s 0 2 s 0 3 s 0 4 s 0 5 ∣ ⋅ ∣ ac + 1 , 0 ac + 1 , 1 ac + 1 , 2 ac + 1 , 3 ac + 1 , 4 ac + 1 , 5 ∣ \begin{vmatrix} 1 & s_k & s_k^2 & s_k^ 3 & s_k^4&s_k^5 \\ end{vmatrix} \cdot \begin{vmatrix} a_{k0} \\ a_{k1} \\ a_{k2} \\ a_{k3} \\ a_{k4}\ \a_ {k5}\end{vmatrix} = \begin{vmatrix}1&s_{0}&s_{0}^2&s_{0}^3&s_{0}^4&s_{0}^5\\ \end{vmatrix} \cdot \begin {vmatrix} a_{k+1,0} \\ a_{k+1,1} \\ a_{k+1,2} \\ a_{k+1,3} \\a_{k+1.4}\ \a_{k+1.5}\end{vmatrix} 1ssk2sk3sk4sk5 あるk0 _あるk1 _あるk2 _あるk3 _あるk4 _あるk5 _ = 1s0s02s03s04s05 あるk + 1 , 0あるk + 1 , 1あるk + 1、2 _ _あるk + 1、3 _ _あるk + 1、4 _ _あるk + 1、5 _ _

∣ 大さじ1 大さじ2 大さじ3 大さじ4 大さじ4 5 − 1 − s 0 − s 0 2 − s 0 3 − s 0 4 − s 0 5 ∣ ⋅ ∣ ac 0 ac 1 ac 2 ac 3 ac 4 ac 5 ac + 、 0 エーカー + 1 、1 エーカー + 1 、2 エーカー + 1 、3 エーカー + 1 、4 エーカー + 1 、5 ∣ = 0 \begin{vmatrix} 1 & s_k & s_k^2 & s_k^3 & s_k^4&s_k ^ 5 & -1 & -s_{0} & -s_{0}^2 & -s_{0}^3 & -s_{0}^4&-s_{0}^5\\\end{vmatrix}\ cdot \begin{vmatrix} a_{k0} \\ a_{k1} \\ a_{k2} \\ a_{k3} \\ a_{k4} \\ a_{k5} \\ a_{k+1,0} \ \ a_{k+1,1} \\ a_{k+1,2} \\ a_{k+1,3} \\ a_{k+1,4} \\ a_{k+1,5} \終了 { vmatrix } = 0 1ssk2sk3sk4sk5 1s0s02s03s04s05 あるk0 _あるk1 _あるk2 _あるk3 _あるk4 _あるk5 _あるk + 1 , 0あるk + 1 , 1あるk + 1、2 _ _あるk + 1、3 _ _あるk + 1、4 _ _あるk + 1、5 _ _ =0
意志s 0 s_0s0= 0 が式に代入されます。

同様に、制約方程式は次のように計算できます
。 1 '' '' ( s 0 ) f'_k(s_k) = f'_{k+1} (s_0) \\ f''_k(s_k) = f''_{k+1} ( s_0) \\ f''_k(s_k) = f''''_{k+1} (s_0)fk( s)=fk + 1( s0)fk( s)=fk + 1( s0)fk( s)=fk + 1( s0)

2.4 ポイントサンプリング境界制約

パス上のm点を均等にサンプリングし、これらの点で障害物の境界を確認します。次の不等式を使用して、これらの制約を QP 制約の不等式に変換します。

Ax ≥ b Ax \geq b×b

まず、道路幅と周囲の障害物に基づいて点(sj, lj) (s_j, l_j)を見つけます。( sjj)下限のllb, j l_{lb,j}l b j,しかもj ∈ [ 0 , m ] j\in[0, m]j[ 0 ,m ]制約を計算する不等式は次のとおりです。

∣ 1 s 0 s 0 2 s 0 3 s 0 4 s 0 5 1 s 1 s 1 2 s 1 3 s 1 4 s 1 5 。1 smsm 2 sm 3 sm 4 sm 5 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ≥ ∣ llb 、 0 llb 、 1 。llb , m ∣ \begin{vmatrix} 1 & s_0 & s_0^2 & s_0^3 & s_0^4&s_0^5 \\ 1 & s_1 & s_1^2 & s_1^3 & s_1^4&s_1^5 \\ ... &...&...&...&...&... \\ 1 & s_m & s_m^2 & s_m^3 & s_m^4&s_m^5 \\ \end{vmatrix} \cdot \begin {vmatrix}a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{i3} \\ a_{i4} \\ a_{i5} \end{vmatrix} \geq \begin{vmatrix} l_ {lb,0}\\ l_{lb,1}\\ ...\\ l_{lb,m}\\ \end{vmatrix} 11...1s0s1...sメートルs02s12...sメートル2s03s13...sメートル3s04s14...sメートル4s05s15...sメートル5 あるそして0ある1ある2あるそして3あるそして4ある5 l b , 0l b , 1...l b m

同様に、上限lub については、 j l_{ub,j}u b j次を解きます:
∣ − 1 − s 0 − s 0 2 − s 0 3 − s 0 4 − s 0 5 − 1 − s 1 − s 1 2 − s 1 3 − s 1 4 − s . . . . . . . . . . . . . . . . . . . . . . . − 。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . − 1 − sm − sm 2 − sm 3 − sm 4 − sm 5 ∣ ⋅ ∣ ai 0 ai 1 ai 2 ai 3 ai 4 ai 5 ∣ ≥ − 1 ⋅ ∣ lub 、0 lub 、. . . . . . . . lub , m ∣ \begin{vmatrix} -1 & -s_0 & -s_0^2 & -s_0^3 & -s_0^4&-s_0^5 \\ -1 & -s_1 & -s_1^2 & -s_1^3 & -s_1^4&-s_1^5 \\ ...&...-&...&...&...&... \\ -1 & -s_m & -s_m^2 & -s_m ^3 & -s_m^4&-s_m^5 \\ end{vmatrix} \cdot \begin{vmatrix} a_{i0} \\ a_{i1} \\ a_{i2} \\ a_{i3} \\ a_ { i4} \\ a_{i5} \end{vmatrix} \geq -1 \cdot \begin{vmatrix} l_{ub,0}\\ l_{ub,1}\\ ...\\ l_{ub, m }\\\end{vmatrix} 11... 1s0s1... sメートルs02s12...sメートル2s03s13...sメートル3s04s14...sメートル4s05s15...sメートル5 あるそして0ある1ある2あるそして3あるそして4ある5 1 u b , 0u b , 1...b m

おすすめ

転載: blog.csdn.net/sinat_52032317/article/details/132693079