code: def rotate(self, azimuth, axis=None):
          
          target = self._target
  
          y_axis = self._n_pose[:3, 1].flatten()
          if axis is not None:
              y_axis = axis
          x_rot_mat = transformations.rotation_matrix(azimuth, y_axis, target)
          self._n_pose = x_rot_mat.dot(self._n_pose)
  
          y_axis = self._pose[:3, 1].flatten()
          if axis is not None:
              y_axis = axis
          x_rot_mat = transformations.rotation_matrix(azimuth, y_axis, target)
          self._pose = x_rot_mat.dot(self._pose)
docs: Rotate the trackball about the "Up" axis by azimuth radians.
  
          Parameters
          ----------
          azimuth : float
              The number of radians to rotate.