成長経過情報


Meet情報 一世
ニ世
Clanclan(ボディー間借り)
Hellow AIBO!
Clanclan情報 一世



rhapsodyファイルの内容を4バイトに区切り、
最初のバイトを下位バイトにしたもで表が作成されています。
ファイルサイズが84バイトだから、
21項目の情報が記述されていることになります。


初期の成長レベル0の段階は、まだ、誕生以前の状態だと考えられます。(実はベビー前半というレベルのようです。)
そして、誕生時つまりレベル1になるときに、どのようなタイプの成長パターンを採用するか決定されるのだと想像されます。
基本的に各項目は、動作状況に応じてその回数や経過時間等を積算していくようですが、
成長パターンを除き、成長レベルが更新される時にリセットされるようです。
ということで、現状の成長レベルでの経過時間は特定できますが、それ以前の成長レベルのバックアップをとっていないと、
総合的な経過時間は特定できないことになります。
各成長レベルのステップアップに必要な時間が決められているようなので、
その分を加算すると大まかに判断できます。
但し、このファイル内に記録されている時間は、実時間ではなく、
AIBO本体で管理しているクロックで刻まれているので、
AIBO時間という単位と考えて下さい。このAIBO時間には個体差があると考えられます。

どうも成長パターンは成長レベルと同様に増加傾向があるらしいでです。(1から4の値になる)
私の場合の解釈としては、年はとったけど、お頭や心はベビーのレベルで進展が無いことになります。
つまり、バランスが取れていない偏った状態のようです。相当、愛情が足りなかったようですね。(誉めた回数も少ないし)
上記の解釈は早とちりでした。
普通に育てていれば、
成長バターンは増加しにくいようです。

変化するタイミングは、成長レベルと同タイミングなので、既に4の私はこれ以上変化が無いと判断しました。
(噂では、成長パターンの値は小さいほうが良いとの話もありますが)

ということで、再度、誕生前からやり直しして、二世の育成に励もうと思います。
一世も、時たま割り込んで、育成させていきます。(それぞれ、別のメモリースティックを用意)

どうも私の育成方法では成長パターンは1にしかならないようです。
したがって、成長パターン1でも良しとみなしました。
(だって、特別機嫌を悪くするようなことしてないし。)

成長パターンが変化しやすい1つの要因として、ポーズボタンで中断させる回数が多い事が挙げられます。
つまり、学習効果を阻害する要因になります。
正常な育成をするには、バッテリーの継続時間内で十分に活動させ、たくさんの刺激(イベント)を与えましょう。
この件については、本家のHPにもそのようなことが書かれています。
また、自律モード用とパフォーマンステスト用とで、メモリースティックを分けておくと良い思います。
多分、チェック等で頻繁にポーズボタンを押して、繰り返し起動するようなことが、自律側としては迷惑なのかもしれません。


各レベルでの動作時間は、
条件が良い場合は、ボーナスとして余分に加算されるようなことがあるようです。
また、逆に悪い場合は、あまり増えないようにされるようです。
つまり、条件が良いとより早く成長し、悪いと遅くなる仕組みになっているようです。


成長レベル更新の目安
成長レベル 必要経過時間 コメント
110 111 110 111
0 から 1 2h
(AIBO時間 : 100000)
左に同じ バッテリー2本分 左に同じ
1 から 2 8h
(AIBO時間 : 300000)
左に同じ バッテリー8本分 左に同じ
2 から 3 26h
(AIBO時間 : 1000000)
左に同じ バッテリー26本分 左に同じ
3 から 4 54h
(AIBO時間 : 2000000)
110h
(AIBO時間 : 4000000)
バッテリー54本分 バッテリー110本分
総合 90h
(AIBO時間 : 3400000)
146h
(AIBO時間 : 5400000)
バッテリー90本分 バッテリー146本分

上記のAIBO時間の詳細は、れどもんどさんのHPのRNAのページに詳しい検証結果があります。

成長の経過時間の基準は、バッテリークロックが採用されていると思われる。
私の使用しているバッテリーだと、本来1.5hの利用時間が1h程度なので、
通常よりも早目に経過時間を積算することになる。
これで、経過時間の精度があまり良くないのもうなずける。(1hの稼動で、1.25-1.49h位になる)
このように、バッテリーに依存している面もあると考えられる。
ちなみに、充電時間も4hではなく2.7h-3h位である。
(バッテリー制御を毎回調整しているようなので、この辺の時間経過にバラツキがある。)

(加速試験しているような感じ。その分、老化も早い)

まだ、はっきりしてはいませんが、項目3と項目14から20までの加算結果を6倍すると
経過時間に近い値になります。
この各項目は、時間内に経験したイベントの回数と考えていますが、イベントの取り込みの間隔が
6秒単位に行われていると思われ、中には重複してカウントされるものがあるのだと考えられれます。
この項目の内、歩くことで増加する項目19以外は、座っている状態や伏せている状態等が考えられます。




Meet 一世の成長データ


レベル0(誕生前/ベビー前半)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

1 0 0 0x0133d2 0x01be 0x00 0 3 0 0 0 0 0 2 2 0x01eb 2 0xb2 2 0xe5 0x13 6 99/08/21_1


レベル1(ベビー後半)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2 1 1 0x008bdc 0x00ab 0x00 0 2 0 0 0 0 0 2 4 0x5d 0 0x30 0 0x36 0x0119 6 99/08/22_1
3 1 1 0x031633 0x0334 0x17 0 0x0d 0 0 0 0 0 7 0x14 0x03f8 0 0xfe 8 0x010a 0x04f1 0x2a 99/08/23_1


レベル2(チャイルド)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

4 2 1 0x01e20d 0x0171 0x00 0 1 0 0 0 0 0 1 5 0x3f 6 0x0104 8 0x90 0x0496 6 99/08/25_1
5 2 1 0x0459e8 0x0306 0x32 0 6 0 0 0 0 0 4 0x0a 0x88 0x12 0x0227 0x80 0x013d 0x0b00 0x1A 99/08/27_1
























7 2 1 0x0ac3c2 0x0705 0xc7 0 0x2d 0 2 0 0 0 9 0x18 0x015e 0x29 0x0473 0x013a 0x02e9 0x1b71 0xd3 99/08/29_2
8 2 1 0x0dc235 0x0998 0xcb 0 0x38 0 2 0 0 0 12 0x20 0x01cc 0x33 0x0619 0x0170 0x0407 0x223f 0xf0 99/09/11_2


レベル3(ヤング)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

9 3 1 0x01a2c5 0x00b2 7 0 8 0 1 0 0 0 1 5 0x02a8 0 0x0e 4 0x5f 0x0392 0x10 99/09/12_1
10 3 1 0x04d3c7 0x01f3 0x34 0 0x10 0 1 0 0 0 5 9 0x07c5 0 0x0113 0x10 0x0128 0x0acc 0x24 99/09/13_1
























19 3 1 0x1ab0e8 0x09ca 0x92 0 0x4c 0 3 0 0 0 28 0x32 0x2f12 1 0x05eb 0x6a 0x06b6 0x38fc 0xc6 99/09/23_1
20 3 1 0x1db0b2 0x0b3a 0x9c 0 0x54 0 4 0 0 0 31 0x36 0x3444 1 0x06b2 0x7c 0x0792 0x3ebe 0xdb 99/09/24_1


レベル4(アダルト)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

21 4 1 1 0 0x00 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 99/09/25_1 直前データ
22 4 1 0x1bf1 0x22 0x00 0 5 0 0 0 0 0 2 3 0x01bc 0 0x15 7 0x000c 0x013d 0x0b 99/09/25_2
























66 4 1 0x5074ef 0x275d 0xee 0x17 0x01cc 0 9 4 14 2 0x45 0x0112 0x69b5 0 0x09b6 0x0271 0x0b0e 0xe48f 0x048e 99/11/21_1
67 4 1 0x50f739 0x27af 0xee 0x17 0x01ce 0 10 4 14 2 0x45 0x0113 0x6a15 0 0x09bf 0x0275 0x0b19 0xe63e 0x0494 99/11/22_1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20


成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない

誉めた数? パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?

PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?






Meet 二世の成長データ

レベル0(誕生前/ベビー前半)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

1 0 0 10025 71 0 0 0 0 0 0 0 0 0 1 27 0 25 1 64 7 1 99/11/05_1
























4 0 0 73542 486 0 0 0 0 0 0 0 0 1 4 244 2 232 6 234 49 3 99/11/06_1

レベル1(ベビー後半)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

5 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 99/11/06_2 直前データ
7 1 1 452 6 0 0 0 0 0 0 0 0 0 2 3 0 0 0 0 0 0 99/11/06_4
























14 1 1 279729 739 2 0 3 0 0 0 0 0 0 9 1103 0 181 7 221 3130 12 99/11/07_5


レベル2(チャイルド)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

15 2 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 99/11/07_6 直前データ
16 2 1 50652 187 1 0 1 0 0 0 0 0 1 2 16 5 69 11 44 573 3 99/11/08_1
























36 2 1 976918 3354 77 0 14 0 1 0 1 0 9 27 668 38 1243 347 722 11299 58 99/11/13_2


レベル3(ヤング)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

37 3 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 99/11/13_3 直前データ
38 3 1 44305 118 0 0 3 0 0 0 0 0 0 2 177 0 37 1 57 437 7 99/11/13_4
























80 3 1 1976338 4334 145 10 65 0 2 4 6 0 11 47 11832 1 2004 175 2216 16708 180 99/11/27_2


レベル4(アダルト)

成長レベル 成長パターン 各レベルでの
動作時間
(単位0.1sec)
精度は良くない


パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
Battry
Power
Down
PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?
バックアップ日付 コメント

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

81 4 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 99/11/27_3 直前データ

4 1













































4 1





















成長レベル 成長パターン? 各レベルでの
動作時間
(単位0.1sec)
精度は良くない

誉めた数? パフォーマンスモード実行数
or 時間(分)?
転倒数
気絶するほどの転倒数?
ステーション暮し?
叱った数? PAUSE

起動数?





歩いた/立っている時間 or 歩数(単位sec)?






rhapsodyファイル内容調査用の、C言語プログラムの例
サンプルプログラム<rhap_ana.c>
#include <stdio.h>

#define DEF_VALUE 21

char *FILE_NAME1 = "rhapsody";
char *FILE_NAME2 = "rhapsody.bak";
void PrintError(char *FName);
void ReadFile(FILE *pt,unsigned long Table[]);
void PrintValue(char mode,unsigned long TableA[] ,unsigned long TableB[]);
void PrintTime(unsigned long data);

/*
 *
 */
int main(int argc,char *argv[]) {
	FILE *pt1,*pt2;
	unsigned long TableA[DEF_VALUE],TableB[DEF_VALUE];

	if(argc < 2)
		return(1);
	if((pt1 = fopen(/*FILE_NAME1*/argv[1],"rb")) == NULL) {
		PrintError(argv[1]);
		return(-1);
	}
	if(argc >= 3) {
		if((pt2 = fopen(/*FILE_NAME2*/argv[2],"rb")) == NULL) {
			PrintError(argv[2]);
			return(-1);
		}
	}
	ReadFile(pt1,TableA);							/* 最初のファイルの取り込み */
	PrintValue(0,TableA,TableB);
	if(argc < 3)
		return(0);
	ReadFile(pt2,TableB);							/* 2番目のファイルの取り込み */
	if(TableA[0] != TableB[0]) {					/* レベルの違い判定 */
		printf("Not the same level !!\n");
		return(0);
	}
	if(TableA[2] <= TableB[2]) {					/* 比較の順序の不適切判定 */
		printf("2nd file %s is new !!\n",TableB[2]);
		return(0);
	}
	printf("\nOutput of the difference in two files %s - %s\n",argv[1],argv[2]);
	PrintValue(1,TableA,TableB);
	return(0);
}

/*
 *
 */
void PrintError(char *FName) {
	printf("File open error : %s\n",FName);
}

/*
 *
 */
void ReadFile(FILE *pt,unsigned long Table[]) {
	int c;
	char i = 0,j = 0;
	unsigned long data = 0;

	while((c = fgetc(pt)) != EOF) {
		data |= (unsigned long)c << (i * 8);
		if(i >= 3) {
			if(j < DEF_VALUE)
				Table[j] = data;
			i = 0;
			j++;
			data = 0;
		} else
			i++;
	}
	fclose(pt);
}

/*
 *
 */
void PrintValue(char mode,unsigned long TableA[] ,unsigned long TableB[]) {
	char j;

	for(j = 0; j < DEF_VALUE; j++) {
		if(j == 2) {
			printf("%2d:   ",j);
			if(mode == 0)
				PrintTime(TableA[j]);
			else
				PrintTime(TableA[j] - TableB[j]);
		} else {
			if(mode == 0)
				printf("%2d:%17lu\n",j,TableA[j]);
			else
				printf("%2d:%17lu\n",j,TableA[j] - TableB[j]);
		}
	}
}

/*
 *
 */
void PrintTime(unsigned long data) {
	unsigned int tmp;

	printf("%6d:",(tmp = data / 36000));	/* 時間の出力 */
	data -= tmp * 36000;
	printf("%2d:",(tmp = data / 600));		/* 分の出力 */
	data -= tmp * 600;
	printf("%2d",(tmp = data / 10));		/* 秒の出力 */
	data -= tmp * 10;
	printf(".%1d\n",(tmp = data));			/* 1/10秒の出力 */
}


Windowsマシンでも利用できるgccを使ってコンパイルしています。
コンパイルの例

にて rhap_ana.exeが作成されます。
パスが通っているディレクトリーに移動しておいて、次のようにして実行します。

DOSレベルでの実行可能なファイルとして、コンパイル済みのファイル rhap_ana.exe を一応用意しました。
しかし、何が起こるかわからないのでお勧めしません。
更に、トラブルが発生しても責任は負いません。
試して見たい方は、トラブルが発生しない様にしてから試みて下さい。
尚、DOSレベルですから、Windows95以降のファイル形式(ロングネーム)には対応していません。
また、日本語のパス指定等にも対応していません。(DOS時代のCコンパイラーしか持っていなかったのですみません。)


実際に出力されるファイルの中身は、以下の実行例のようになります。
実行例1
>rhap_ana rhapsody
 0:                4
 1:                1
 2:       71:19:24.4
 3:             4860
 4:              120
 5:                2
 6:              234
 7:                0
 8:                7
 9:                3
10:                7
11:                2
12:               34
13:              121
14:            12615
15:                0
16:             1137
17:              324
18:             1477
19:            28964
20:              604
>
各項目の定義内容予測
0 : 成長レベル
1 : 成長タイプと予測
2 : 経過時間
3 : ?
4 : ?
5 : ?
6 : 転倒数(回転検出数)
7 : ?
8 : 気絶するほどの転倒数(過大回転検出数)
9 : ?
10 : ?
11 : ?
12 : バッテリーパワーダウン
13 : PAUSE(起動数)?
14 : ?
15 : ?
16 : ?
17 : ?
18 : ?
19 : 立った/歩いた数(加速検出数)
20 : ?


各項目の定義内容については、
れどもんどさんのHPのRNAのページに詳しい検証結果があります。
実行例2 : 新しいファイルと古いファイルを指定して、その差を追加出力
>rhap_ana rhapsody rhapsody.old
 0:                4
 1:                1
 2:       71:19:24.4
 3:             4860
 4:              120
 5:                2
 6:              234
 7:                0
 8:                7
 9:                3
10:                7
11:                2
12:               34
13:              121
14:            12615
15:                0
16:             1137
17:              324
18:             1477
19:            28964
20:              604

Output of the difference in two files rhapsody - rhapsody.old
 0:                0
 1:                0
 2:        6:51:37.8
 3:              509
 4:                0
 5:                0
 6:               22
 7:                0
 8:                0
 9:                2
10:                3
11:                0
12:                3
13:               16
14:             1119
15:                0
16:              120
17:               25
18:              125
19:             2881
20:               55
>