Audiotoolbox Plugin icon Audiotoolbox Plugin Enable UWP voices, change default audio devices, capture audio and route it to EZB controllers with session tracking and device control. Try it →
Asked
DialogFlow + AdventureBot WiFi setup

Dialogflow + Adventurebot Wifi Setup

I’m trying to drive an AdventureBot using voice intents via the DialogFlow robot skill and running into networking hiccups. The Google service account JSON is loaded in the DialogFlow config and tests fine when my Windows laptop is just on home WiFi. As soon as I connect ARC to the AdventureBot’s EZ-B v4 in its default AP mode, DialogFlow stops working (looks like no internet reachability) even though the rest of ARC controls still work locally. I get that DialogFlow needs the PC to have internet while also staying connected to the robot.

I switched the EZ-B v4 into Client mode and joined it to my home 2.4 GHz network. ARC connects to the EZ-B v4’s IP and DialogFlow starts responding, but I’m seeing occasional video stutters and delayed drive commands (a second or two lag between intent and movement). I tried moving closer to the router, disabling other heavy WiFi devices, and even tested a different channel on the router. I also experimented with a second USB WiFi adapter plus Windows network bridging to keep the EZ-B in AP mode while the laptop had internet on the other adapter, but the bridge was flaky and ARC pings would spike intermittently.

For those running AdventureBot with DialogFlow reliably: is Client mode on the EZ-B v4 the best practice, and are there specific router or ARC configuration tweaks (channels, QoS, timeouts) you recommend to reduce latency; and, once connectivity is solid, is using DialogFlow’s On Response script to route recognized intents to drive actions the preferred pattern for AdventureBot control?



Related Hardware (view all EZB hardware)
Adventurebot by EZ-Robot
Two-wheeled WiFi robot with camera using EZ-B v4 brain-affordable, expandable AdventureBot kit built from EZ-Bits, sold by EZ-Robot.
Wi-Fi / USB
Servos 24
Camera
Audio
UART 3
I2C
ADC 8
Digital 24

Related Robot Skills (view all robot skills)
Dialogflow by Google
Add Google DialogFlow NLP to ARC: conversational intents, parameter prompts, scripted responses, service-account setup and programmatic robot control.
EZB Connection by Synthiam
Connects EZ-B I/O controllers to ARC via COM or IP (5 connections). Supports init scripts, battery monitoring, TCP/EZ-Script server and serial/I2C.

ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#1  

Yes - for AdventureBot + DialogFlow, the most reliable setup is usually EZ-B v4 in Client mode, with your PC also on the same home network for internet access.

Best practice

  • EZ-B v4 in Client mode
  • ARC on your laptop connected to:
    • the same WiFi/router as the EZ-B
    • and also the internet for DialogFlow

This avoids the "two network interfaces fighting each other" issue you ran into with AP mode + bridge setups. That setup can work, but it’s often less stable than simply putting the EZ-B on the router.

Why AP mode causes trouble

In AP mode, your laptop is directly connected to the robot’s WiFi, and depending on the adapter/routing setup, Windows may stop sending internet-bound traffic correctly. That’s why DialogFlow can work one moment and then fail once ARC is tied to the EZ-B network.

You can read more about the networking side here:

About the lag you’re seeing

A 1-2 second delay between intent and movement usually points to one of these:

  • WiFi congestion or weak signal
  • Router roaming / power-saving behavior
  • Video stream bandwidth competing with command traffic
  • Script logic waiting on something before motion starts
  • DialogFlow processing latency on the cloud side

Things to try

1. Use a clean 2.4 GHz network

AdventureBot / EZ-B v4 generally performs best on a dedicated 2.4 GHz SSID.

If your router offers it:

  • Separate 2.4 GHz and 5 GHz SSIDs
  • Connect the EZ-B only to the 2.4 GHz one
  • Keep the laptop on the same 2.4 GHz network if possible

2. Keep the signal strong

  • Stay close to the router
  • Avoid mesh nodes that may roam aggressively
  • Try a different router location if possible

3. Reduce competing network load

  • Limit video streaming resolution/fps if the camera skill allows it
  • Avoid heavy downloads on the same WiFi during testing
  • Disable bandwidth-heavy devices temporarily to compare performance

4. Avoid Windows network bridging

You already found the common problem: bridging can be flaky with ARC and WiFi devices. In most cases, it’s better to:

  • use the router/client mode approach
  • or use two separate adapters without bridging, if necessary

ARC configuration tips

DialogFlow execution pattern

Yes - using DialogFlow’s On Response / script execution to route recognized intents to robot actions is the preferred pattern.

That’s the normal ARC workflow:

  • DialogFlow recognizes intent
  • ARC stores the response / parameters in globals like:
    • $APIIntent
    • $APIComplete
    • $APIParameters[...]
    • $APIResponse
  • Your script checks the intent and triggers actions

That’s exactly how you should drive AdventureBot from voice commands.

Example: intent routing script

If your intent action is something like drive.forward, you can keep the script simple:

if (getVar("$APIIntent") == "drive.forward") {
  if (getVar("$APIComplete")) {
    Movement.forward();
    sleep(1000);
    Movement.stop();
  }
}

Or if you want multiple commands:

if (getVar("$APIComplete")) {
  var intent = getVar("$APIIntent");

  if (intent == "drive.forward") {
    Movement.forward();
    sleep(1000);
    Movement.stop();
  } else if (intent == "drive.reverse") {
    Movement.reverse();
    sleep(1000);
    Movement.stop();
  } else if (intent == "drive.left") {
    Movement.left();
    sleep(500);
    Movement.stop();
  } else if (intent == "drive.right") {
    Movement.right();
    sleep(500);
    Movement.stop();
  }
}

For smoother driving

If you want less "one command = one timed move," consider:

  • start/stop style intents
    • "drive forward"
    • "stop"
  • and separate intents for direction / speed / duration

That tends to feel more responsive than waiting for a full sentence + timing parameter every time.

Best overall recommendation

For AdventureBot:

  1. Put EZ-B v4 in Client mode
  2. Put ARC laptop on the same router
  3. Use a clean 2.4 GHz network
  4. Keep video quality modest
  5. Route DialogFlow intents through scripted intent handlers in ARC

Helpful ARC docs

If you want, I can help you build a clean DialogFlow intent map for AdventureBot - for example:

  • drive.forward
  • drive.reverse
  • turn.left
  • turn.right
  • drive.stop

and show you the exact ARC script to go with it.

I am a customer support AI and still learning. Please verify important answers in our support documentation. For advanced AI features, use the AI Script Agent built into ARC.