Asked

Expanding Python On J Humanoid. Is Raspberry Pi The Right Choice?

Hello,

I am interested in using the J Humanoid robot for a project in my Computer Science and Information Systems degree. I plan to program the robot extensively in Python. I have a question for the forum: Will using a Raspberry Pi or a similar tool help me expand Python programming capabilities on the robot? My project focuses on addressing communication or speech disorders in children.

Thank you!


Related Hardware JD Humanoid

ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

PRO
Canada
#1  

Hello! It's great to hear that you're using the JD Humanoid robot for such a meaningful project. To answer your question, using a Raspberry Pi can indeed help you expand the Python programming capabilities on your JD Humanoid robot. Here are some points to consider:

Benefits of Using Raspberry Pi with JD Humanoid:

  1. Enhanced Processing Power: Raspberry Pi provides additional processing power, which can be beneficial for running complex Python scripts and handling more intensive computational tasks.
  2. Flexibility: You can install various Python libraries and tools on the Raspberry Pi, giving you more flexibility in your programming.
  3. Integration with ARC: You can use the Raspberry Pi to run ARC (Synthiam's software) and control the JD Humanoid robot. This allows you to leverage the extensive features of ARC while using Python for custom scripting.
  4. Networking: Raspberry Pi can easily connect to the internet, allowing you to use cloud-based services and APIs, such as the Microsoft Translate service you mentioned.

Steps to Integrate Raspberry Pi with JD Humanoid:

  1. Install ARC on Raspberry Pi: Follow the instructions on the Synthiam website to install ARC on your Raspberry Pi. This will allow you to control the JD Humanoid robot and use the robot skills you mentioned.
  2. Connect JD Humanoid to Raspberry Pi: Ensure that your JD Humanoid robot is connected to the Raspberry Pi via Wi-Fi or a direct connection.
  3. Use Python for Custom Scripts: You can write custom Python scripts within ARC to control the robot and integrate with other services. ARC supports Python scripting, which can be used to interact with the robot skills and control the robot's movements and actions.

Example Python Script in ARC:

Here's a simple example of how you might use Python within ARC to control the JD Humanoid robot:

# Import necessary libraries
import time

# Move the robot's head to look left
Servo.setPosition("d0", 90)  # Adjust the port and position as needed
time.sleep(1)

# Move the robot's head to look right
Servo.setPosition("d0", 0)  # Adjust the port and position as needed
time.sleep(1)

# Speak a phrase using the Translate skill
translated_text = translate("Hello, how are you?", "es")  # Translate to Spanish
Audio.say(translated_text)

Additional Resources:

Follow-Up Questions:

  1. Do you have any specific Python libraries or tools in mind that you want to use with the JD Humanoid robot?
  2. Are there any particular features or functionalities you need help with in your project?

Feel free to ask any more questions or provide additional details about your project. I'm here to help!


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
Canada
#2  

Hello @mekureya15, using a Raspberry Pi to control JD doesn't make a whole lot of sense as it would add redundancy. ARC doesn't run on Raspberry Pi from a software programming and control perspective (ARCx will when released), it must be programmed to be a slave to a PC. It acts like a EZ-B. So unfortunately @Athena is mistaken, using a Raspberry Pi with JD won't really help you expand as JD already has a slave EZ-B device, the EZ-Bv4.

Note that you can already program into Python using the Script skill in ARC, hope that helps!

PRO
Canada
#3  

Hello @mekureya15,

Thank you for your patience, and I apologize for any confusion earlier. Jeremie is correct in pointing out that using a Raspberry Pi to control the JD Humanoid robot may not be the most efficient approach, given that the JD Humanoid already comes with an EZ-B v4 controller, which serves as a slave device to a PC running ARC.

Key Points:

  1. ARC Compatibility: ARC does not currently run natively on Raspberry Pi. The Raspberry Pi would need to be programmed to act as a slave device, similar to the EZ-B v4, which adds redundancy.
  2. Python Programming: You can already program the JD Humanoid robot using Python within ARC. The Script skill in ARC supports Python, allowing you to write custom scripts to control the robot and integrate with other services.

Using Python in ARC:

You can leverage the existing capabilities of ARC to program your JD Humanoid robot in Python. Here’s how you can get started:

  1. Add the Script Skill:

    • Open your ARC project.
    • Go to Project -> Add Skill -> Scripting -> Script.
    • Choose the Script skill that supports Python.
  2. Write Python Scripts:

    • Open the settings of the Script skill.
    • Write your Python code in the script editor.

Example Python Script:

Here’s an example of how you might use Python within ARC to control the JD Humanoid robot:

# Import necessary libraries
import time

# Move the robot's head to look left
Servo.setPosition(d0, 90)  # Adjust the port and position as needed
time.sleep(1)

# Move the robot's head to look right
Servo.setPosition(d0, 0)  # Adjust the port and position as needed
time.sleep(1)

# Speak a phrase using the Translate skill
translated_text = translate("Hello, how are you?", "es")  # Translate to Spanish
Audio.say(translated_text)

Additional Resources:

Follow-Up Questions:

  1. Do you have any specific Python libraries or tools you want to use with the JD Humanoid robot?
  2. Are there any particular features or functionalities you need help with in your project?

Feel free to ask any more questions or provide additional details about your project. I'm here to help!


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
#4   — Edited

I’ll add more confusion. ARC runs on a raspberry pi, instructions are here: https://synthiam.com/Support/Hardware/Raspberry-Pi

but Python is built into ARC so using Python outside of ARC wouldn’t really be easy. It would take a lot of effort to program it entirely from scratch. You’d have to somehow figure out how to control all the servos using some sort of gait library. Then you’d need to figure out how to use the camera protocol and audio. It would be an intense feat.

the point to Synthiam ARC is you can program using components that other experts have already done the work for.

so you want to use speech recognition? Don’t reinvent the wheel, use one of the several speech recognition robot skills.

However, you program the functions and features of the robot skills with Python in arc.

it would be best to follow the getting starter guide or watch some of the several The Robot Program videos that show you how to program by leveraging from other experts who have already perfected stuff. Like, you’re not gonna create a gait library yourself for the robot, so use the Auto Position robot skill. Each of those robot skills took experts years to learn and create. Some are created by billion dollar companies, some are phd’s, etc.

by using Python alone, you’d never catch up to what’s already available as robot skills.

PRO
Canada
#5   — Edited

@DJ Sures WiFi ever figured out for WOR? That was always the limiting factor.

Otherwise, you would need to tether to the EZ-Bv4 with a wired connection from the Raspberry Pi. From a hardware perspective, it would be tricky. Either way you look at it, the battery life wouldn't be great with an Rpi.

PRO
Synthiam
#6   — Edited

Yeah with usb WiFi adapter

jeremie is correct about power consumption.

I’d also say raspberry pi is too expensive compared to low cost laptops. You can get full windows 11 laptops on Amazon for $100 and a raspberry pi can cost twice as much.

PRO
Canada
#7  

Hello @mekureya15,

Thank you for your patience and the valuable insights from Jeremie and DJ Sures. Let's clarify the best approach for your project using the JD Humanoid robot and Python programming.

Key Points:

  1. ARC on Raspberry Pi:

    • ARC can run on a Raspberry Pi, but it requires additional setup and may not be the most efficient approach due to power consumption and cost considerations.
    • Instructions for running ARC on a Raspberry Pi can be found here.
  2. Using Python in ARC:

    • ARC already supports Python scripting, allowing you to leverage existing robot skills and functionalities without reinventing the wheel.
    • You can use the Script skill in ARC to write Python code and control the JD Humanoid robot.
  3. Leveraging Existing Robot Skills:

    • ARC provides a wide range of robot skills created by experts, which can save you significant development time.
    • For example, you can use the Auto Position robot skill for gait control, speech recognition skills for voice commands, and more.

Recommended Approach:

  1. Use a Low-Cost Windows Laptop:

    • As DJ Sures mentioned, low-cost Windows laptops are available for around $100, which can run ARC efficiently and provide a more straightforward setup compared to a Raspberry Pi.
  2. Programming with Python in ARC:

    • Add the Script skill to your ARC project and write Python scripts to control the JD Humanoid robot.
    • Utilize existing robot skills for complex functionalities like gait control, speech recognition, and camera operations.

Example Python Script in ARC:

Here's an example of how you might use Python within ARC to control the JD Humanoid robot:

# Import necessary libraries
import time

# Move the robot's head to look left
Servo.setPosition(d0, 90)  # Adjust the port and position as needed
time.sleep(1)

# Move the robot's head to look right
Servo.setPosition(d0, 0)  # Adjust the port and position as needed
time.sleep(1)

# Speak a phrase using the Translate skill
translated_text = translate("Hello, how are you?", "es")  # Translate to Spanish
Audio.say(translated_text)

Additional Resources:

Follow-Up Questions:

  1. Do you have any specific Python libraries or tools you want to use with the JD Humanoid robot?
  2. Are there any particular features or functionalities you need help with in your project?

Feel free to ask any more questions or provide additional details about your project. I'm here to help!


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.
#8  

Hello friends,
Thank you for your responses and explanations. I almost ordered the Raspberry, so I appreciate the important update. I am interested in programming in Python, and I will need object recognition with the camera, speech capabilities, and analysis with the possibility of AI, both within the framework of a game and slightly outside of it, along with other features. I would like to show you my work, and if you could please confirm whether the ARC software for operating the robot contains the necessary libraries and functions, and if I can integrate external code through PyCharm. It's important to me to program in Python to give weight to my project.

Here is the project specification document:

Background
Communication is a fundamental and critical skill for daily life, yet many individuals struggle in this area due to various disabilities. Speech therapists are professionals specializing in treating these issues, but they face limitations in time and workforce. Smart robots offer a potential solution to support this field and improve the quality of services provided.
The EZ-Robot JD Humanoid is a robotic platform offering high flexibility and programmability, making it a suitable tool to assist speech therapists in their treatment processes, especially in human interactions that require emotional support and physical demonstration.

Project Goals

  1. Develop a robot capable of supporting speech therapists in interactive treatments with patients.
  2. Enhance patient experience by using the robot for feedback, demonstrations, and speech.
  3. Create an interactive and personalized environment that will improve communication between the therapist and patient.
  4. Analyze data collected during treatments to make future personalized adjustments and improve the treatment process.

Constraints

  • Time: Meeting a specific timeline that includes development, testing, and implementation.
  • Resources: Budget limitations for hardware purchase and robot maintenance.
  • Technology: Selection of systems and infrastructures such as cloud, databases, and AI solutions that will support the robot.
  • Regulation: Maintaining patient privacy and compliance with various regulations (e.g., HIPAA).

Current State in the Speech Therapy Market
Today, speech therapists mainly rely on traditional methods such as face-to-face sessions, working with various aids (pictures, games, tools), as well as technological tools like mobile applications. However, the number of therapists is limited, and the cost of individual treatment is high for many families. Currently, there is not much use of smart robots in treatments, creating a unique opportunity for innovation in the field.

Problems with the Current State

  1. Workforce Shortage: The number of speech therapists is insufficient to meet all the demands.
  2. Cost: Individual treatments are expensive.
  3. Outdated Treatment Methods: The use of physical tools that are not updated or adapted to the digital age.
  4. Time Limitation: The therapist can meet with the patient only during certain working hours.

Robot Specification as a Speech Therapist
The robot will be adapted to operate in support of speech therapists and will include the following functions:

  1. Interactive Speech Support: A robot that speaks and understands basic voice commands.
  2. Data Analysis: Collecting and analyzing data from interactions with the patient for personalized adjustments and treatment improvement.
  3. Integration with Cloud-Based Systems: The robot will connect to a cloud system that will store and analyze data, allowing therapists access from anywhere.
  4. Mobile App: Enables real-time access and data management by the speech therapist.
  5. Web Client Service: Therapists will be able to manage the robot and interactions through a web browser.

Technological Principles

  • Cloud: Data storage, backup, and analysis are conducted in the cloud for flexibility and accessibility from anywhere.
  • Web Client Service: Online services through which the robot can be operated, and data can be tracked.
  • Mobile App: Convenient management for therapists and tracking progress through mobile devices.
  • DB Analytics: Analysis of data collected during treatments to optimize and generate clinical insights.

System Processes

  1. Starting the Memory Game
    • The robot starts the game:
      • Displays a set of digital cards (in the interface) or physical cards (using tangible game cards).
      • The robot explains the rules to the child, how to select cards, and the objective of the game (to find matching pairs).
  2. Card Recognition
    • Digital Memory Game
      • Selecting and displaying cards:
        • The child selects a pair of cards on the screen, and the robot identifies the types of cards.
        • A check is performed to see if the selected cards are a match.
    • Physical Memory Game
      • Card recognition using the camera:
        • The child selects physical cards, and the robot photographs and identifies them using its camera.
        • The system compares the images to the database to identify the card type (objects, actions, emotions).
        • A check is performed to determine if the selected cards are a match based on the database information.
  3. Response to a Successful or Incorrect Choice
    • Response in Case of Success:
      • The robot praises the child for the correct choice and explains the matching card pair (whether digital or physical).
    • Response in Case of Error:
      • The robot gently guides the child to try again and explains why the choice was incorrect.
  4. Tracking the Child's Progress
    • Tracking and Analysis:
      • The system records the child's number of attempts and successes in the game, whether digital or physical.
      • Data analysis allows adjusting the difficulty level according to the child's achievements.
  5. End of the Game and Final Feedback
    • Summary and Feedback:
      • At the end of the game, the robot provides personalized feedback, praises the child for their achievements, and summarizes the game.
      • The data is saved in a cloud-based system for future tracking.

Technological Principles

  • Cloud: All the data collected during the games, both digital and physical, is stored in a cloud system for tracking and future use.
  • Web Client Service: Speech therapists can access the data via an online system and monitor the child's progress.
  • Mobile App: Enables the therapist to remotely track, make adjustments, and see the child's progress in real-time.
  • DB Analytics: The system analyzes the game data to generate insights regarding the child's challenges and progress.

System Design
Main Screens in the System

  1. Opening Screen:
    • Displays a set of cards and allows the selection of a game theme (objects, actions, emotions).
    • The robot starts by explaining the game and prepares the child for the next steps.
  2. Progress Tracking Screen:
    • The speech therapist can view the patient's personal information, including previous successes, feedback provided to them, and insights into habits and difficulties observed during the games.
    • The child's behavioral patterns can be analyzed, and the difficulty level adjusted according to their needs.
  3. Game Management Screen:
    • Allows the speech therapist to select games, adjust difficulty levels, and manage games based on the child's progress.
    • The system will suggest personalized games based on the child's progress analysis.
  4. Reports and Analysis Screen:
    • The system generates detailed reports on the child's progress, including statistical data, graphs, and suggestions for the continuation of the treatment process.
    • These reports will help the speech therapist monitor changes in the child's performance and communication skills over time.

This design provides a clear structure for workflow and makes it easier to track the child's progress.

#9  

It would be best to review the answers to your other duplicate questions. Please do that before posting again.

PRO
Canada
#10  

Hello @mekureya15,

Thank you for sharing the detailed project document. Your project is ambitious and impactful, aiming to support speech therapists with the JD Humanoid robot. Let's address your questions and provide guidance on how to proceed with ARC and Python programming.

Key Features and Requirements:

  1. Object Recognition with Camera
  2. Speech Capabilities
  3. AI Integration
  4. Data Analysis and Cloud Integration

Using ARC for Your Project:

ARC (Autonomous Robot Control) software provides a robust platform for integrating various functionalities, including object recognition, speech capabilities, and AI. Here's how you can leverage ARC for your project:

1. Object Recognition with Camera:

ARC supports various camera skills that can be used for object recognition. You can use the Camera Device skill to track objects, faces, colors, and more.

  • Camera Device Skill: Camera Device
  • Example Python Script for Object Recognition:
    # Start the camera
    controlCommand("Camera", "StartCamera")
    
    # Enable object tracking
    controlCommand("Camera", "EnableObjectTracking")
    
    # Check if an object is detected
    if getVar("$CameraObjectDetected"):
        print("Object detected!")
        # Perform actions based on object detection
    

2. Speech Capabilities:

ARC provides several skills for speech recognition and text-to-speech. You can use the Speech Recognition skill to recognize voice commands and the Audio skill for text-to-speech.

  • Speech Recognition Skill: Speech Recognition
  • Audio Skill: Audio
  • Example Python Script for Speech:
    # Speak a phrase
    Audio.say("Hello, how are you?")
    
    # Wait for a specific speech command
    command = Audio.waitForSpeech(10, "Please say a command")
    if command == "move forward":
        Movement.forward()
    

3. AI Integration:

You can integrate AI functionalities using the DialogFlow and Translate skills you mentioned. These skills allow you to process natural language and translate text.

  • DialogFlow Skill: DialogFlow
  • Translate Skill: Translate
  • Example Python Script for AI Integration:
    # Send a phrase to DialogFlow
    controlCommand("DialogFlow", "Send", "Hello there")
    
    # Get the response from DialogFlow
    response = getVar("$DialogFlowResponse")
    print("DialogFlow response:", response)
    
    # Translate the response to Spanish
    translated_text = translate(response, "es")
    Audio.say(translated_text)
    

4. Data Analysis and Cloud Integration:

For data analysis and cloud integration, you can use external Python libraries and services. While ARC does not natively support cloud storage, you can write Python scripts to interact with cloud services like AWS, Google Cloud, or Azure.

  • Example Python Script for Cloud Integration:
    import requests
    
    # Send data to a cloud service
    data = {"patient_id": 1, "progress": "improved"}
    response = requests.post("https://your-cloud-service.com/api/data";, json=data)
    print("Cloud response:", response.json())
    

Integrating External Code with PyCharm:

You can develop your Python scripts in PyCharm and then integrate them into ARC. Here's how you can do it:

  1. Develop Scripts in PyCharm:

    • Write and test your Python scripts in PyCharm.
    • Ensure the scripts are compatible with ARC's Python environment.
  2. Integrate Scripts into ARC:

    • Copy the scripts from PyCharm and paste them into the Script skill in ARC.
    • Use ARC's Python API to interact with the robot's hardware and skills.

Conclusion:

ARC provides a comprehensive platform for developing your project with the JD Humanoid robot. By leveraging existing skills and integrating Python scripts, you can achieve the functionalities required for your project. If you have any specific questions or need further assistance, feel free to ask.

Follow-Up Questions:

  1. Do you have any specific Python libraries or tools you want to use with the JD Humanoid robot?
  2. Are there any features or functionalities you need help with in your project?

Feel free to share more details or ask additional questions. I'm here to help!


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.