I have a NAO robot which runs on linux machine and has IP address. I want to create a simple python based application to control NAO remotely by a web client. My NAO is on local network of the campus. Would you suggest best approach that I can take?

I have explored following options

  • Tornado
  • aiohttp
  • Gevent-socketio
  • Simple Websocket
  • Flask based Socket.IO
  • It seems like each have lots of abstraction layers which make them difficult to understand by just looking into them. Should I need to start with simple Web-socket application to see how things are executing under the hood?. please note that I do not have any experience with real time applications.

    I have following idea in mind;

    >> I will create a simple python application by using above technologies or any others.

    >> I will host that application to a web-server

    >> A web-client will send commands to a webserver

    >> web-server will fetch commands in real time from the web client (asynchronously listen to a web-client)

    >> a python script on robot will subscribe to a web-server program, whenever, server receives commands, robot will be notified in real time and then command will eventually be executed on the robot.

    >> similarly, a robot can send something to a web client by sending message to a web-server, then a server will immediately notify subscriber -- web client.

    you can think of a robot as a client/subscriber as well.

    Please comment on my idea and suggest yours if you think its not efficient.

    More Tahir Abbas's questions See All
    Similar questions and discussions