詳解確率ロボティクスの訂正・コードのアップデート

Sun May 23 09:15:20 JST 2021 (modified: Fri Jul 14 13:11:45 JST 2023)
views: 3676, keywords:詳解確率ロボティクス

コードのアップデート

こちらはGitHubのコードに随時反映しています。本の内容については、もし第2版が出たらそのときにアップデートします。アップデート前のコードについては、横にコメントアウトして残してあるので、もし動かないときは、そちらのコードを試してみてください。

section_sensor/lidar_200.ipynbセル[9]

Pandas 2.x系で、前のセルのvalue_countが集計した列にcountと名前をつけるようになったことに対するコードの修正。

freqs["probs"] = freqs["count"]/len(freqs["count"]) # 古いバージョン: freqs["probs"] = freqs["lidar"]/len(data["lidar"]) ###addprobs###
   freqs.transpose()

情報提供

ありがとうございます。

section_sensor/lidar_600.ipynbセル[8]

seaborn(0.12以降?)のjointplotの引数が変わったことへの対応。このコードで動かない場合は、matplotlibもアップデートが必要。

sns.jointplot(data, x="hour", y="lidar", kind="kde") #古いバージョン: sns.jointplot(data["hour"], data["lidar"], data, kind="kde")
   plt.show()

section_sensor/lidar_600.ipynbセル[11]

pandas(2.x)でデータが自動でソートされなくなったことへの対応。sort_valuesをくっつけました。

p_z = pd.DataFrame(probs.transpose().sum()).sort_values("lidar")  #行と列を転置して各列を合計 #旧バージョン: p_z = pd.DataFrame(probs.transpose().sum())
   p_z.plot()
   p_z.transpose()

section_sensor/lidar_600.ipynbセル[13]

上の訂正と同じ理由。

cond_z_t = (probs/p_t[0]).sort_values("lidar")  #列(時間)ごとにP(t)で割るとP(x|t)となる   ###lidar600cond #旧バージョン: cond_z_t = probs/p_t[0]
   cond_z_t

section_sensor/multi_gauss1.ipynbセル[1]最後から2行目

seaborn(0.12以降?)のjointplotの引数が変わったことへの対応。このコードで動かない場合は、matplotlibもアップデートが必要。

(略)
   sns.jointplot(d, x="ir", y="lidar", kind="kde") #旧バージョン: sns.jointplot(d["ir"], d["lidar"], d, kind="kde")
   plt.show()

section_sensor/multi_gauss2.ipynbセル[2]

seaborn(0.12以降?)のjointplotの引数が変わったことへの対応。このコードで動かない場合は、matplotlibもアップデートが必要。

sns.jointplot(d, x="ir", y="lidar", kind="kde") #度数分布を描画 #旧バージョン: sns.jointplot(d["ir"], d["lidar"], d, kind="kde")
   d.cov()

訂正事項

場所 訂正事項 発見者 一言
p.143 式(6.15)の真ん中の行列の2行目 \( \omega \Longrightarrow \omega_t \) 見落としてました・・・
p.334 セル[8]の2行目 beta_0 \( \Longrightarrow \) zeta_0 https://github.com/ryuichiueda/LNPR/issues/1 すみません!下の計算結果は、運の良いことにわずかに違うだけになります。

第6刷で訂正済み

場所 訂正事項 発見者 一言
p.247 12行目 消費電力量を0からマイナスしたものに-1をかけたものを \( \Longrightarrow \)消費電力量に-1をかけたものを いとこのいとこは自分だみたいな文になってますね・・・

第5刷で訂正済み

場所 訂正事項 発見者 一言
p.8 14行目 一般的 \( \Longrightarrow \) 一般化 変換ミスです・・・
p.20 下から2行目 頻度が大きい \( \Longrightarrow \) 頻度が高い 上田 頻度は「高い」「低い」です。
p.91 1、3行目 角度、角速度\( \Longrightarrow \)速度、角速度 1箇所ならともかくコピペで2箇所間違えました。
p.96 noise_simulation7 .ipynb [3] 19行目、p.97 noise_simulation8 .ipynb [3] 26行目、p.98 noise_simulation9 .ipynb [3] 31、38行目、p.99 noise_simulation10 .ipynb [3] 47行目、p.127 mcl11.ipynb [2] 19行目 relative_polar_pos $$\longrightarrow$$ observation_function コードの差し替えミスでした。
p.173 式(7.33)、式(7.35) \( (1-\tilde{N})/N \) \( \Longrightarrow \) \( (N-\tilde{N})/N \) 算数は苦手です。

第4刷で訂正済み

場所 訂正事項 発見者 一言
p.56 式(2.94) 積分は不要 上田 \( \boldsymbol{x}\)で積分したら\(p_3\)が\( \boldsymbol{x} \)の関数にならないじゃないか・・・
p.62 section_sentor \( \Longrightarrow \) section_sensor sentorとは。
p.80 ideal_robot10.ipynb [7] 21行目 relative_polar_pos $$\longrightarrow$$ observation_function @maskot1977さん コードの差し替えミスでした。
p.186 ページ上にある式番号を振っていない3行の式 1行目から2行目のイコールまでが不要。2行目の「右の分布から不要な・・・」という補足も不要。つまり、2行目と3行目をイコールでつないだ式が書いてあれば十分。 上田 式(8.10)と比べると余計な記述をしていると思いました。
p.191 式(8.33)の最後の行列 右上の要素の\( \ell^2_{\hat{\boldsymbol{m}}_{t-1}} \)と左下の要素の\( \ell_{\hat{\boldsymbol{m}}_{t-1}} \)を入れ替え コピペミスです・・・。
p.196 式(8.54) \( \lt N(m) \gt_m \) \( \Longrightarrow \) \( [[ N(m) ]]_m \) 上田 凡ミスです。
p.233 式(9.65) \( \Omega_{j,t} = R_{j,t}Q_{j,t}R_{j,t}^\top \) \( \Longrightarrow \) \( \Omega_{j,t} = (R_{j,t}Q_{j,t}R_{j,t}^\top)^{-1} \) hotsuyukiさん 気を抜いておりました・・・
p.233 式(9.65)の下の行 写像した共分散行列です。\( \Longrightarrow \)写像して得られる精度行列です。 hotsuyukiさん 上の訂正に伴う訂正です
p.233 セルの24行目、p.237 セルの16行目 右辺の行列をnp.linalg.inv( R.dot(Q1).dot(R.T))と逆行列に訂正 hotsuyukiさん 上の訂正に伴う訂正です
p.234 図9.12(c) この図に差し替え hotsuyukiさん 上の訂正に伴う訂正です
p.234 最終行 方向に星印が移動\( \Longrightarrow \)方向に、わずかに星印が移動 hotsuyukiさん 上の訂正に伴う訂正です
p.364 脚注2 共分散行列 \( \Longrightarrow \) 半正定値対称行列 もう少し補足すると共分散行列ではなくて精度行列です。

第3刷で訂正済み

場所 訂正事項 発見者 一言
p.16 本文下から2行目 とうてい受け入れにくい$$\longrightarrow$$とうてい受け入れがたい 上田 「難い」をひらがなに直すときに手違いがありました。
p.8 「冷戦期」の下の文 Roudolf$$\longrightarrow$$Rudolf 大変失礼いたしました。
p.8 下から10行目 ネリ・ゴードン(Neli ...$$\longrightarrow$$ニール・ゴードン(Neil ... ずーっと間違えて覚えてました。名前間違えるのは最悪です。すんません・・・
p.19 本文9行目 こと分かります。$$\longrightarrow$$ことが分かります。
p.56 数式も含めて10行目 足し合わせもの$$\longrightarrow$$足し合わせたもの
p.121 5.3.4の表題の下の行 $$\delta_{\omega\omega} = 0.2 \delta_{\nu\omega} = 0$$$$\longrightarrow$$$$\delta_{\omega\omega} = 0.2, \delta_{\nu\omega} = 0$$
p.125 式も含めて下から10行目 は,はそれぞれ$$\longrightarrow$$はそれぞれ
p.147 式(6.26) $$\hat{\mu}_x - m_y$$ $$\longrightarrow$$ $$\hat{\mu}_y - m_y$$ 校正から漏れました
p.156 式も含めて6行目 N個ぶ$$\longrightarrow$$N個選ぶ
p.239 6行目 graphbased_slam..._sensor2$$\longrightarrow$$graphbased_slam...sensor2.ipynb
p.259 本文6行目 区関数$$\longrightarrow$$区間数
p.285 下から3行目 ようにをつけて$$\longrightarrow$$ように値をつけて
p.313 12.4.1の表題の2行上 この方法には$$\longrightarrow$$この方法は
p.315 1行目 越えることに$$\longrightarrow$$越えるごとに
p.327 下から4行目 作ること相当し$$\longrightarrow$$作ることに相当し
p.345 中央 負担率(responsibilty)$$\longrightarrow$$負担率(responsibility) 愛が足りない。
p.375 本文下から2行目 リポリトリ$$\longrightarrow$$リポジトリ
p.379 [Gordon 1993] Neli$$\longrightarrow$$Neil 上に同じ。大変すみません。
p.380 [Igl 2018] Leanring$$\longrightarrow$$Learning 勢いでタイプしてそのままになってました。
p.380 [Kalman 1960] Roudolf$$\longrightarrow$$Rudolf すみません!
p.382 [Sutton 1996] Advannces$$\longrightarrow$$Advances Macのキーボードが・・・

第2刷で訂正済み

場所 訂正事項 発見者 一言
p.75 ideal_robot7.ipynb [6]の6行目 landmark_id = len(self.landmarks) + 1 $$\longrightarrow$$ landmark_id = len(self.landmarks) リポジトリのコードも直しておきました。
p.94 4.3節の5行目 次の4種類 $$\longrightarrow$$ 次の5種類 修正漏れです
p.99 下から2,3行目、p.100のコードと1行目 occulusion $$\longrightarrow$$ occlusion よくやるタイプミス&修正漏れですすみません・・・
p.364 式(B.20)の右辺 $$-\frac{1}{2}\boldsymbol{x}^\top (G^\top \Sigma_2^{-1} G - \Sigma_1^{-1})\boldsymbol{x}$$ $$\longrightarrow$$ $$-\frac{1}{2}\boldsymbol{x}^\top (G^\top \Sigma_2^{-1} G + \Sigma_1^{-1})\boldsymbol{x}$$ すみません・・・
ノート   このエントリーをはてなブックマークに追加 
 

やり散らかし一覧

記事いろいろ