| 
									
										
										
										
											2012-06-06 07:51:12 +08:00
										 |  |  | function plotPose3(pose, P, axisLength)
 | 
					
						
							| 
									
										
										
										
											2012-09-08 13:28:25 +08:00
										 |  |  | % plotPose3 shows a Pose, possibly with covariance matrix | 
					
						
							| 
									
										
										
										
											2012-06-06 07:51:12 +08:00
										 |  |  | if nargin<3,axisLength=0.1;end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | % get rotation and translation (center) | 
					
						
							|  |  |  | gRp = pose.rotation().matrix();  % rotation from pose to global | 
					
						
							| 
									
										
										
										
											2020-08-18 02:37:12 +08:00
										 |  |  | C = pose.translation(); | 
					
						
							| 
									
										
										
										
											2012-06-06 07:51:12 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-24 03:21:00 +08:00
										 |  |  | if ~isempty(axisLength) | 
					
						
							|  |  |  |     % draw the camera axes | 
					
						
							|  |  |  |     xAxis = C+gRp(:,1)*axisLength; | 
					
						
							|  |  |  |     L = [C xAxis]'; | 
					
						
							|  |  |  |     line(L(:,1),L(:,2),L(:,3),'Color','r'); | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     yAxis = C+gRp(:,2)*axisLength; | 
					
						
							|  |  |  |     L = [C yAxis]'; | 
					
						
							|  |  |  |     line(L(:,1),L(:,2),L(:,3),'Color','g'); | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     zAxis = C+gRp(:,3)*axisLength; | 
					
						
							|  |  |  |     L = [C zAxis]'; | 
					
						
							|  |  |  |     line(L(:,1),L(:,2),L(:,3),'Color','b'); | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2012-06-06 07:51:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | % plot the covariance | 
					
						
							| 
									
										
										
										
											2012-06-09 06:34:03 +08:00
										 |  |  | if (nargin>2) && (~isempty(P)) | 
					
						
							| 
									
										
										
										
											2012-06-06 07:51:12 +08:00
										 |  |  |     pPp = P(4:6,4:6); % covariance matrix in pose coordinate frame     | 
					
						
							|  |  |  |     gPp = gRp*pPp*gRp'; % convert the covariance matrix to global coordinate frame | 
					
						
							| 
									
										
										
										
											2012-08-04 05:02:45 +08:00
										 |  |  |     gtsam.covarianceEllipse3D(C,gPp);   | 
					
						
							| 
									
										
										
										
											2012-06-06 07:51:12 +08:00
										 |  |  | end | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | end |