-
Notifications
You must be signed in to change notification settings - Fork 30
Errata
This page contains error and clarifications for the book. To create errata please post an Issue on Github and use the errata template.
page 233, (6.22) Issue #15
This is the insertion Jacobian for the SLAM case, not the landmark-only case as it should be. For the landmark-only case the Jacobian is
For the SLAM case (6.22) applies using the definition of
page 299-300 Issue #15
The eval method for symbolic expressions has been deprecated, and the double method should be used instead.
This appears three times in the final two code snippets of this section.
page 334 Issue #18
This book uses the spatial velocity convention
and the following code snippet is also in error, and should be:
>> Ja = [inv(A) zeros(3); zeros(3) ones(3)]*J;
page 471, (11.5.2) Issue #7
The function vision.LocalMaximaFinder has been [deprecated and removed](https://au.mathworks.com/help/vision/ref/vision.localmaximafinder-system-object.html from MATLAB 2024a. Use imregionalmax instead, but the arguments and return are quite different.
For more details see the errata for Appendix J.2 below.
The equation for
to match the x- and y-axis conventions shown in Fig. 13.16. That error has also been fixed in the code (pushed to GH 2025-03-02 commit 7af0aa414b150cd39973e7d18fa25d7868f27cc8).
The equation for
Unfortunately, the code implementation for CatadioptricCamera.project_point() has a different error. Correcting that code error (pushed to GH 2025-03-02 commit 7af0aa414b150cd39973e7d18fa25d7868f27cc8) we get an alternative version of Fig 13.20. This version exhibits much more distortion because the cube is quite close to the camera.

There's an error in the third code snippet on the page
x = inv(sqrtm(E))*y;
plot(x(:,1),x(:,2));
should be
x = inv(sqrtm(E))*y;
clf; plot(x(1,:),x(2,:));
because the arrays x and y are both 2x50, ie. each column is a point.
Appendix J.2, page 765 Issue #7
The function vision.LocalMaximaFinder has been [deprecated and removed](https://au.mathworks.com/help/vision/ref/vision.localmaximafinder-system-object.html from MATLAB 2024a. Use imregionalmax instead, but the arguments and return are quite different.
>> LMaxFinder = vision.LocalMaximaFinder(MaximumNumLocalMaxima=3, ...
>> NeighborhoodSize=[3 3],Threshold=0);
>> LMaxFinder(z)
ans =
3 x 2 uint32 matrix
3 4
5 2
5 4
becomes
>> [row,col] = ind2sub(size(z), find(imregionalmax(z)))
row =
4
2
col =
3
5
which finds only 2 of the maxima, compared to the previous 3. Maxim
RVC3 Wiki