diff --git a/README.md b/README.md index efecde4..79e7377 100644 --- a/README.md +++ b/README.md @@ -65,3 +65,10 @@ Usage of record: -record-json-path string Path where to write json files, use RECORD_JSON_PATH if args not set ``` + +## Useful + +Debug record: + + go run ./cmd/rc-tools display record -mqtt-broker tcp://diabolo.local:1883 -mqtt-username satanas -mqtt-password satanas -mqtt-client-id display-record -mqtt-topic-records car/satanas/part/records + diff --git a/cmd/rc-tools/rc-tools.go b/cmd/rc-tools/rc-tools.go index 7dca447..bf7ea80 100644 --- a/cmd/rc-tools/rc-tools.go +++ b/cmd/rc-tools/rc-tools.go @@ -55,12 +55,11 @@ func main() { cli.SetDefaultValueFromEnv(&ociImage, "TRAIN_OCI_IMAGE", "") cli.SetDefaultValueFromEnv(&bucket, "TRAIN_BUCKET", "") - flag.BoolVar(&debug, "debug", false, "Display debug logs") displayFlags := flag.NewFlagSet("display", flag.ExitOnError) - displayFlags.Usage = func(){ + displayFlags.Usage = func() { fmt.Printf("Usage of %s %s:\n", os.Args[0], displayFlags.Name()) fmt.Printf(" camera\n \tLive from car camera\n") fmt.Printf(" record\n \tLive from published records\n") @@ -87,15 +86,13 @@ func main() { recordFlags.StringVar(&recordTopic, "mqtt-topic-records", os.Getenv("MQTT_TOPIC_RECORDS"), "Mqtt topic that contains record data for training, use MQTT_TOPIC_RECORDS if args not set") recordFlags.StringVar(&recordsPath, "record-path", os.Getenv("RECORD_PATH"), "Path where to write records files, use RECORD_PATH if args not set") - var basedir, destdir string impdkFlags := flag.NewFlagSet("import-donkey-records", flag.ExitOnError) impdkFlags.StringVar(&basedir, "from", "", "source directory") impdkFlags.StringVar(&destdir, "to", "", "destination directory") - trainingFlags := flag.NewFlagSet("training", flag.ExitOnError) - trainingFlags.Usage = func(){ + trainingFlags.Usage = func() { fmt.Printf("Usage of %s %s:\n", os.Args[0], trainingFlags.Name()) fmt.Printf(" list\n \tList existing training jobs\n") fmt.Printf(" archive\n \tBuild tar.gz archive for training\n") @@ -133,7 +130,6 @@ func main() { trainArchiveFlags.IntVar(&horizon, "horizon", 0, "Upper zone image to crop (in pixels)") trainArchiveFlags.BoolVar(&withFlipImage, "with-flip-image", withFlipImage, "Flip horiontal image and reverse steering to increase data into training archive") - modelsFlags := flag.NewFlagSet("models", flag.ExitOnError) modelsFlags.Usage = func() { fmt.Printf("Usage of %s %s:\n", os.Args[0], modelsFlags.Name()) @@ -228,7 +224,7 @@ func main() { } switch trainingFlags.Arg(0) { case trainingListJobFlags.Name(): - if err:= trainingListJobFlags.Parse(os.Args[3:]); err == flag.ErrHelp { + if err := trainingListJobFlags.Parse(os.Args[3:]); err == flag.ErrHelp { trainingListJobFlags.PrintDefaults() os.Exit(0) } @@ -249,7 +245,6 @@ func main() { trainingFlags.PrintDefaults() os.Exit(0) - } case modelsFlags.Name(): @@ -259,13 +254,13 @@ func main() { } switch modelsFlags.Arg(0) { case modelsListFlags.Name(): - if err:= modelsListFlags.Parse(os.Args[3:]); err == flag.ErrHelp { + if err := modelsListFlags.Parse(os.Args[3:]); err == flag.ErrHelp { modelsListFlags.PrintDefaults() os.Exit(0) } runModelsList(bucket) case modelsDownloadFlags.Name(): - if err:= modelsDownloadFlags.Parse(os.Args[3:]); err == flag.ErrHelp { + if err := modelsDownloadFlags.Parse(os.Args[3:]); err == flag.ErrHelp { modelsDownloadFlags.PrintDefaults() os.Exit(0) } @@ -320,7 +315,7 @@ func runImportDonkeyRecords(basedir, destdir string) { zap.S().Fatalf("unable to import files from %v to %v: %v", basedir, destdir, err) } } -func runDisplayRecord(client mqtt.Client, recordTopic string){ +func runDisplayRecord(client mqtt.Client, recordTopic string) { r := display.NewRecordDisplay(client, recordTopic) defer r.Stop() @@ -407,4 +402,4 @@ func runModelsDownload(bucketName, modelPath, output string) { if err != nil { zap.S().Fatalf("unable to download model: %s", err) } -} \ No newline at end of file +} diff --git a/pkg/data/data.go b/pkg/data/data.go index c6493f8..0593c4d 100644 --- a/pkg/data/data.go +++ b/pkg/data/data.go @@ -203,7 +203,7 @@ func addJsonFiles(recordFiles []string, imgCam []string, flipImage bool, w *zip. if flipImage { rcd.UserAngle = rcd.UserAngle * -1 rcd.CamImageArray = fmt.Sprintf("flip_%s", camName) - }else { + } else { rcd.CamImageArray = camName } diff --git a/pkg/display/record.go b/pkg/display/record.go index f4576da..63a244c 100644 --- a/pkg/display/record.go +++ b/pkg/display/record.go @@ -96,7 +96,6 @@ func (r *Record) drawRecord(rec *events.RecordMessage, objects *events.ObjectsMe r.window.WaitKey(1) } - func (r *Record) drawSteering(img *gocv.Mat, steering float32) { gocv.PutText( img, diff --git a/pkg/models/models.go b/pkg/models/models.go index feca1df..d749a6f 100644 --- a/pkg/models/models.go +++ b/pkg/models/models.go @@ -20,10 +20,10 @@ func ListModels(ctx context.Context, bucket string) error { outputs, err := client.ListObjectsV2( ctx, &s3.ListObjectsV2Input{ - Bucket: aws.String(bucket), - Prefix: aws.String("output"), + Bucket: aws.String(bucket), + Prefix: aws.String("output"), }, - ) + ) if err != nil { return fmt.Errorf("unable to list models in bucket %v: %w", bucket, err) } @@ -38,7 +38,7 @@ func DownloadArchive(ctx context.Context, bucketName, modelPath string) ([]byte, l := zap.S().With( "bucket", bucketName, "model", modelPath, - ) + ) client := s3.NewFromConfig(awsutils.MustLoadConfig()) l.Debug("download model") @@ -46,8 +46,8 @@ func DownloadArchive(ctx context.Context, bucketName, modelPath string) ([]byte, ctx, &s3.GetObjectInput{ - Bucket: aws.String(bucketName), - Key: aws.String(modelPath), + Bucket: aws.String(bucketName), + Key: aws.String(modelPath), }) if err != nil { return nil, fmt.Errorf("unable to download model: %w", err) @@ -70,4 +70,4 @@ func DownloadArchiveToFile(ctx context.Context, bucketName, modelPath, outputFil return fmt.Errorf("unable to write model '%s' to file '%s': %v", modelPath, outputFile, err) } return nil -} \ No newline at end of file +} diff --git a/pkg/train/config.go b/pkg/train/config.go index 43c189b..9a22ecc 100644 --- a/pkg/train/config.go +++ b/pkg/train/config.go @@ -1,6 +1,5 @@ package train const ( - prefixInput = "input/data/train/" + prefixInput = "input/data/train/" ) - diff --git a/run_training.sh b/run_training.sh index 3abf1e6..67b1a41 100755 --- a/run_training.sh +++ b/run_training.sh @@ -6,8 +6,8 @@ set +x RECORDS_PATH=~/robocar/record-sim4-2 #TRAINING_OPTS="--horizon=20" TRAINING_OPTS="" -#MODEL_TYPE="categorical" -MODEL_TYPE="linear" +MODEL_TYPE="categorical" +#MODEL_TYPE="linear" IMG_WIDTH=160 IMG_HEIGHT=120 HORIZON=20