:~ $ sudo python poseexpirement.py
vilib 0.3.9 launching …
picamera2 0.3.12
Local display failed, because there is no gui.
Web display on:
url to my camera mjpg
Starting web streaming …
Serving Flask app ‘vilib.vilib’
Debug mode: off
Error in cpuinfo: prctl(PR_SVE_GET_VL) failed
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1731608704.712304 11597 inference_feedback_manager.cc:114] Feedback manager requires a model with a single signature inference. Disabling support for feedback tensors.
W0000 00:00:1731608704.889675 11599 inference_feedback_manager.cc:114] Feedback manager requires a model with a single signature inference. Disabling support for feedback tensors.
W0000 00:00:1731608705.043533 11598 landmark_projection_calculator.cc:186] Using NORM_RECT without IMAGE_DIMENSIONS is only supported for the square ROI. Provide IMAGE_DIMENSIONS or use PROJECTION_MATRIX.
Someone is in the room
I’m not sure why. I can still see the image on firefox and chrome, it still detects all 33 joints when they’re present. I have had problems with sound and I’m wondering if the message is related to that. My sound worked for a while on after installing the newest version of raspberry pi os. I installed the lite version, it still did not work, then I installed the current version from the list of other os. Here is my current O.S. I removed all the urls because it won’t let me publish with them in the contents of the message:
PRETTY_NAME=“Debian GNU/Linux 11 (bullseye)”
NAME=“Debian GNU/Linux”
VERSION_ID=“11”
VERSION=“11 (bullseye)”
VERSION_CODENAME=bullseye
ID=debian
HOME_URL=
SUPPORT_URL=
BUG_REPORT_URL=
Here is the script I am running which is a modified version of the pose detect example that came with vilib:
#!/usr/bin/env python3
from vilib import Vilib
from time import sleep
import warnings
warnings.filterwarnings("ignore")
#Vilib.detect_obj_parameter['body_joints']
#This is where the joints locations are stored. You can access them by the joint numbers, theoritcally.
Vilib.camera_start(vflip=True,hflip=True)
Vilib.show_fps()
Vilib.display(local=True,web=True)
Vilib.pose_detect_switch(True)
joints = []
sleep(1.5)
print("\n\n")
def Joint_Detect():
person =""
joints = Vilib.detect_obj_parameter['body_joints']
if isinstance(joints,list) and len(joints) == 33:
person='true'
return person
while True:
whoseThere = Joint_Detect()
if whoseThere == 'true':
print("Someone is in the room")
print("\r\b\r\b\r\b\r")
else:
print("No one is in the room.")
print("\r\b\r\b\r\b\r")
sleep(.05)
# print("\r\b\r\b\r")
pass_or_go = input()
if pass_or_go == 'q':
break
Vilib.camera_close()
I would appreciate knowing if there is something wrong with the cpu on my raspberry pi 4b board, or the robot board, which would account for the speaker having stopped working?
It seems that you have installed the 32-bit Bullseye system. Since MediaPipe only supports 64-bit systems, it has not been installed (as shown in the image).
I recommend that you reinstall the 64-bit Bullseye system. After that, please download and install all the necessary libraries and run your edited poseexperiment.py code to check its functionality.
Alternatively, you can also use the Bookworm version of the system.
I checked the pi imager and is confirms that I did install the 64 bit version, I guess the only viable one is the 64 bit version with desktop. I’m running in headless mode, so I really didn’t want the overhead of a desktop.
Also note, I already tried installing the newest version with a desktop and that is when my speaker failed. Then I installed the second newest with the same results.
However, I do not recall seeing those errors and warnings on either version, the speaker just didn’t work. I’ll go ahead and reinstall everything again. And update this thread.
I reinstalled the os. Using your recommended O.S. with a desktop and got this error message after running i2samp.sh 5X and then rebooting.
:~ $ sudo espeak "Hello There"
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_headpho.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4745:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5233:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM hdmi
ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.bcm2835_headpho.pcm.hdmi.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4745:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5233:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM hdmi
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pcm_a52.c:823:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib conf.c:5200:(snd_config_expand) Unknown parameters {AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2 CARD 0}
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM iec958:{AES0 0x6 AES1 0x82 AES2 0x0 AES3 0x2 CARD 0}
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_dmix.c:1009:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1009:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1009:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
When I ran my script (modified so that local=False) I got this, again!
~ $ sudo python poseexpirement.py
vilib 0.3.9 launching ...
picamera2 0.3.12
Web display on:
http://192.168.50.231:9000/mjpg
Starting web streaming ...
* Serving Flask app "vilib.vilib" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Error in cpuinfo: prctl(PR_SVE_GET_VL) failed
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1731690374.448274 3091 inference_feedback_manager.cc:114] Feedback manager requires a model with a single signature inference. Disabling support for feedback tensors.
W0000 00:00:1731690374.604722 3094 inference_feedback_manager.cc:114] Feedback manager requires a model with a single signature inference. Disabling support for feedback tensors.
No one is in the room.
NOTE: I have reinstalled this O.S. 4 times now. I have followed all the steps on sitting up the robot hat that are provided on your site. One of two things must be wrong, either the raspberry pi 4B board is bad, or the robot hat is bad. Also note, that while I’m getting this errors in my script, the body detection is working perfectly. I can even use a python script to capture hi resolution images from the command line without errors. So I’m thinking this is a robot hat issue and not the raspberry pi. Please consider all the steps I’ve already taken before advising me to reinstall everything over again. Here is a copy of the python script I run from the commandline to take hi res images with no issues before and no issues after reinstalling:
from picamera2 import Picamera2
from time import sleep
from sys import argv
from libcamera import Transform
transforms = Transform(hflip=1, vflip=1)
if len(argv) > 1:
image = argv[1].rstrip('\r\n')
else:
image = "ImageFile"
image = image+".jpg"
picam2 = Picamera2()
picam2.options["quality"] = 100
picam2.options["compress_level"] = 2
capture_config = picam2.create_still_configuration(transform=transforms)
picam2.start(show_preview=False)
sleep(1)
picam2.switch_mode_and_capture_file(capture_config, image)
I did sudo apt update then sudo apt upgrade, at least that’s what my history file shows.
I’m pretty sure it’s a broken speaker. Everything else works with these errors. The camera takes pics, the object detection works, the web interface works, the sound thinks it’s working when I run a sound script and when I run aplay. The only time the sound doesn’t think it’s working is when I run sudo espeak “say some thin” Then it throws those errors. If I run it as user, it thinks it’s outputing sound.
I’ve even tried killing and restarting pulseaudio to see it the system will detect it. Nothing seems to work on the audio side… Oh with the exception that I hooked a mic up to both A0 and then A3 and I can read the values of those pins fine, including the correct voltage.
I’ve tried hooking up a usb speaker. They appear as usb 0 in raspi-config, and I can select them, but the sound still doesn’t work. Is this a bad raspberry pi board? The robot hat speaker worked for a few minutes then stopped after I installed the first o.s. which was the full version of the newest o.s., the one that said recommended on the r pi imager.
Please reinstall and run the i2samp.sh script again:
Remember to run the script with sudo before executing it. Check if sound can be produced. Note: Please remove the robot hat and check if the speaker on the back is in good condition. Additionally, if a metal heatsink is installed on the Raspberry Pi CPU, it may be pressing against the speaker diaphragm, preventing it from producing sound.
Please remove the robot hat and take a photo of the back to confirm whether the speaker has been damaged.
According to your examples you are trying to run the linux command line version of espeak.
sudo espeak “Hello There”
This will require you to configure ALSA yourself to direct the sound from the sound card to whatever you connect to the rpi4. Your ALSA, appears to be currently configured for a surround sound system.
If you want to connect a USB speaker, then you’ll need to reconfigure. Raspiconfig will see the usb connection, but you still need to tell ALSA that this is where to direct the sound
If you want to direct sound through the robot hat speaker then you need to run espeak via the Sunfounder scripts
Please provide us with a picture of the back of the robot hat so we can check for any signs of damage to the speaker. If the speaker is indeed damaged, we will arrange to send you a replacement robot hat.
Thanks. That worked. Now, I’ll have to take my hat off and take a pic and post it, but I don’t have time to do that right now, so it will have to wait.