Skip to content

Route generates delivery without pickup in Vroom #1312

Description

@akira-ito

Hello,
I’m running some tests where my input contains 3 jobs and 1 shipment (pickup + delivery). However, when I routed it through Vroom, it suggested a route that includes all the jobs and the delivery, but not the pickup. I’d like to understand why this happens, because I believe that having a delivery without its corresponding pickup should be considered an error.

I’m using Vroom (ghcr.io/vroom-project/vroom-docker:v1.14.0) together with ORS (openrouteservice/openrouteservice:v9.3.1).

Input:

{
        "vehicles": [
          {
            "id": 6,
            "steps": [],
            "profile": "driving-car",
            "start": [
              -81.379955,
              19.3382467
            ]
          }
        ],
        "jobs": [
          {
            "priority": 20,
            "service": 300,
            "id": 3,
            "location": [
              -81.37384314090014,
              19.346415730057807
            ],
            "time_windows": [
              [
                1763689658,
                1763691179
              ]
            ],
            "description": "oTSK9xuUno3NWW1BCjbt"
          },
          {
            "service": 300,
            "priority": 10,
            "id": 4,
            "description": "fKqGF6FPDq0g00qHco0T",
            "location": [
              -81.37947980314493,
              19.338493017306277
            ],
            "time_windows": [
              [
                1763689658,
                1763690848
              ]
            ]
          },
          {
            "description": "VAJTlkYXhf3iS8XhTvhH",
            "time_windows": [
              [
                1763689658,
                1763690981
              ]
            ],
            "location": [
              -81.38847693800926,
              19.362235645416423
            ],
            "priority": 20,
            "id": 5,
            "service": 300
          }
        ],
        "options": {
          "c": false,
          "g": true
        },
        "shipments": [
          {
            "pickup": {
              "time_windows": [
                [
                  1763689778,
                  1763690378
                ]
              ],
              "location": [
                -81.3806984,
                19.34498
              ],
              "id": 1,
              "description": "9FxRelhIxCLGgVRqLUD8",
              "service": 300
            },
            "delivery": {
              "description": "9FxRelhIxCLGgVRqLUD8",
              "time_windows": [
                [
                  1763689778,
                  1763692178
                ]
              ],
              "service": 300,
              "id": 2,
              "location": [
                -81.39821369200945,
                19.37080055393572
              ]
            }
          }
        ]
      }

Output:

{
    "code": 0,
    "summary": {
        "cost": 1124,
        "routes": 1,
        "unassigned": 1,
        "setup": 0,
        "service": 1200,
        "duration": 1124,
        "waiting_time": 0,
        "priority": 50,
        "distance": 9684,
        "violations": [],
        "computing_times": {
            "loading": 3,
            "solving": 0,
            "routing": 2
        }
    },
    "unassigned": [
        {
            "id": 1,
            "location": [
                -81.3806984,
                19.34498
            ],
            "type": "pickup",
            "description": "9FxRelhIxCLGgVRqLUD8"
        }
    ],
    "routes": [
        {
            "vehicle": 6,
            "cost": 1124,
            "setup": 0,
            "service": 1200,
            "duration": 1124,
            "waiting_time": 0,
            "priority": 50,
            "distance": 9684,
            "steps": [
                {
                    "type": "start",
                    "location": [
                        -81.379955,
                        19.3382467
                    ],
                    "setup": 0,
                    "service": 0,
                    "waiting_time": 0,
                    "arrival": 1763689382,
                    "duration": 0,
                    "violations": [],
                    "distance": 0
                },
                {
                    "type": "job",
                    "description": "oTSK9xuUno3NWW1BCjbt",
                    "location": [
                        -81.37384314090014,
                        19.346415730057807
                    ],
                    "id": 3,
                    "setup": 0,
                    "service": 300,
                    "waiting_time": 0,
                    "job": 3,
                    "arrival": 1763689658,
                    "duration": 276,
                    "violations": [],
                    "distance": 2005
                },
                {
                    "type": "job",
                    "description": "fKqGF6FPDq0g00qHco0T",
                    "location": [
                        -81.37947980314493,
                        19.338493017306277
                    ],
                    "id": 4,
                    "setup": 0,
                    "service": 300,
                    "waiting_time": 0,
                    "job": 4,
                    "arrival": 1763690292,
                    "duration": 610,
                    "violations": [],
                    "distance": 4469
                },
                {
                    "type": "job",
                    "description": "VAJTlkYXhf3iS8XhTvhH",
                    "location": [
                        -81.38847693800926,
                        19.362235645416423
                    ],
                    "id": 5,
                    "setup": 0,
                    "service": 300,
                    "waiting_time": 0,
                    "job": 5,
                    "arrival": 1763690888,
                    "duration": 906,
                    "violations": [],
                    "distance": 7842
                },
                {
                    "type": "delivery",
                    "description": "9FxRelhIxCLGgVRqLUD8",
                    "location": [
                        -81.39821369200945,
                        19.37080055393572
                    ],
                    "id": 2,
                    "setup": 0,
                    "service": 300,
                    "waiting_time": 0,
                    "job": 2,
                    "arrival": 1763691406,
                    "duration": 1124,
                    "violations": [],
                    "distance": 9684
                },
                {
                    "type": "end",
                    "location": [
                        -81.39821369200945,
                        19.37080055393572
                    ],
                    "setup": 0,
                    "service": 0,
                    "waiting_time": 0,
                    "arrival": 1763691706,
                    "duration": 1124,
                    "violations": [],
                    "distance": 9684
                }
            ],
            "violations": [],
            "geometry": "y~_uBtouoN?p@?`@K?aESWAEAUAwBC{@@_@@Em@WyAG_@Ig@GYO_AI_@O}@IUQMSCQIMOGUAUDUHONMLENAL?RHj@Bp@CrIAOsMGe@Oi@Q_@S]sAsAg@Ye@CwCBc@CiBu@]UIOM_@Ca@CyAIc@M]KM{DwDc@]e@Uc@OUEcAAaBF`BGbA@TDb@Nd@Tb@\\zDvDJLL\\Hb@BxAB`@L^HN\\ThBt@b@BvCCd@Bf@XrArAR\\P^Nh@Fd@NrM|BFjBLfAHzEZj@DfAH~@FfDRPAf@KHKLGLCNAN@LFJHJPFT?TGTMPKF[FO?MEMGIIe@_@e@Q_Hg@m@EkEWcAGsBOINEPFpH?Nu@CmDKApA@`A?b@EAUAwBC{@@_@@E?gBNaAL}@L}Bd@SDmDj@wCd@MBc@H[DeC`@o@Js@LMB{AXaDr@YFIB_Bh@WJMFSHQ@O?OEUKMOIWEa@@y@?KCe@Ks@Ms@Ga@EUe@c@UGUAq@DeAPmDnCo@^eA^IBeFjAe@JWJ]J}LvEcC`AyB|@]Pw@f@q@j@kAt@IJK^BP?TCTIRKHM`@It@IdAK`@Mb@Q^e@r@e@d@YTa@ReAj@e@Xg@XeAv@cBzAA@_Az@e@d@URMJa@\\wAlA_DiE~ChECBa@ZgAx@}@r@gAv@{BfBWPoAbAWRm@t@mA~AoBjC_AnAGFo@z@OPe@f@g@`@_B~@iAj@g@VqAx@y@n@e@b@s@z@a@h@g@~@IPU^_A`AUZKRQp@]M][Wc@kA{AIEaCaBDjC@x@Gx@g@~@rAbB"
        }
    ]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions