|
|
@ -55,12 +55,11 @@ func main() {
|
|
|
|
cli.SetDefaultValueFromEnv(&ociImage, "TRAIN_OCI_IMAGE", "")
|
|
|
|
cli.SetDefaultValueFromEnv(&ociImage, "TRAIN_OCI_IMAGE", "")
|
|
|
|
cli.SetDefaultValueFromEnv(&bucket, "TRAIN_BUCKET", "")
|
|
|
|
cli.SetDefaultValueFromEnv(&bucket, "TRAIN_BUCKET", "")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
flag.BoolVar(&debug, "debug", false, "Display debug logs")
|
|
|
|
flag.BoolVar(&debug, "debug", false, "Display debug logs")
|
|
|
|
|
|
|
|
|
|
|
|
displayFlags := flag.NewFlagSet("display", flag.ExitOnError)
|
|
|
|
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("Usage of %s %s:\n", os.Args[0], displayFlags.Name())
|
|
|
|
fmt.Printf(" camera\n \tLive from car camera\n")
|
|
|
|
fmt.Printf(" camera\n \tLive from car camera\n")
|
|
|
|
fmt.Printf(" record\n \tLive from published records\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(&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")
|
|
|
|
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
|
|
|
|
var basedir, destdir string
|
|
|
|
impdkFlags := flag.NewFlagSet("import-donkey-records", flag.ExitOnError)
|
|
|
|
impdkFlags := flag.NewFlagSet("import-donkey-records", flag.ExitOnError)
|
|
|
|
impdkFlags.StringVar(&basedir, "from", "", "source directory")
|
|
|
|
impdkFlags.StringVar(&basedir, "from", "", "source directory")
|
|
|
|
impdkFlags.StringVar(&destdir, "to", "", "destination directory")
|
|
|
|
impdkFlags.StringVar(&destdir, "to", "", "destination directory")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trainingFlags := flag.NewFlagSet("training", flag.ExitOnError)
|
|
|
|
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("Usage of %s %s:\n", os.Args[0], trainingFlags.Name())
|
|
|
|
fmt.Printf(" list\n \tList existing training jobs\n")
|
|
|
|
fmt.Printf(" list\n \tList existing training jobs\n")
|
|
|
|
fmt.Printf(" archive\n \tBuild tar.gz archive for training\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.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")
|
|
|
|
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 := flag.NewFlagSet("models", flag.ExitOnError)
|
|
|
|
modelsFlags.Usage = func() {
|
|
|
|
modelsFlags.Usage = func() {
|
|
|
|
fmt.Printf("Usage of %s %s:\n", os.Args[0], modelsFlags.Name())
|
|
|
|
fmt.Printf("Usage of %s %s:\n", os.Args[0], modelsFlags.Name())
|
|
|
@ -228,7 +224,7 @@ func main() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
switch trainingFlags.Arg(0) {
|
|
|
|
switch trainingFlags.Arg(0) {
|
|
|
|
case trainingListJobFlags.Name():
|
|
|
|
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()
|
|
|
|
trainingListJobFlags.PrintDefaults()
|
|
|
|
os.Exit(0)
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -249,7 +245,6 @@ func main() {
|
|
|
|
trainingFlags.PrintDefaults()
|
|
|
|
trainingFlags.PrintDefaults()
|
|
|
|
os.Exit(0)
|
|
|
|
os.Exit(0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case modelsFlags.Name():
|
|
|
|
case modelsFlags.Name():
|
|
|
|
|
|
|
|
|
|
|
@ -259,13 +254,13 @@ func main() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
switch modelsFlags.Arg(0) {
|
|
|
|
switch modelsFlags.Arg(0) {
|
|
|
|
case modelsListFlags.Name():
|
|
|
|
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()
|
|
|
|
modelsListFlags.PrintDefaults()
|
|
|
|
os.Exit(0)
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
runModelsList(bucket)
|
|
|
|
runModelsList(bucket)
|
|
|
|
case modelsDownloadFlags.Name():
|
|
|
|
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()
|
|
|
|
modelsDownloadFlags.PrintDefaults()
|
|
|
|
os.Exit(0)
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
r := display.NewRecordDisplay(client, recordTopic)
|
|
|
|
defer r.Stop()
|
|
|
|
defer r.Stop()
|
|
|
|
|
|
|
|
|
|
|
|