2014-07-14 2 views
1

난 sphero 애플 리케이션에서 일하고 gysorcope 기반 운전을 추가하고 싶습니다. 내가 이해하는 한, CMMotionManager을 만들어야하고 yaw 값을 가져와 RKTiltDriveAlgorithm의 인스턴스로 매개 변수로 전달하십시오. 내가 이해하지 못하는 부분은 RKTiltDriveAlgorithm 인스턴스를 어디에 전달해야하는지입니다. 문서에서는 RKRobotControl에 인스턴스를 전달하고 어디서나 액세스 할 수없는 것 같습니다. RKRobotProvider에는 RKRobotControl 속성이 있지만 할당 할 수 없습니다. 여기에 지금까지자이로 스코프 구동 sphero

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

이야 나는이에 대한 혼란을 드려 매우 죄송합니다. 실제로 통합을 쉽게하기 위해 Tilt Controls를 간소화했습니다. 새 시스템을 사용하는 방법에 대한 예제는 RobotUISample [https://github.com/orbotix/Sphero-iOS-SDK/tree/master/samples/RobotUISample]을 참조하십시오.

간단히 말하면, 우리는 RKDriveControl [https://github.com/orbotix/Sphero-iOS-SDK/blob/master/frameworks/RobotKit.framework/Headers/RKDriveControl.h], 이것은 싱글 톤 (singleton)입니다. 이제이 싱글 톤 인스턴스를 생성하여 사용하여 Sphero를 구동하십시오. 이제 CMMotionManager를 직접 사용할 수도 있습니다. 제공해야하는 모든 것은 드라이브 유형이며 운전을 시작하라고 알려줍니다.

/*Call when Robot is connected*/ 
- (void)startDriving {  
    //Drive with Tilt 
    [[RKDriveControl sharedDriveControl] startDriving:RKDriveControlTilt]; 
} 
+0

답장을 보내 주셔서 감사합니다. 아직도 나를 위해 작동하지 않습니다. 샘플 앱에서'RKDriveControlJoyStick'을'RKDriveControlTilt'로 바꿨지 만, sphero는 전혀 움직이지 않습니다. 내가 뭔가 잘못하고 있는거야? – libec

관련 문제