o
    wiT                     @   s   d Z ddlZddlmZ ddlmZmZ dZdZ	e	 dZ
eejZd	\ZZd
eed d  d  ZejddejdddZdejeefeed eediZG dd deZe ZdS )zAgile X Piper arm with exoskeleton only on the base (no exos on links).

Single ArUco board on the robot base for camera/pose estimation; arm links
have no exo meshes or markers. Add your Piper MuJoCo model under robot_models/agilex_piper/.
    N)aruco   )ExoskeletonConfig
LinkConfigzrobot_models/agilex_piperzrobot_models/so100_modelz/../board_imgs)   r   g      #@
   d         )dtypelarger_base)sizeZmarkerLengthZmarkerSeparation
dictionaryidsc                   @   st   e Zd ZdZdZe dZe dZe dZ	de
 diZeZdeddd	d
eg deg ddddiZdS )AgileXPiperBaseOnlyConfigzLPiper arm: only the base has an exoskeleton (ArUco board); no exos on links.ZAgileX_Piper_BaseOnlyz/piper_exo.xmlz/background.xmlz/assets/r   z/larger_base.png	base_linkzbase_link.stlz4../../so100_blender_testings/piper_base_camboard.stl)gQg{GWgRQ@)r   r   r   gRQ?)mujoco_namepybullet_namerobot_mesh_pathexo_mesh_patharuco_offset_posaruco_offset_rotaruco_board_nameboard_lengthN)__name__
__module____qualname____doc__namePIPER_MODEL_DIRbase_xml_pathSO100_MODEL_DIRbackground_xml_pathcompiler_meshdirBOARD_IMG_DIRaruco_boardslink_boardsaruco_board_objectsr   nparraylinks r,   r,   O/data/cameron/para/panda_streaming/hand_eye_calib/../ExoConfigs/agilex_piper.pyr      s&    


r   )r   numpyr)   cv2r   exoskeletonr   r   r    r"   r%   getPredefinedDictionaryDICT_6X6_250
aruco_dictn_aruco_rown_aruco_colxarangeint32reshapeZboard_ids_base	GridBoardr'   r   AGILEX_PIPER_BASE_ONLY_CONFIGr,   r,   r,   r-   <module>   s*    

