![](https://private-user-images.githubusercontent.com/1189580/306220157-2fc5ee4a-81b0-425c-83df-558c7147cc59.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTA2MDQ2MzMsIm5iZiI6MTcxMDYwNDMzMywicGF0aCI6Ii8xMTg5NTgwLzMwNjIyMDE1Ny0yZmM1ZWU0YS04MWIwLTQyNWMtODNkZi01NThjNzE0N2NjNTkuanBnP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDMxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDAzMTZUMTU1MjEzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjAxNWI1YzY1NGUyMzE4ZTgzMTFhZTI0NmFlZTE3YjE0ODQwNjkxMzljNDZmYWViMjY2YmU0MDE2MmI3ZTQ3NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.obclBx5yrwinOKbLUlt5KgsE6zcY78ZwAQNP5VI2RWQ)
Upkie是一款完全开源的自平衡轮式双足机器人。它有用于平衡的轮子,以及用于越野或穿越不平坦地形的腿。Upkies 设计为可在家中使用在线订购的工具和组件进行构建,例如 mjbots 执行器。运动控制在机器人的 Raspberry Pi 上运行。
该存储库包含构建 Upkie 并对其进行动画处理所需的所有软件和说明。可以在 Linux 或 macOS 上使用 Python 或 C++ 进行开发。欢迎在聊天和讨论论坛中提问。
要使用 Python 编写 Upkie 代码,只需安装:
pip install upkie
这个 Python 接口已经足够快,可以进行实时控制。如果稍后您想优化部分代码,可以将它们移至 C++ spins。
您可以直接从命令行尝试演示:
git clone https://github.com/upkie/upkie.git cd upkie ./try_pid_balancer.sh
单击模拟器窗口中的机器人以施加外力。如果您的计算机连接了游戏控制器,请操纵其操纵杆来移动机器人🎮
您可以使用分布在upkie.envs
. 例如,这是一个简单的比例反馈平衡器:
import gymnasium as gym import upkie.envsupkie.envs.register()
with gym.make("UpkieGroundVelocity-v3", frequency=200.0) as env: observation, = env.reset() action = 0.0 * env.action_space.sample() for step in range(1_000_000): observation, reward, terminated, truncated, = env.step(action) if terminated or truncated: observation, _ = env.reset() pitch = observation[0] action[0] = 10.0 * pitch
要运行此代理,您首先需要启动模拟:
./start_simulation.sh
然后执行上面的Python代码。要在机器人上运行代理,请执行相同的操作,但运行pi3hat 脊柱而不是模拟。
演示代理只需通过PID 控制就地进行平衡。还有更高级的 Upkie 代理分布在自己的存储库中。查看您感兴趣的:
前往new_agent模板来创建您自己的模板。
- 建立你自己的 Upkie 🧰
- 例子
- Hackaday.io 上的项目日志
- 软件文档