Pepper:如何通过HTML / Javascript网页激活盒子的输出

时间:2018-10-01 12:02:01

标签: nao-robot pepper choregraphe

我正在为Aldebaran的Pepper机器人编写一个应用程序。我正在使用Choregraphe,并制作了一个用于在机器人平板电脑中显示的html页面。 我只想通过在机器人的平板电脑上显示的HTML页面中按一个按钮来激活输出(必须在“ SHOW APP”框中添加)。  该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以使用Javascript SDK引发ALMemory事件,并订阅Choregraphe中的事件。

类似这样的东西(左红色框):

ALmemoey

答案 1 :(得分:0)

index.html

<head>
    <script src="/libs/qi/2/qi.js"></script>
    <script src="js/script.js"></script>
</head>
<body>
    <div class="flex">
        <button class="button" onclick="launchEvent1()">First event</button>
        <button class="button" onclick="launchEvent2()">Second event</button>
        <button class="button" onclick="launchEvent3()">Third event</button>
        <button class="home" onclick="launchEventHome()">Home button</button>
    </div>
</body>

script.js

session = null
QiSession(connected, disconnected, location.host);

function connected(s) {
    console.log("Session connected");
    session = s;
    //If you want to subscribe so some events (to send info pepper->tablet) call the function here
}

function disconnected(error) {
    console.log("Session disconnected");
}

function launchEventHome(){
    session.service("ALMemory").then(function (memory) {
            memory.raiseEvent("homeEvent", "paramHome");
        });

   }
function launchEvent1(){
    session.service("ALMemory").then(function (memory) {
            memory.raiseEvent("event1", "param1");
        });

   }
function launchEvent2(){
    session.service("ALMemory").then(function (memory) {
            memory.raiseEvent("event2", "param2");
        });

   }
function launchEvent3(){
    session.service("ALMemory").then(function (memory) {
            memory.raiseEvent("event3", "param3");
        });

   }

在编排上,单击“来自ALMemory的添加事件”(左侧的加号图标),然后选择“添加新键”。在.js文件中给它命名(在我的情况下,是event1,event2,event3和homeEvent)。

这样,每当用户单击平板电脑上的按钮时,它将触发事件并以动态类型发送param(param1、2等,取决于用户所按下的按钮)