Unitree SDK2 Python 完整配置与使用指南

Unitree SDK2 Python 完整配置与使用指南

【免费下载链接】unitree_sdk2_pythonPython interface for unitree sdk2 项目地址: https://gitcode.com/gh_mirrors/un/unitree_sdk2_python

项目概述

Unitree SDK2 Python 是一个为 Unitree 双足机器人提供 Python 接口的软件开发工具包。该项目基于 Python 语言开发,通过 DDS(数据分发服务)通信机制实现与机器人的数据交互,为开发者提供了便捷的机器人控制和状态监控能力。

环境要求

在开始安装之前,请确保您的系统满足以下要求:

  • Python >= 3.8
  • cyclonedds == 0.10.2
  • numpy
  • opencv-python

完整安装流程

1. 获取项目源码

首先克隆项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/un/unitree_sdk2_python.git cd unitree_sdk2_python 

2. 安装系统依赖

对于 Ubuntu 系统,执行以下命令安装必要的依赖包:

sudo apt install python3-pip 

3. 编译安装 CycloneDDS

如果遇到 CycloneDDS 路径找不到的错误,需要先编译安装 CycloneDDS:

cd ~ git clone https://github.com/eclipse-cyclonedds/cyclonedds -b releases/0.10.x cd cyclonedds && mkdir build install && cd build cmake .. -DCMAKE_INSTALL_PREFIX=../install cmake --build . --target install 

4. 设置环境变量并安装 SDK

返回项目目录,设置环境变量并安装 Python 包:

cd ~/unitree_sdk2_python export CYCLONEDDS_HOME="~/cyclonedds/install" pip3 install -e . 

使用指南

DDS 通信示例

项目提供了基础的 DDS 通信示例,位于 example/helloworld 目录中。

发布者示例: 在终端中执行发布者程序:

python3 ./example/helloworld/publisher.py 

订阅者示例: 打开新的终端窗口,执行订阅者程序:

python3 ./example/helloworld/subscriber.py 

你将看到终端中输出的数据。publisher.pysubscriber.py 之间传输的数据结构定义在 user_data.py 中,用户可以根据需要定义所需的数据结构。

高级状态和控制

高级接口在数据结构和控制方法上与 unitree_sdk2 保持一致。

读取高级状态: 执行以下命令读取机器人状态:

python3 ./example/high_level/read_highstate.py enp2s0 

enp2s0 替换为机器人连接的网络接口名称。

高级控制测试: 执行运动模式测试程序:

python3 ./example/high_level/sportmode_test.py enp2s0 

该示例程序提供了多种测试方法,你可以根据需要选择相应的测试:

test.StandUpDown() # 站立和躺下 # test.VelocityMove() # 速度控制 # test.BalanceAttitude() # 姿态控制 # test.TrajectoryFollow() # 轨迹跟踪 - test.SpecialMotions() # 特殊动作 

低级状态和控制

低级接口在数据结构和控制方法上也与 unitree_sdk2 保持一致。

低级状态监控

python3 ./example/low_level/lowlevel_control.py enp2s0 

enp2s0 替换为机器人连接的网络接口名称。程序将输出右前腿髋关节、IMU 和电池电压的状态。

低级电机控制: 首先使用 APP 关闭高级运动服务(sport_mode),以防止指令冲突。

执行低级控制程序:

python3 ./example/low_level/lowlevel_control.py enp2s0 

左后腿髋关节将保持 0 度位置(出于安全考虑,设置 kp=10,kd=1),左后腿小腿关节将持续输出 1Nm 的扭矩。

无线控制器状态

获取无线控制器状态:

python3 ./example/wireless_controller/wireless_controller.py enp2s0 

终端将输出各个按键的状态。

前摄像头使用

使用 OpenCV 获取前摄像头画面(确保在有图形界面的系统上运行,按 ESC 键退出程序):

python3 ./example/front_camera/camera_opencv.py enp2s0 

避障开关控制

python3 ./example/obstacles_avoid_switch/obstacles_avoid_switch.py enp2s0 

机器人将循环开启和关闭避障功能。

灯光和音量控制

python3 ./example/vui_client/vui_client_example.py enp2s0 

机器人将循环调节音量和灯光亮度。

项目结构说明

项目主要包含以下核心目录:

  • unitree_sdk2py:主要的 Python 接口实现
  • example:丰富的示例程序,涵盖各种机器人控制场景
  • idl:接口定义语言文件
  • utils:工具类和辅助函数

支持机型

该项目支持多种 Unitree 机器人型号,包括:

  • B2 系列
  • G1 系列
  • Go2 系列
  • H1 系列

每个机型都有对应的示例代码,位于 example 目录下的相应子目录中。

注意事项

  1. 在实际操作机器人前,建议先在仿真环境中测试代码
  2. 确保网络连接稳定,机器人与控制端在同一网络环境中
  3. 注意安全操作,避免在机器人运行时过于靠近
  4. 遵循官方文档中的安全指南

通过本指南,您可以快速上手 Unitree SDK2 Python,开始您的机器人开发之旅。建议从简单的示例开始,逐步深入理解各个接口的功能和使用方法。

【免费下载链接】unitree_sdk2_pythonPython interface for unitree sdk2 项目地址: https://gitcode.com/gh_mirrors/un/unitree_sdk2_python

Read more

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

MCP客户端与服务端初使用——让deepseek调用查询天气的mcp来查询天气

本系列主要通过调用天气的mcp server查询天气这个例子来学习什么是mcp,以及怎么设计mcp。话不多说,我们开始吧。主要参考的是B站的老哥做的一个教程,我把链接放到这里,大家如果有什么不懂的也可以去看一下。 https://www.bilibili.com/video/BV1NLXCYTEbj?spm_id_from=333.788.videopod.episodes&vd_source=32148098d54c83926572ec0bab6a3b1d https://blog.ZEEKLOG.net/fufan_LLM/article/details/146377471 最终的效果:让deepseek-v3使用天气查询的工具来查询指定地方的天气情况 技术介绍 MCP,即Model Context Protocol(模型上下文协议),是由Claude的母公司Anthropic在2024年底推出的一项创新技术协议。在它刚问世时,并未引起太多关注,反响较为平淡。然而,随着今年智能体Agent领域的迅猛发展,MCP逐渐进入大众视野并受到广泛关注。今年2月,

By Ne0inhk
可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

可以在命令行通过大模型使用上下文协议(MCP)与外部工具交互的软件:小巧的MCPHost

小巧的MCPHost MCPHost 可以在命令行下使用,使大型语言模型(LLM)能够通过模型上下文协议(MCP)与外部工具进行交互。目前支持Claude 3.5 Sonnet和Ollama等。本次实践使用自己架设的Deepseek v3模型,跑通了Time MCP服务。  官网:GitHub - mark3labs/mcphost: A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP). 下载安装 使用非常方便,直接下载解压即可使用。官网提供Windows、Linux和MacOS三个系统的压缩包: https://github.com/

By Ne0inhk
实战篇:Python开发monogod数据库mcp server看完你就会了

实战篇:Python开发monogod数据库mcp server看完你就会了

原创不易,请关注公众号:【爬虫与大模型开发】,大模型的应用开发之路,整理了大模型在现在的企业级应用的实操及大家需要注意的一些AI开发的知识点!持续输出爬虫与大模型的相关文章。 前言 目前mcp协议是给deepseek大模型插上工具链的翅膀,让大模型不仅拥有超高的推理和文本生成能力,还能具备执行大脑意识的工具能力! 如何开发一个mcp? mcp是一种协议,指的是模型上下文协议 (Model Context Protocol)。 官方结成的mcp https://github.com/modelcontextprotocol/python-sdk mcp库 pip install mcp from mcp.server.fastmcp import FastMCP 我们先来做一个简单的案例 from mcp.server.fastmcp import FastMCP import requests mcp = FastMCP("spider") @mcp.tool() def crawl(

By Ne0inhk
【大模型实战篇】基于Claude MCP协议的智能体落地示例

【大模型实战篇】基于Claude MCP协议的智能体落地示例

1. 背景         之前我们在《MCP(Model Context Protocol) 大模型智能体第一个开源标准协议》一文中,介绍了MCP的概念,虽然了解了其概念、架构、解决的问题,但还缺少具体的示例,来帮助进一步理解整套MCP框架如何落地。         今天我们基于claude的官方例子--获取天气预报【1】,来理解MCP落地的整条链路。 2. MCP示例         该案例是构建一个简单的MCP天气预报服务器,并将其连接到主机,即Claude for Desktop。从基本设置开始,然后逐步发展到更复杂的使用场景。         大模型虽然能力非常强,但其弊端就是内容是过时的,这里的过时不是说内容很旧,只是表达内容具有非实时性。比如没有获取天气预报和严重天气警报的能力。因此我们将使用MCP来解决这一问题。         构建一个服务器,该服务器提供两个工具:获取警报(get-alerts)和获取预报(get-forecast)。然后,将该服务器连接到MCP主机(在本例中为Claude for Desktop)。         首先我们配置下环

By Ne0inhk