Гироскоп управляемый сферо

Я работаю над приложением sphero и хочу добавить вождение на основе гизороскопа. Насколько я понимаю, мне нужно создать CMMotionManager, получить yaw значение и передать его в качестве параметра экземпляру RKTiltDriveAlgorithm, Чего я не понимаю, так это где я прохожу RKTiltDriveAlgorithm пример. Документация говорит, чтобы передать экземпляр RKRobotControl который, кажется, нигде не доступен. RKRobotProvider имеет свойство для RKRobotControl но это не присваивается Вот мой код до сих пор

RKTiltDriveAlgorithm *tilt = [[RKTiltDriveAlgorithm alloc] initWithOrientation:[UIApplication sharedApplication].statusBarOrientation];
...
[self.motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) {
    float yaw = (180/M_PI) * motion.attitude.yaw;
    tilt.orientationAngle = yaw;
}];

Буду признателен за некоторые советы, спасибо:)

1 ответ

Я очень сожалею о путанице по этому поводу. На самом деле мы упростили управление наклоном, чтобы упростить интеграцию. Пожалуйста, посмотрите RobotUISample [ https://github.com/orbotix/Sphero-iOS-SDK/tree/master/samples/RobotUISample] для примера того, как используется новая система.

Короче говоря, мы переместили Tilt под капот RKDriveControl [ https://github.com/orbotix/Sphero-iOS-SDK/blob/master/frameworks/RobotKit.framework/Headers/RKDriveControl.h%5D, который является одиночным. Теперь вы просто создаете и используете этот экземпляр-одиночка для управления Sphero. Мы даже сейчас напрямую подключаемся к CMMotionManager. Все, что вам нужно предоставить, - это тип диска и сообщить ему, чтобы он начал движение.

/*Call when Robot is connected*/
- (void)startDriving {    
    //Drive with Tilt
    [[RKDriveControl sharedDriveControl] startDriving:RKDriveControlTilt];
}
Другие вопросы по тегам