【问题标题】:JASON (AgentSpeak) how to use external actions with variablesJASON (AgentSpeak) 如何使用带变量的外部动作
【发布时间】:2018-01-19 05:25:53
【问题描述】:

我知道如何定义一个原子的外部动作(必须有参数),例如“sitDown”,然后在执行动作方法中的 Environment Java 文件中手动对其进行编码。

但是,如果我定义了一个外部动作,有没有办法让它接受参数? 假设我想定义一个可以通过这种方式在代理代码中调用的操作:

销毁(4, 7);

在我的环境类中,我将如何在执行操作方法中检索这些值?

【问题讨论】:

    标签: artificial-intelligence multi-agent


    【解决方案1】:

    是的,您可以向环境发送参数并获得反馈。

    例如,在应用程序中,改变机器人 LED 的方法可能是这样的(这属于扩展 Artifact - CArtAgO 的类):

    @OPERATION 
    void changeLedPin(String newState) throws Exception {
         try {
            /** put gpio HIGH */
            if (newState.equals("high")) {
                logger.info("Changing pin to HIGH!");
                ledPin.high();
            }
    
            /** put gpio LOW */
            if (newState.equals("low")) {
                logger.info("Changing pin to LOW!");
                ledPin.low();
            }
         } catch (Exception e) {
            e.printStackTrace();
       }
    }
    

    Jason 调用此外部操作的代理代码可能如下所示:

    !start.
    
    +!start <- 
        changeLedPin(low).
    

    对于反馈,您可以使用 OpFeedbackParam 在 Jason 代码中发送一个变量来统一。神器方法是这样的:

    @OPERATION 
    void inc(OpFeedbackParam<String> value) {
        /* some code */
    }
    

    来源:https://github.com/cleberjamaral/goldminers/blob/master/src/env/mining/Raspi.java https://github.com/cleberjamaral/camel-artifact/blob/master/camelJaCaMoRobot/src/env/artifacts/Counter.java

    【讨论】:

      【解决方案2】:

      如果不使用 Cartago 环境,而是 Jason 环境,您可以使用 Structure 类 API 获取参数的值。例如:

      class ... extends Environment {
         ...
         public boolean executeAction(String ag, Structure action) {
            NumberTerm arg0 = (NumberTerm)action.getTerm(0);
            int vl = (int)arg0.solve();
         }
         ...
      

      Jason API 可用here

      【讨论】:

        猜你喜欢
        • 2015-09-15
        • 2018-09-28
        • 2015-03-29
        • 2018-11-11
        • 2012-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多