Git Product home page Git Product logo

opentcs-commadapter-vda5050's Issues

After the parking order is interrupted, the AGV will not proceed with the next transportorder.

Affected version

OpenTCS Version 5.17.1
VDA5050 Version 0.20

Steps to reproduce

  1. Set kernel config defaultdispatcher.parkIdleVehicles => true
  2. Use map with a VDA5050 vehicle , set property "vda5050:maxStepsHorizon"=>2, also with a park point
  3. Move AGV to the point leave park point for a long distance that make sure there is enought time to create new order before parking order finish, and wait until kernel send parking order to AGV
  4. While AGV is executing park order, use API or OperationDesk to create a transportorder

Expected behaviour

Parking order should be interrupted, then AGV processes the next transportorder.

Actual behaviour

After the parking order is interrupted, the AGV remains in the EXECUTING state, and the next transport order remains 'DISPATCHABLE.'

Additional information

The VDA5050 vehicle we use sends its state along with horizon nodes and edges. When a parking order is interrupted, the vehicle retains only the horizon path and waits for the 'released' transfer to be set to 'true.' Since the nodeState is not empty, the statemapping in commadapter-vda5050 shows as EXECUTING.

However, in TCS, the parking order is marked as completed, and the next transport order is waiting for the vehicle to be in the IDLE state.

Sending a 'cancelOrder' instant action can clear the nodeState and edgeState on the AGV, returning it to the IDLE state and allowing the AGV to resume operation.

Null exception happens in Statemappings if no error or no information data

Affected version

v0.19.0

Steps to reproduce

  1. A "State" JSON without "Errors" or "Information" data
  2. The null exception happens once execute function toErrorPropertyValue / toInfoPropertyValue in Statemappings.java

Expected behaviour

Since "errors" and "Information" are optional, no exception happens in function toErrorPropertyValue / toInfoPropertyValue in Statemappings.java

Actual behaviour

Add the judge to return empty if state.getInformation() / state.getErrors() are null or isEmpty.

Additional information

mq send bug & some question

1.when robot failed with some task and reboot, i cancel the last task in tcs, and start a new task, but tcs nerver send a mqtt msg to the robot, i need to restart the tcs kernel to recover;
2.when robot shut down ,tcs cannot recieve state topic for a long time , but state of robot stay IDLE;
3.when robot recieve a action of location, robot need to know the coordinate x y of location, but according to the doc i need to add a property of parameter.x ,paramater.y to location, is there any convenient way to add x y to action msg

commit :da9ed93

Common configuration onOpModeChangeDoResetPosition

Affected version

The latest commit of Format code via Spotless

Steps to reproduce

  1. Setup commadapter.vehicle.vda5050.onOpModeChangeDoResetPosition = AUTOMATIC=false, SEMIAUTOMATIC=false, SERVICE=true, MANUAL=false, TEACHIN=false
  2. Change OpMode from 'AUTOMATIC' to 'SERVICE'
  3. Nothing change in operationDesk

Expected behaviour

  1. Release the point/path resource for this vehicle or I misunderstand the usage of this configuration?

Update Action ID in TCS transportOrders API to Use UUID as per VDA5050 Guidelines

Currently, the action ID in the order message from the TCS transportOrders API is Order_destination_action_1.

According to VDA5050 guidelines, it is recommended to use a UUID instead.

In the CancelOrder InstantAction, the action ID is already in UUID format.

Is there a chance to update the API's action ID to UUID format as well?

image

{
  "headerId": 1,
  "timestamp": "2024-07-01T09:22:21.356525Z",
  "version": "2.0.0",
  "manufacturer": "TCS",
  "serialNumber": "0001",
  "orderId": "TOrder-01J1PSC5SVRGSZ0NXFSVJ14TMD-0",
  "orderUpdateId": 1,
  "nodes": [
    {
      "nodeId": "07000007",
      "sequenceId": 4,
      "released": true,
      "actions": [
        {
          "actionType": "customAction",
          "actionId": "Order_destination_action_1",
          "blockingType": "HARD",
          "actionParameters": [
            {
              "key": "DM001",
              "value": "465"
            },
            {
              "key": "DM002",
              "value": "456"
            },
            {
              "key": "DM003",
              "value": "2"
            },
            {
              "key": "DM004",
              "value": "1"
            }
          ]
        }
      ],
      "nodePosition": {
        "x": 8.5,
        "y": 8.0,
        "mapId": "testmap",
        "theta": -1.571,
        "allowedDeviationXY": 9.0,
        "allowedDeviationTheta": 0.016
      }
    }
  ],
  "edges": [],
  "zoneSetId": ""
}

Integration level can't be changed properly by operatingMode

Affected version

The latest commit of Format code via Spotless

Steps to reproduce

  1. Setup commadapter.vehicle.vda5050.onOpModeChangeDoUpdateIntegrationLevel with AUTOMATIC=TO_BE_UTILIZED
  2. When AGV is online and publish MQ 'state' with "operatingMode" : "AUTOMATIC", Integration level can't be changed. (The reason is because the default value of OperatingMode of AGV is "AUTOMATIC" too and will be ignore
    if (getProcessModel().getPreviousState().getOperatingMode() == state.getOperatingMode()) {
  3. The Integration level can't be changed When AGV disconnect also.

Expected behaviour

Integration level should be changed properly when AGV is online and offline.

Actual behaviour

Additional information

order send bug

Affected version

da9ed93

Steps to reproduce

1.send a task to agv;
2. agv got something wrong in the middle of route, and restart in the initial point;
3. cancel last task, start a new one

Expected behaviour

agv recieve a new order form mq

Actual behaviour

controller never send order to agv again unless restart the kernel software.

Additional information

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.