Skip to content
Peter Corke edited this page Feb 15, 2026 · 10 revisions

This page contains error and clarifications for the book. To create errata please post an Issue on Github and use the errata template.

Chapter 6

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

$${\bf Y}_z = \frac{\partial {\bf y}}{\partial {\bf z}} = \left( \begin{array}{c|c} {\bf 1}_{M \times M} & {\bf 0}_{M \times 2} \\\ {\bf 0}_{2 \times M} & {\bf G}_z \end{array} \right)$$

For the SLAM case (6.22) applies using the definition of ${\bf G}_x$ from (6.27).

Chapter 13

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.

page 566, (13.3.1)

The equation for $\phi$ should be

$$\phi = \tan^{-1} \frac{-Y}{X}$$

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).

Chapter 13, page 569, (13.3.2)

The equation for $\theta$ should be

$$\theta = \tan^{-1} \frac{Z}{\sqrt{X^2+Y^2}} + \frac{\pi}{2}$$

Unfortunately, the code implementation for $\theta$ within 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.

fig13_20

Appendix C1.4.1, page 723

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

Clone this wiki locally