How can I use a NAO robot for lecture presentation?












1















I just have started working with the NAO robot with the C++ SDK.
I would like to use NAO as a presenter like in front of a small group or classrooms as lecturers. At the same time I want NAO to control the slide presentation of a laptop (e.g. with Powerpoint). I tried to look for some solutions and heard about making the presentation as a "webpage", and use "qimessaging" to communicate with NAO.
Like I said I just started programing on the NAO. Can anyone give me some advice with the webpage/ qimessaging solution or does anyone have another way to program it?



Thank you in advance.










share|improve this question



























    1















    I just have started working with the NAO robot with the C++ SDK.
    I would like to use NAO as a presenter like in front of a small group or classrooms as lecturers. At the same time I want NAO to control the slide presentation of a laptop (e.g. with Powerpoint). I tried to look for some solutions and heard about making the presentation as a "webpage", and use "qimessaging" to communicate with NAO.
    Like I said I just started programing on the NAO. Can anyone give me some advice with the webpage/ qimessaging solution or does anyone have another way to program it?



    Thank you in advance.










    share|improve this question

























      1












      1








      1








      I just have started working with the NAO robot with the C++ SDK.
      I would like to use NAO as a presenter like in front of a small group or classrooms as lecturers. At the same time I want NAO to control the slide presentation of a laptop (e.g. with Powerpoint). I tried to look for some solutions and heard about making the presentation as a "webpage", and use "qimessaging" to communicate with NAO.
      Like I said I just started programing on the NAO. Can anyone give me some advice with the webpage/ qimessaging solution or does anyone have another way to program it?



      Thank you in advance.










      share|improve this question














      I just have started working with the NAO robot with the C++ SDK.
      I would like to use NAO as a presenter like in front of a small group or classrooms as lecturers. At the same time I want NAO to control the slide presentation of a laptop (e.g. with Powerpoint). I tried to look for some solutions and heard about making the presentation as a "webpage", and use "qimessaging" to communicate with NAO.
      Like I said I just started programing on the NAO. Can anyone give me some advice with the webpage/ qimessaging solution or does anyone have another way to program it?



      Thank you in advance.







      python c++ powerpoint webpage nao-robot






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 26 '18 at 2:13









      noudelsnoudels

      63




      63
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Sure, that's totally buildable on NAO; basically have a webpage hosted on the robot, that uses QiMesssaging Javascript to communicate with the robot, and then show that in fullscreen page on your screen.



          To build that you could start with the robot-jumpstarter template service-webpage-nao (specifically made for working on NAOqi 2.1 - if you're in 2.8 (on NAO v6) the other templates should work too); which contains a Python service that has two-way communciation with the associated webpage.



          You could then change that service to contain your lecture contents, for example by having it set an ALMemory key containing the current page status (image / text to show), and then have the javascript watch that ALMemory key and update the page based on that (you don't need the two-way communication, as you shouldn't have buttons etc.). The example is in Python, but you could do the same with C++ (it will require more work, I don't really recommend it for a simple use case like that).



          (You don't even need a service, you could do that from Choregraphe, but I find standalone Python more readable)






          share|improve this answer
























          • I start with the installation of jumpstarter and I also created a project. But where and how should I begin. I'm not so familiar with javascript. Could you give me an advice, how I set an ALMemory key containing the page?

            – noudels
            Dec 6 '18 at 7:17













          • Well, you will need to either do your slides in powerpoint (and find a way of connecting that to the robot), or in html (in which case you will need to know how to make them as webpages - just making a series of image is one possibility - and use javascript for the transitions).

            – Emile
            Dec 6 '18 at 10:00











          • But basically you could use an ALMemory key "MySlides/Page", and assign it the values "page1", "page2", "page3" in Python (e.g. with self.events.set("MySlifes/Page", "page1"), or with the ALMemory API), and then subscribe to that in js with RobotUtils.subscribeToALMemoryEvent( "MySlides/Page", callback), and in your callback change the page. That will require knowing a bit of javascript.

            – Emile
            Dec 6 '18 at 10:02











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53473954%2fhow-can-i-use-a-nao-robot-for-lecture-presentation%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          Sure, that's totally buildable on NAO; basically have a webpage hosted on the robot, that uses QiMesssaging Javascript to communicate with the robot, and then show that in fullscreen page on your screen.



          To build that you could start with the robot-jumpstarter template service-webpage-nao (specifically made for working on NAOqi 2.1 - if you're in 2.8 (on NAO v6) the other templates should work too); which contains a Python service that has two-way communciation with the associated webpage.



          You could then change that service to contain your lecture contents, for example by having it set an ALMemory key containing the current page status (image / text to show), and then have the javascript watch that ALMemory key and update the page based on that (you don't need the two-way communication, as you shouldn't have buttons etc.). The example is in Python, but you could do the same with C++ (it will require more work, I don't really recommend it for a simple use case like that).



          (You don't even need a service, you could do that from Choregraphe, but I find standalone Python more readable)






          share|improve this answer
























          • I start with the installation of jumpstarter and I also created a project. But where and how should I begin. I'm not so familiar with javascript. Could you give me an advice, how I set an ALMemory key containing the page?

            – noudels
            Dec 6 '18 at 7:17













          • Well, you will need to either do your slides in powerpoint (and find a way of connecting that to the robot), or in html (in which case you will need to know how to make them as webpages - just making a series of image is one possibility - and use javascript for the transitions).

            – Emile
            Dec 6 '18 at 10:00











          • But basically you could use an ALMemory key "MySlides/Page", and assign it the values "page1", "page2", "page3" in Python (e.g. with self.events.set("MySlifes/Page", "page1"), or with the ALMemory API), and then subscribe to that in js with RobotUtils.subscribeToALMemoryEvent( "MySlides/Page", callback), and in your callback change the page. That will require knowing a bit of javascript.

            – Emile
            Dec 6 '18 at 10:02
















          0














          Sure, that's totally buildable on NAO; basically have a webpage hosted on the robot, that uses QiMesssaging Javascript to communicate with the robot, and then show that in fullscreen page on your screen.



          To build that you could start with the robot-jumpstarter template service-webpage-nao (specifically made for working on NAOqi 2.1 - if you're in 2.8 (on NAO v6) the other templates should work too); which contains a Python service that has two-way communciation with the associated webpage.



          You could then change that service to contain your lecture contents, for example by having it set an ALMemory key containing the current page status (image / text to show), and then have the javascript watch that ALMemory key and update the page based on that (you don't need the two-way communication, as you shouldn't have buttons etc.). The example is in Python, but you could do the same with C++ (it will require more work, I don't really recommend it for a simple use case like that).



          (You don't even need a service, you could do that from Choregraphe, but I find standalone Python more readable)






          share|improve this answer
























          • I start with the installation of jumpstarter and I also created a project. But where and how should I begin. I'm not so familiar with javascript. Could you give me an advice, how I set an ALMemory key containing the page?

            – noudels
            Dec 6 '18 at 7:17













          • Well, you will need to either do your slides in powerpoint (and find a way of connecting that to the robot), or in html (in which case you will need to know how to make them as webpages - just making a series of image is one possibility - and use javascript for the transitions).

            – Emile
            Dec 6 '18 at 10:00











          • But basically you could use an ALMemory key "MySlides/Page", and assign it the values "page1", "page2", "page3" in Python (e.g. with self.events.set("MySlifes/Page", "page1"), or with the ALMemory API), and then subscribe to that in js with RobotUtils.subscribeToALMemoryEvent( "MySlides/Page", callback), and in your callback change the page. That will require knowing a bit of javascript.

            – Emile
            Dec 6 '18 at 10:02














          0












          0








          0







          Sure, that's totally buildable on NAO; basically have a webpage hosted on the robot, that uses QiMesssaging Javascript to communicate with the robot, and then show that in fullscreen page on your screen.



          To build that you could start with the robot-jumpstarter template service-webpage-nao (specifically made for working on NAOqi 2.1 - if you're in 2.8 (on NAO v6) the other templates should work too); which contains a Python service that has two-way communciation with the associated webpage.



          You could then change that service to contain your lecture contents, for example by having it set an ALMemory key containing the current page status (image / text to show), and then have the javascript watch that ALMemory key and update the page based on that (you don't need the two-way communication, as you shouldn't have buttons etc.). The example is in Python, but you could do the same with C++ (it will require more work, I don't really recommend it for a simple use case like that).



          (You don't even need a service, you could do that from Choregraphe, but I find standalone Python more readable)






          share|improve this answer













          Sure, that's totally buildable on NAO; basically have a webpage hosted on the robot, that uses QiMesssaging Javascript to communicate with the robot, and then show that in fullscreen page on your screen.



          To build that you could start with the robot-jumpstarter template service-webpage-nao (specifically made for working on NAOqi 2.1 - if you're in 2.8 (on NAO v6) the other templates should work too); which contains a Python service that has two-way communciation with the associated webpage.



          You could then change that service to contain your lecture contents, for example by having it set an ALMemory key containing the current page status (image / text to show), and then have the javascript watch that ALMemory key and update the page based on that (you don't need the two-way communication, as you shouldn't have buttons etc.). The example is in Python, but you could do the same with C++ (it will require more work, I don't really recommend it for a simple use case like that).



          (You don't even need a service, you could do that from Choregraphe, but I find standalone Python more readable)







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 27 '18 at 15:08









          EmileEmile

          2,29711420




          2,29711420













          • I start with the installation of jumpstarter and I also created a project. But where and how should I begin. I'm not so familiar with javascript. Could you give me an advice, how I set an ALMemory key containing the page?

            – noudels
            Dec 6 '18 at 7:17













          • Well, you will need to either do your slides in powerpoint (and find a way of connecting that to the robot), or in html (in which case you will need to know how to make them as webpages - just making a series of image is one possibility - and use javascript for the transitions).

            – Emile
            Dec 6 '18 at 10:00











          • But basically you could use an ALMemory key "MySlides/Page", and assign it the values "page1", "page2", "page3" in Python (e.g. with self.events.set("MySlifes/Page", "page1"), or with the ALMemory API), and then subscribe to that in js with RobotUtils.subscribeToALMemoryEvent( "MySlides/Page", callback), and in your callback change the page. That will require knowing a bit of javascript.

            – Emile
            Dec 6 '18 at 10:02



















          • I start with the installation of jumpstarter and I also created a project. But where and how should I begin. I'm not so familiar with javascript. Could you give me an advice, how I set an ALMemory key containing the page?

            – noudels
            Dec 6 '18 at 7:17













          • Well, you will need to either do your slides in powerpoint (and find a way of connecting that to the robot), or in html (in which case you will need to know how to make them as webpages - just making a series of image is one possibility - and use javascript for the transitions).

            – Emile
            Dec 6 '18 at 10:00











          • But basically you could use an ALMemory key "MySlides/Page", and assign it the values "page1", "page2", "page3" in Python (e.g. with self.events.set("MySlifes/Page", "page1"), or with the ALMemory API), and then subscribe to that in js with RobotUtils.subscribeToALMemoryEvent( "MySlides/Page", callback), and in your callback change the page. That will require knowing a bit of javascript.

            – Emile
            Dec 6 '18 at 10:02

















          I start with the installation of jumpstarter and I also created a project. But where and how should I begin. I'm not so familiar with javascript. Could you give me an advice, how I set an ALMemory key containing the page?

          – noudels
          Dec 6 '18 at 7:17







          I start with the installation of jumpstarter and I also created a project. But where and how should I begin. I'm not so familiar with javascript. Could you give me an advice, how I set an ALMemory key containing the page?

          – noudels
          Dec 6 '18 at 7:17















          Well, you will need to either do your slides in powerpoint (and find a way of connecting that to the robot), or in html (in which case you will need to know how to make them as webpages - just making a series of image is one possibility - and use javascript for the transitions).

          – Emile
          Dec 6 '18 at 10:00





          Well, you will need to either do your slides in powerpoint (and find a way of connecting that to the robot), or in html (in which case you will need to know how to make them as webpages - just making a series of image is one possibility - and use javascript for the transitions).

          – Emile
          Dec 6 '18 at 10:00













          But basically you could use an ALMemory key "MySlides/Page", and assign it the values "page1", "page2", "page3" in Python (e.g. with self.events.set("MySlifes/Page", "page1"), or with the ALMemory API), and then subscribe to that in js with RobotUtils.subscribeToALMemoryEvent( "MySlides/Page", callback), and in your callback change the page. That will require knowing a bit of javascript.

          – Emile
          Dec 6 '18 at 10:02





          But basically you could use an ALMemory key "MySlides/Page", and assign it the values "page1", "page2", "page3" in Python (e.g. with self.events.set("MySlifes/Page", "page1"), or with the ALMemory API), and then subscribe to that in js with RobotUtils.subscribeToALMemoryEvent( "MySlides/Page", callback), and in your callback change the page. That will require knowing a bit of javascript.

          – Emile
          Dec 6 '18 at 10:02




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53473954%2fhow-can-i-use-a-nao-robot-for-lecture-presentation%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Wiesbaden

          To store a contact into the json file from server.js file using a class in NodeJS

          Marschland