India
Asked

Building A VR Controlled Robot

@Athena which approach is recommended for a interactive robot which control by VR oculus. ARC on Pi as a brain to robot, 4 motors and serial servos as arms to Arduino mega here i have another doubt also Hbridge skill has only 2 motor control. if i have 4 motors how to control it.



ARC Pro

Upgrade to ARC Pro

Your robot can be more than a simple automated machine with the power of ARC Pro!

#9  

@Athena , How to make the robot to feed basic information about the robot Say about yourself, What do you do? , How long will you run? these are all conversational questions asked to robot? how to preload answers to the robot, give me sample script to load the answers to the robot to speak.

PRO
Canada
#10  

To preload answers for your robot to respond to conversational questions,you can use ARCs scripting capabilities to create a script that listens for specific phrases and responds accordingly.Heres a step-by-step guide and a sample script to get you started:

Step-by-Step Guide:

  1. Add Speech Recognition Skill:

    • In ARC, add the Speech Recognition skill to your project. This skill will allow the robot to listen for specific phrases.
  2. Configure Speech Recognition:

    • Open the Speech Recognition skill configuration.
    • Add the phrases you want the robot to respond to, such as "Say about yourself," "What do you do?" and "How long will you run?"
  3. Create a Script for Each Phrase:

    • For each phrase, create a script that contains the response you want the robot to give.
    • Use the Audio.say() or Audio.sayEZB() function to make the robot speak the response.
  4. Assign Scripts to Phrases:

    • In the Speech Recognition configuration, assign the corresponding script to each phrase.

Sample Script:

Here's a sample script for the questions you mentioned:

// Script for "Say about yourself"
function aboutYourself() {
    Audio.say("I am a robot created to assist and entertain. I can perform various tasks and answer your questions.");
}

// Script for "What do you do?"
function whatDoYouDo() {
    Audio.say("I can perform a variety of tasks, including moving, speaking, and interacting with my environment.");
}

// Script for "How long will you run?"
function howLongWillYouRun() {
    Audio.say("I can run as long as my battery is charged. Please ensure I am charged regularly for optimal performance.");
}

Assigning Scripts:

  • In the Speech Recognition skill, add the phrase "Say about yourself" and assign the aboutYourself() script.
  • Add the phrase "What do you do?" and assign the whatDoYouDo() script.
  • Add the phrase "How long will you run?" and assign the howLongWillYouRun() script.

Testing:

  • Once the scripts are assigned, test the setup by speaking the phrases to the robot. It should respond with the preloaded answers.

By following these steps, you can preload answers to common conversational questions and enhance your robot's interactivity. If you have any further questions or need additional 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
#11  

Given your goal of creating an AI-powered robot, I'd use one of the several AI robot skills available. Specifically, I'd use the Open AI GPT robot skill, but you can choose the one you think is best. Find them here: https://synthiam.com/Support/Skills/Skills-Overview#Artificial-Intelligence

Please do not comment about unrelated topics any further on other threads. Keep your conversation about the robot that you are building in this thread. It helps us organize the forum for others who learn from reading manuals and watching others receive assistance.

#12  

, I plan to use a Raspberry Pi 5 in my robot, with Windows 11 installed and ARC running on it. The information provided on the website regarding the setup of single-board computers (SBC) seems outdated and unclear. Could you please provide more detailed and up-to-date instructions on how to configure a headless setup for the Raspberry Pi to automatically run ARC from startup?

PRO
Synthiam
#13   — Edited
  1. install windows 11 on the raspberry pi
  2. install ARC on the raspberry pi
  3. choose an ezb to use and install the firmware on it
  4. for programming your robot, follow tutorials and the several dozen examples and links that we have provided you. This thread has several examples and answers to your questions. I recommend scrolling up and reading responses to your questions. You can view your other threads which also received answers. Your other threads can be viewed in your account page.

The getting started guide will be of use to you.

By scrolling up, as mentioned in point #4, you'll see all the answers given to you. If you spend an hour focusing on the answers, you will have the robot running.

I beleive you are distracting yourself with too many goals and not focusing on a single task. Start by splitting your goal into smaller micro-goals. Tackle each micro-goal in order.

Incase you are not able to find your account profile to see past posts you have created, the link is here: https://synthiam.com/User/Profile/kslaxme

Follow that link to see the multiple topics you have created and the answers that have been given.

#14  

@Athena , how to feed the x,y,z values from other skills like oculus quest robot for example right controller value to inverse kinematics skill to control servos.

PRO
Canada
#15  

To feed the X, Y, Z values from other skills, such as the Oculus Quest robot skill, to the Inverse Kinematics skill in ARC, you can use the ControlCommand() function to pass the coordinates. Here's a step-by-step guide on how to achieve this:

  1. Identify the Source of X, Y, Z Values:

    • First, ensure that the Oculus Quest robot skill is providing the X, Y, Z values you want to use. These values might be available as global variables or through specific functions within the skill.
  2. Access the Values:

    • Use the getVar() function to access the global variables that store the X, Y, Z values from the Oculus Quest robot skill. For example:
      var x = getVar("$OculusQuestRightControllerX");
      var y = getVar("$OculusQuestRightControllerY");
      var z = getVar("$OculusQuestRightControllerZ");
      
  3. Send Values to Inverse Kinematics:

    • Use the ControlCommand() function to send these values to the Inverse Kinematics skill. Replace InverseKinematicsArm with the actual name of your Inverse Kinematics skill in ARC:
      ControlCommand("InverseKinematicsArm", "MoveTo", x, y, z);
      
  4. Integrate into a Script:

    • You can create a script in ARC that continuously reads the controller values and updates the Inverse Kinematics skill. Here's an example of how you might set this up:
      while (true) {
          // Get the X, Y, Z values from the Oculus Quest right controller
          var x = getVar("$OculusQuestRightControllerX");
          var y = getVar("$OculusQuestRightControllerY");
          var z = getVar("$OculusQuestRightControllerZ");
      
          // Send the values to the Inverse Kinematics skill
          ControlCommand("InverseKinematicsArm", "MoveTo", x, y, z);
      
          // Add a short delay to prevent overwhelming the system
          sleep(100);
      }
      
  5. Test and Adjust:

    • Run the script and observe the robot arm's movement. You may need to adjust the mapping of the controller values to the robot arm's coordinate system, depending on the scale and orientation of your setup.

By following these steps, you can effectively control the servos of your robot arm using the X, Y, Z values from the Oculus Quest right controller or any other compatible input device. If you encounter any issues 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.
#16  

seems like it doesnt has any relavant global variables representing left and right controller position, how can define the data as a variable and use in script?

User-inserted image

User-inserted image