Writeup

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Writeup as PDF for free.

More details

  • Words: 1,087
  • Pages: 4
Module 4 Programming - Matlab E. Wyatt Anderson December 14, 2007

1 1.1

Written Exercises Exercises 1, 2 and 3

For the sake of simplicity in future use of the equations, I formulated the appropriate expressions while taking f into account at all steps. Using the properties of similar triangles, we can construct equations for the position of the virtual image of the point P = [XY Z]T on the virtual image plane, f away from the focal plane xy as follows (The z coordinate of the xl,r points on the virtual image plane is f , and θ is the angle of the inner triangles formed by the rays through the image plane): xr

= b − f tan θ

xl

= b − f tan arctan   b−X = b−f Z = −b − f tan θ

yl = yr

b−X Z

−b − X = −b − f tan arctan   Z −b − X = −b − f Z Y = f ∗( ) Z

Since we have two cameras, we can use the similar properties of similar triangles to create inverse expressions given xl , xr , yl , yr , f and b for the point P = [XY Z]T . We effectively create equations for the lines running from the focal plane through the virtual image plane on the xz axis, then set them equal to each other to find the intersection, which is the point P : x = z

=

y

=

b(xl + xr ) 2b + xl − xr   −f (x − xl ) +f −b − xl yl ∗ z f

1

To test these equations, I first generated MATLAB functions fproject and iproject for the forward and inverse projections of a point, respectively (these functions are included in respectively named .m files). For example: >> P P = 200 5 6 >> [xl, xr, yl, yr] = fproject(P, 1, 1) xl = 32.5000 xr = 34.1667 yl = 0.8333 yr = 0.8333 >> iproject(xl, xr, yl, yr, 1, 1) x = 200.0000 z = 6.0000 y = 5.0000 ans = 200.0000 >>

2

Stereo Camera Simulation

To complete the stereo camera simulation, I translated the equations from the above notation in to MATLAB programs. The main driver function plotmodel, in file plotmodel.m, takes a minimum of 3 arguments and an optional total of 6 arguments, as follows. plotmodel() depends on move.m and fproject.m to function: The model argument is a multicolumn plotmodel(model, focal length, b, translate matrix, tilt degrees, pan degrees) matrix, with three rows (X , Y , and Z coordinates), with each column representing one point, as in the MyBox example, which we will use to generate the upcoming figures in this section. This function performs coordinate transformation, unit conversion, and rendering tasks, by taking the input model and then applying the appropriate X , Y , and Z translations from h iT the X Y Z translation matrix, then it converts the units from millimeters to pixels based on the specified CCD size, which in this case is equal to .5in. Once the points are all projected using calls to fproject in fproject.m, the points are all plotted, using the o marker for the ”right” camera and the + marker for the ”left” camera. The results of changing the length of f , as shown in Figure 1, are commensurate with what we would expect given a real camera. The results of panning, tilting, and translating the camera positions, as shown in Figure 2, are also what we would expect. To translate, we simply apply the translation amount to the point before we project it. To tilt and pan, 2

0

0

0

50

50

50

100

100

100

150

150

150

200

200

200

250

250

250

300

300

300

350

350

350

400

400

400

450

450 0

100

200

300

400

500

450

0

600

100

(a) f = 12mm

200

300

400

500

0

600

100

(b) f = 24mm

200

300

400

500

600

(c) f = 36mm

Figure 1: Plots of the camera view of MyBox at various lengths of f

0

0

0

50

50

50

100

100

100

150

150

150

200

200

200

250

250

250

300

300

300

350

350

350

400

400

400

450

450

0

100

200

300

400

500

450 0

600

(a) f = 24mm, 2◦ tilt

100

200

300

400

500

600

0

(b) f = 24mm, 4◦ pan

0

100

200

50

50 100

150

150

200

200

250

250

300

300

350

350

400

400

450

450 0

100

200

300

400

500

600

0

100

200

300

400

500

600

(d) Translation of 500mm in the x (e) Translation of 500mm in the x direction direction and 500mm in the y direction

Figure 2: Various transformations of the camera position

3

400

500

600

(c) f = 24mm, b = 20mm

0

100

300

we use the product of two transformation matrices defined in move.m and apply them to the point P that we pass to fproject.

3

Control Simulation

I started to build the control simulation by building the functionality in the .m files Controller.m, Simulate.m, Camera.m and getconfig.m. Controller.m was destined to be the PID controller as per the assignment, Simulate.m was destined to be the driver for the control simulation, Camera.m is a functional representation of a camera that can return projected x, y points in pixels based on the configuration data and a passed point in 3D space P , and getconfig.m is a simple function for storing configuration variables and returning them based on a passed key. Unfortunately, I’ve been unable to get the simulation to a working state. I built up the appropriate functions to the point where Simulate() should plot a graph of the tilt error, but given any variation of the P gain, other variables, image size, or the algorithms, the results are incongruous with what I would expect. I’ve tried a multitude of combinations in all of my .m files to see if I could get the simulation to behave, but, alas, the clock has run out. I’m sure with more background in control theory, linear algebra, or MATLAB programming I could have formulated an appropriate solution to the problem, but with the skills I have now and what I’ve been able to pick up in this limited amount of time for this module, I’m currently unable to continue.

4

Related Documents

Writeup
November 2019 17
Writeup
October 2019 21
Itct Writeup
November 2019 22
Final Writeup
November 2019 18
Camp Writeup
December 2019 18