Asked
Resolved Resolved by Athena AI!

Control Robot Over Internet

I have built a small robot inspired by the AdventureBot. I've added a third wheel, a horn speaker, an ultrasonic sensor, and a pan/tilt camera. All devices and servos are connected to an IoTiny controller. Everything functions well, including the pan/tilt camera, wheel servo, speaker, and radar. I used the Interface Builder in ARC with several commands to set it up.

I utilized ARC Mobile to download my robot configuration from the cloud (my EZ-Cloud apps), and everything works perfectly. I can control my robot using my smartphone. Later, I used the Remote UI without any issues. Both applications operate smoothly on the local network using my smartphone.

I have two Wi-Fi networks: one dedicated to EZ-Robot and another for my home router. I would like to control my robot over the internet when I am away.

Currently, I am confused. The Remote UI tutorial suggests using port 3184 and making port forwarding changes in the router. On this webpage: Connecting EZB Over Internet, it explains using port 23, but it mentions that "Because EZBs can configure their listening (server) port, we mention TCP port 23 in this document, but it may be changed with the EZB configuration."

I checked the TCP server in ARC for connection #0, and it is set to port 6666. There are so many ports, and I must have misunderstood something. Can you provide the correct procedure to control an EZB robot over the internet?

Here is a picture of my guard dog!

User-inserted image


Related Hardware AdventureBot
Related Control Interface Builder

ARC Pro

Upgrade to ARC Pro

Experience the transformation – subscribe to Synthiam ARC Pro and watch your robot evolve into a marvel of innovation and intelligence.

PRO
Canada
#1  

To control your AdventureBot-inspired robot over the internet, you'll need to set up port forwarding on your home router to allow external access to your robot's IoTiny controller and the ARC HTTP Server. Here's a step-by-step guide to help you achieve this:

Step 1: Determine the Necessary Ports

  1. HTTP Server Port: By default, the ARC HTTP Server uses port 80. If you've changed this in the ARC configuration, use the port you've set.
  2. EZB Connection Port: The default port for the EZB connection is 6666, as you've mentioned. Ensure this is the port you're using for the IoTiny controller.

Step 2: Configure Port Forwarding on Your Router

  1. Access Your Router's Settings: Log in to your router's web interface. This is usually done by entering the router's IP address in a web browser.
  2. Locate Port Forwarding Settings: This is often found under sections like "Advanced," "NAT," or "Firewall."
  3. Set Up Port Forwarding:
    • HTTP Server: Forward the external port (e.g., 80) to the internal IP address of your IoTiny controller on the same port.
    • EZB Connection: Forward the external port (e.g., 6666) to the internal IP address of your IoTiny controller on the same port.

Step 3: Configure Dynamic DNS (Optional)

  • If your home internet connection has a dynamic IP address, consider setting up a Dynamic DNS (DDNS) service. This will allow you to access your home network using a consistent domain name, even if your IP address changes.

Step 4: Test the Connection

  1. External Access: From a device outside your home network, try accessing your robot using the public IP address of your home network and the forwarded ports.
  2. Security: Ensure that your network is secure. Use strong passwords and consider setting up a VPN for added security.

Additional Resources

  • ARC HTTP Server Manual: HTTP Server Manual
  • Port Forwarding Guide: Check your router's manual or online resources specific to your router model for detailed instructions on setting up port forwarding.

By following these steps, you should be able to control your robot over the internet. If you encounter any issues, feel free to ask for further assistance!


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
PRO
Synthiam
#2   — Edited

You've asked about 3 seperate ways to connect to Synthiam ARC...

  1. direct as an EZB via a mobile app or ARC remotely (TCP port 23)

  2. using the remote UI app remotely (TCP port 3184)

  3. telneting to the script console (TCP port 6666)

  4. HTTP server via either of the HTTP robot skills (mentioned by Athena) (TCP port 80)

They're all separate ways to use ARC remotely. So you have to decide which of those you want to use and choose only one (not all 3).

@athena explain each of those methods.

PRO
Canada
#3  

Certainly! Let's break down each method for connecting to Synthiam ARC remotely, so you can choose the one that best suits your needs:

1. Direct Connection as an EZB via Mobile App or ARC Remotely (TCP Port 23)

  • Purpose: This method allows you to connect directly to the EZB microcontroller using the ARC software or mobile app.
  • How It Works: You configure the EZB to listen on TCP port 23. This is the default port for telnet connections, which ARC uses to communicate with the EZB.
  • Use Case: Ideal for direct control and programming of the robot using ARC or the mobile app.
  • Setup: Ensure port 23 is forwarded on your router to the internal IP address of the EZB.

2. Using the Remote UI App Remotely (TCP Port 3184)

  • Purpose: This method is for using the Remote UI app to control your robot.
  • How It Works: The Remote UI app connects to ARC via TCP port 3184, allowing you to interact with the robot's interface remotely.
  • Use Case: Suitable for users who want a graphical interface to control the robot remotely.
  • Setup: Forward port 3184 on your router to the internal IP address of the computer running ARC.

3. Telnet to the Script Console (TCP Port 6666)

  • Purpose: This method allows you to execute scripts remotely via a telnet connection.
  • How It Works: You connect to the script console using TCP port 6666, which lets you send commands directly to ARC.
  • Use Case: Useful for advanced users who want to automate tasks or control the robot using scripts.
  • Setup: Forward port 6666 on your router to the internal IP address of the computer running ARC.

4. HTTP Server via HTTP Robot Skills (TCP Port 80)

  • Purpose: This method provides a web-based interface to control the robot.
  • How It Works: The HTTP server listens on TCP port 80, allowing you to access the robot's controls through a web browser.
  • Use Case: Ideal for users who want a simple, web-based control interface.
  • Setup: Forward port 80 on your router to the internal IP address of the computer running ARC.

Choosing the Right Method

  • Direct Connection (Port 23): Best for direct programming and control using ARC.
  • Remote UI (Port 3184): Great for users who prefer a graphical interface.
  • Telnet (Port 6666): Suitable for script-based control and automation.
  • HTTP Server (Port 80): Perfect for web-based control and accessibility.

Each method has its own advantages, so choose the one that aligns with your requirements. If you need further assistance setting up any of these methods, feel free to ask!


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
PRO
Germany
#4   — Edited

@dj sures   I haven't asked 3  ways to connect ( or I have not written correctly  sorry) ,I've just written what i have read with different ports and I could not understand. I just want to connect over internet and use an interface to control the robot.  Locally on same network, it is ok. The remote UI interface seems to be the best for my project. I will read the answers provided.lets see if I can manage something:)

PRO
Synthiam
#5  

Perfect - Remote UI works great if you have a user interface configured. All the other methods are also helpful, although not as fluently. I use the remote UI the most as well.

PRO
Germany
#6  

@athena @dj sures . I used the ARC remote UI and it works perfectly. As decribed in the comments, i setup the port forwarding for both protocoles on the router and setup the WAN ip-adress of the router into the field ip-address of the apps. I tried outside my home without WiFi, used the commands in the interface builder, no problem. A bit slow and some latencies by moving the robot but it works In this configuration, the ARC PC must be up on running. A nice upgrade would be a sbc ,wide angle camera and a bigger battery.  a question:  can we use speech recognition to control the robot with the remote UI apps ? If yes, can you give me an example of script to be used ?

PRO
Canada
#7  

I'm glad to hear that the ARC Remote UI is working well for you! Regarding your question about using speech recognition to control the robot with the Remote UI app, here's how you can set it up:

Speech Recognition with Remote UI

While the Remote UI app itself doesn't directly support speech recognition, you can use the speech recognition feature in ARC on your PC to control the robot. Here's how you can set it up:

  1. Add Speech Recognition Skill:

    • In ARC, add the Speech Recognition skill to your project. This will allow ARC to listen for specific phrases and execute corresponding scripts.
  2. Configure Speech Commands:

    • Open the Speech Recognition skill and add the phrases you want to recognize. For each phrase, you can specify a script to execute.
  3. Example Script:

    • Here's a simple example of a script that moves the robot forward when the phrase "Move Forward" is recognized:
    // This script will move the robot forward
    Movement.forward();
    
  4. Testing:

    • Ensure your PC's microphone is set up correctly and test the speech recognition by saying the configured phrases. The robot should respond according to the scripts you've set up.
  5. Remote UI Integration:

    • While the Remote UI app doesn't handle speech recognition, it can still be used to control other aspects of the robot. The speech recognition will run on the ARC PC, and you can use the Remote UI for additional control.

Considerations

  • Latency: Since the speech recognition runs on the PC, there might be some latency if you're controlling the robot remotely.
  • Microphone Quality: Ensure you have a good quality microphone for accurate speech recognition.
  • Network Stability: A stable internet connection will help reduce latency and improve the overall experience.

If you have any more questions or need further assistance, feel free to ask!


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
PRO
Synthiam
#8  

No you can’t use speech recognition remotely. Might be worth looking into someday.

i also forgot to mention using exosphere. Have you tried that? You can use the robot for two way communication as well - such as telepresence. It had several options that might help your latency issue.

PRO
Germany
#9  

no, i havent tried exosphere yet but it could be the right tool I need later on.  .

PRO
Germany
#10  

@dj sures I will give a try with exosphere. I hope it is not too dfficul to use:)