duckietown / duckietown-shell-commands

Commands for the Duckietown Shell
4 stars 4 forks source link

dts init_sd_card fails on setup #378

Closed jtorres52 closed 1 year ago

jtorres52 commented 1 year ago

Creating an SD card, I got an error on setup step. It seems the version of the image is not recognized (key error).

dts : Traceback (most recent call last): : File "/home/jt/.local/lib/python3.10/site-packages/dt_shell/main.py", line 40, in cli_main : climain() : File "/home/jt/.local/lib/python3.10/site-packages/dt_shell/main.py", line 201, in climain : shell.onecmd(cmdline) : File "/usr/lib/python3.10/cmd.py", line 217, in onecmd : return func(arg) : File "/home/jt/.local/lib/python3.10/site-packages/dt_shell/cli.py", line 284, in : do_command_lam = lambda s, w: do_command(klass, s, w) : File "/home/jt/.local/lib/python3.10/site-packages/dt_shell/dt_command_abs.py", line 48, in do_command : cls.command(shell, args) : File "/home/jt/.dt-shell/commands-multi/daffy/init_sd_card/command.py", line 338, in command : data.update(step2function[step_name](shell, parsed, data)) : File "/home/jt/.dt-shell/commands-multi/daffy/init_sd_card/command.py", line 645, in step_setup : placeholders_version = PLACEHOLDERS_VERSION(parsed.robot_configuration, parsed.experimental) : File "/home/jt/.dt-shell/commands-multi/daffy/init_sd_card/command.py", line 97, in PLACEHOLDERS_VERSION : return board_to_placeholders_version[board][version] : KeyError: '1.2.2'

jtorres52 commented 1 year ago

More information on this problem. I'm using a jetson nano 2gb. command.py has the following code: def DISK_IMAGE_VERSION(robot_configuration, experimental=False): board_to_disk_image_version = { "raspberry_pi": {"stable": "1.2.1", "experimental": "1.2.1"}, "raspberry_pi_64": {"stable": "2.0.0", "experimental": "2.0.0"}, "jetson_nano_4gb": {"stable": "1.2.3", "experimental": "1.2.3"}, "jetson_nano2gb": {"stable": "1.2.2", "experimental": "1.2.2"}, } board, = get_robot_hardware(robot_configuration) stream = "stable" if not experimental else "experimental" return board_to_disk_image_version[board][stream]

and also:

def PLACEHOLDERS_VERSION(robot_configuration, experimental=False): board_to_placeholders_version = { "raspberry_pi": {

- stable

        "1.2.1": "1.1",
        # - experimental
        "-----": "1.1",
    },
    "raspberry_pi_64": {
        # - stable
        "2.0.0": "1.1",
        # - experimental
        "-----": "1.1"
    },
    "jetson_nano_4gb": {
        # - stable
        "1.2.3": "1.1",
        # - experimental
        "-----": "1.1"
    },
    "jetson_nano_2gb": {
        # - stable
        "1.2.1": "1.1",
        # - experimental
        "-----": "1.1"
    },
}

This second piece of code refers to version 1.2.1 for jetson nano 2gb, but the first piece of code refers to 1.2.2. Maybe version 1.2.1 should be updated to 1.2.2. The error message is "KeyError: '1.2.2'". I tried to edit the code, but dts didn't like me to change the code.

afdaniele commented 1 year ago

This is now solved!