3
ۖ^
                 @   s   d dl T G dd deZdS )    )*c                   s`   e Zd Z fddZ fddZG dd deZG dd deZG d	d
 d
eZdd Z	  Z
S )
GroundTestc                s   t  jddd d S )NT)viewer_crosshairsparticle_viewer)super__init__)self)	__class__ ./GroundTest.pyr      s    zGroundTest.__init__c                s   t  j  dtj_d S )NT)r   startrobotcameracolor_image_enabled)r   )r	   r
   r   r      s    
zGroundTest.startc                   s   e Zd Zd fdd	Z  ZS )zGroundTest.ProjectToGroundNc                s:   t  j| d	}| jjj| }td|d |d f  d S )
Ni@        z&Camera center point is at %4.1f, %4.1fr            d@      ^@)r   r   )r   r   r   kineproject_to_groundprint)r   eventcamera_centerpoint)r	   r
   r   r      s    z GroundTest.ProjectToGround.start)N)__name__
__module____qualname__r   __classcell__r
   r
   )r	   r   ProjectToGround   s   r   c                   s   e Zd Zd fdd	Z  ZS )zGroundTest.GrabPatchNc                sh   t  j| tj| jjjj}|ddddd d f | j_	t
j| jj	t
j}t
jd| t
jd d S )Ns   }         patchr   )r   r   nparrayr   worldlatest_image	raw_imageparentr$   cv2cvtColorCOLOR_RGB2BGRimshowwaitKey)r   r   imgZpatch2)r	   r
   r   r      s    zGroundTest.GrabPatch.start)N)r   r   r   r   r   r
   r
   )r	   r   	GrabPatch   s   r1   c                   s   e Zd Zd fdd	Z  ZS )zGroundTest.MatchPatchNc                s   t  j| tj| jjjj}|ddddd d f }|| jj	 j
 d j }td| tj|tj}tjd| tjd d S )	Nr    r!   r"   r#   r   zMatch error =sampler   )r   r   r%   r&   r   r'   r(   r)   r*   r$   flattensumr   r+   r,   r-   r.   r/   )r   r   r0   r2   diffZsample2)r	   r
   r   r      s    
zGroundTest.MatchPatch.start)N)r   r   r   r   r   r
   r
   )r	   r   
MatchPatch   s   r6   c             C   s   t  jdj| }| j jdj| }| j jdj| }| j jdj| }tdjd}|j|j| tdjd}|j|j| td	jd
}|j|j| t	 jd}|j|j| t	 jd}	|	j|j| t	 jd}
|
j|j| | S )a2  
        dispatch: StateNode()
        dispatch =TM('p')=> project
        dispatch =TM('g')=> grab
        dispatch =TM('m')=> match
    
        project: self.ProjectToGround() =N=> dispatch
    
        grab: self.GrabPatch() =N=> dispatch
    
        match: self.MatchPatch() =N=> dispatch
    
      dispatchprojectgrabmatchptextmsgtrans1gtextmsgtrans2mtextmsgtrans3
nulltrans1
nulltrans2
nulltrans3)
	StateNodeset_name
set_parentr   r1   r6   TextMsgTransadd_sourcesadd_destinations	NullTrans)r   r7   r8   r9   r:   r<   r>   r@   rA   rB   rC   r
   r
   r   setup&   s"    zGroundTest.setup)r   r   r   r   r   rD   r   r1   r6   rK   r   r
   r
   )r	   r   r      s   	r   N)	cozmo_fsmStateMachineProgramr   r
   r
   r
   r   <module>   s   