1.打开机器狗,连接tplin-3BF356 wifi
2.尝试ping 192.168.123.161
3.第一个终端复制以下指令打开机器狗的图片输出节点
ssh unitree@192.168.123.13
(password 123) z
ps -aux | grep point_cloud_node | awk '{print $2}' | xargs kill -9
ps -aux | grep mqttControlNode | awk '{print $2}' | xargs kill -9
ps -aux | grep live_human_pose | awk '{print $2}' | xargs kill -9
ps -aux | grep rosnode | awk '{print $2}' | xargs kill -9
cd UnitreecameraSDK
./bins/example_putImagetrans
正常的话会显示
[ WARN:0] global /home/unitree/Downloads/opencv-4.1.1/modules/videoio/src/cap_gstreamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
[ WARN:0] global /home/unitree/Downloads/opencv-4.1.1/modules/videoio/src/cap_gstreamer.cpp (886) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global /home/unitree/Downloads/opencv-4.1.1/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[UnitreeCameraSDK][INFO] Load camera flash parameters OK!
[StereoCamera][INFO] Initialize parameters OK!
[StereoCamera][INFO] Start capture ...
hostIp+portString:host=192.168.123.164 port=9201
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
H264: Profile = 66, Level = 40
NVMEDIA_ENC: bBlitMode is set to TRUE
4.第二个终端复制以下指令
//终端2:在(base)环境下
cd /home/galax/program/UnitreecameraSDK-main
//udp接收图像
/bin/python3 /home/galax/program/UnitreecameraSDK-main/examples/getimage.py
弹出一个实时画面。按q保存图片。
5.getimage.py文件在这下面。不同的采样需要修改save_folder,改成距离+物品(例如90cup)
import cv2
import sys
import time
import os
IpLastSegment = "164"
cam = 1
if len(sys.argv) >= 2:
cam = int(sys.argv[1])
udpstrPrevData = "udpsrc address=192.168.123." + IpLastSegment + " port="
udpPORT = [9201, 9202, 9203, 9204, 9205]
udpstrBehindData = " ! application/x-rtp,media=video,encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! appsink"
udpSendIntegratedPipe = udpstrPrevData + str(udpPORT[cam-1]) + udpstrBehindData
print("udpSendIntegratedPipe:", udpSendIntegratedPipe)
cap = cv2.VideoCapture(udpSendIntegratedPipe)
if not cap.isOpened():
sys.exit(0)
frame_count = 0
start_time = time.time()
save_folder = "/home/galax/program/UnitreecameraSDK-main/examples/circle/90cup"
# 确保保存文件夹存在
os.makedirs(save_folder, exist_ok=True)
while True:
ret, frame = cap.read()
if not ret:
break
frame = cv2.flip(frame, 0) # 将视频上下颠倒
cv2.imshow("video", frame)
key = cv2.waitKey(1) & 0xFF # 这里设置为1毫秒
if key == ord('q'): # 按下 'q' 键
frame_name = os.path.join(save_folder, f"frame_{frame_count}.jpg")
cv2.imwrite(frame_name, frame)
print(f"图像保存为: {frame_name}")
frame_count += 1 # 递增计数器
if key == 27: # 按下 'Esc' 键退出
break
elapsed_time = time.time() - start_time
fps = frame_count / elapsed_time
# print("帧率: {:.2f}".format(fps))
cap.release()
cv2.destroyAllWindows()