れごぼく@メガネボーイズ2008 RSSフィード

2008-11-15

どうやってステアリング操作を保持しておくか? 21:16 どうやってステアリング操作を保持しておくか? - れごぼく@メガネボーイズ2008 を含むブックマーク はてなブックマーク - どうやってステアリング操作を保持しておくか? - れごぼく@メガネボーイズ2008 どうやってステアリング操作を保持しておくか? - れごぼく@メガネボーイズ2008 のブックマークコメント

char変数でも用意しておくか

マーカー検知走行をやってたときの最後のステアリング操作、色判定結果を記録しておけばいいので、char変数に記録しておく。

	// マーカー検知走行での最後のステアリング操作
	unsigned char m_lastSteering;

	// マーカー検知走行での最後の色識別結果
	unsigned char  m_lastColor;

マーカー検知前走行でステアリング操作と色判定結果を記録しておく

void ActiveMarkerDetectionLogic::runBeforeMarkerDetect(SRunningSituationData *pData) {
	// 駆動ユニットと操舵ユニットを制御する
	// ステアリング補正の際に、マーカー検知前走行最後のステアリング操作と色判定結果が
	// 必要になるため、記録しておく。
	if (pData->ColorDistinctionResult == WHITE) {
		this->m_pSteeringUnit->turn(LEFT_TURN, MARKER_DETECTION_NORMAL_STEERING_SPEED);
		this->m_lastSteering = LEFT_TURN;
		this->m_lastColor = WHITE;
	} else if (pData->ColorDistinctionResult == BLACK) {
		this->m_pSteeringUnit->turn(RIGHT_TURN, MARKER_DETECTION_NORMAL_STEERING_SPEED);
		this->m_lastSteering = RIGHT_TURN;
		this->m_lastColor = BLACK;
	} else {
		this->m_pSteeringUnit->turn(LEFT_TURN, MARKER_DETECTION_ON_MARKER_STEERING_SPEED);
		this->m_lastSteering = LEFT_TURN;
		this->m_lastColor = MARKER;
	}
	this->m_pDriveUnit->forward(MARKER_DETECTION_NORMAL_DRIVE_SPEED);
}

しかし、問題なのはステアリングの慣性の違いをどう把握するかだ

http://meganeboy.g.hatena.ne.jp/fuji_ttt/20081019

の②と③の違い。

ショートカットでも、苦戦中らしい。