o
    wi                  
   @   sj  d Z ddlZddlZddlmZ ddlmZmZmZ dZ	e	 dZ
eejZedd	ed
deddeddeddeddedddZi Zd\ZZdeed d  d  ZdD ]Zejeefeed eee ejdddee< qad\ZZdeed d  d  Zejeefeed eed ejddded< G dd deZe ZdS )z>SO100 robot with adhesive-mounted ArUco markers configuration.    N)aruco   )ExoskeletonConfig
LinkConfigBLENDER_STL_DIRzrobot_models/so100_modelz/../board_imgs      I   R   [   d   m   v      )larger_baseshoulder
upper_base
lower_baserollfixed_grippermoveable_gripper)   r   g      @
   )r   r   r   r   r   r   )sizeZmarkerLengthZmarkerSeparation
dictionaryids)   r   g      #@r   c                   @   s  e Zd ZdZdZe dZe dZe dZdd dd	d
dddd	 D Z
eZeddde deg deddejd gdddeddde deg deej d ddgdddeddd e d!eg d"edej d dgddded#d$d%e d&eg d'edej d dgd#dded(d)d*e d+eg d,edej d dgd(dded-d.d/e d0eg d1edejd dgd-dddZd2S )3SO100HoleMountsConfigzBComplete configuration for SO100 robot with adhesive ArUco mounts.ZSO100_Adhesivez/so_arm100.xmlz/background.xmlz/assets/c                 C   s    i | ]\}}|t  d | qS )/)BOARD_IMG_DIR).0kv r$   S/data/cameron/para/panda_streaming/hand_eye_calib/../ExoConfigs/so100_holemounts.py
<dictcomp>#   s     z SO100HoleMountsConfig.<dictcomp>zlarger_base.pngzshoulder.pngzupper_base.pngzlower_base.pngzroll.pngzfixed_gripper.png)r   r   r   r   r   r   r   BasezBase.stlz,/base_in_holes_support_withplane_larger2.stl)ig     >   r      gRQ?)mujoco_namepybullet_namerobot_mesh_pathexo_mesh_patharuco_offset_posaruco_offset_rotaruco_board_nameboard_lengthr   ZRotation_PitchzRotation_Pitch.stlz;/shoulder_holetest_separated_withbase_joined_wraparound.stl)r   gzG&@M   g
ףp=
?r   Z	Upper_ArmzUpper_Arm.stlz/upper_arm_both_testing.stl)gGztCg3333330@g      (r   Z	Lower_ArmzLower_Arm.stlz/lower_arm_exo_redo2.stl)gLBg
ףp=
(@g(\µ0@r   ZWrist_Pitch_RollzWrist_Pitch_Roll.stlz/roll_redo_both_shift.stl)g     BgRBgQ@r   Z	Fixed_JawzFixed_Jaw.stlz/fixed_gripper_exo.stl)gA@gfffff>r   N)__name__
__module____qualname____doc__nameSO100_MODEL_DIRbase_xml_pathbackground_xml_pathcompiler_meshdiritemsaruco_boardslink_boardsaruco_board_objectsr   r   nparraypilinksr$   r$   r$   r%   r      s@    


$&&&$
r   )r6   numpyr@   cv2r   exoskeletonr   r   r   r8   r    getPredefinedDictionaryDICT_6X6_250
aruco_dictarangeZboard_ids_dictr>   Zn_aruco_rowZn_aruco_colxr7   	GridBoardastypeint32reshaper   SO100_CONFIGr$   r$   r$   r%   <module>   s&    
L64
 