(self, axes: Optional[List[Axis]] = None)
Home the entire robot and initialize current position.
        :param axes: A list of axes to home. Default is `None`, which will
                     home everything.
Home the entire robot and initialize current position.
        :param axes: A list of axes to home. Default is `None`, which will
                     home everything.
Home the entire robot and initialize current position . : param axes : A list of axes to home . Default is None which will home everything .
async def home(self, axes: Optional[List[Axis]] = None):
        """Home the entire robot and initialize current position.
        :param axes: A list of axes to home. Default is `None`, which will
                     home everything.
        """
        await self._wait_for_is_running()
        self._reset_last_mount()
        # Initialize/update current_position
        checked_axes = axes or [ax for ax in Axis]
        gantry = [ax for ax in checked_axes if ax in Axis.gantry_axes()]
        smoothie_gantry = [ax.name.upper() for ax in gantry]
        smoothie_pos = {}
        plungers = [ax for ax in checked_axes if ax not in Axis.gantry_axes()]

        async with self._motion_lock:
            if smoothie_gantry:
                smoothie_pos.update(await self._backend.home(smoothie_gantry))
                self._current_position = self._deck_from_smoothie(smoothie_pos)
            for plunger in plungers:
                await self._do_plunger_home(axis=plunger, acquire_lock=False)
async def home ( self , axes : Optional [ List [ Axis ] ] = None ) : await self . _wait_for_is_running ( ) self . _reset_last_mount ( ) # Initialize/update current_position checked_axes = axes or [ ax for ax in Axis ] gantry = [ ax for ax in checked_axes if ax in Axis . gantry_axes ( ) ] smoothie_gantry = [ ax . name . upper ( ) for ax in gantry ] smoothie_pos = { } plungers = [ ax for ax in checked_axes if ax not in Axis . gantry_axes ( ) ] async with self . _motion_lock : if smoothie_gantry : smoothie_pos . update ( await self . _backend . home ( smoothie_gantry ) ) self . _current_position = self . _deck_from_smoothie ( smoothie_pos ) for plunger in plungers : await self . _do_plunger_home ( axis = plunger , acquire_lock = False )