Legged Control 使用指南
1. 项目介绍
Legged Control 是一个基于非线性模型预测控制(NMPC)和主动权重控制(WBC)的四足机器人控制系统框架。该框架利用 OCS2 和 ROS 控制库,旨在为腿部机器人提供高级控制策略。它的优势在于其灵活性和可扩展性,能够适用于不同类型的腿式机器人。
2. 项目快速启动
环境准备
确保你已安装了以下依赖项:
sudo apt install liburdfdom-dev liboctomap-dev libassimp-dev
然后克隆并安装 hpp-fcl
和 pinocchio
:
git clone --recurse-submodules https://github.com/leggedrobotics/hpp-fcl.git
cd hpp-fcl
mkdir build
cd build
cmake ..
make -j4
sudo make install
git clone --recurse-submodules https://github.com/leggedrobotics/pinocchio.git
cd pinocchio
mkdir build
cd build
cmake ..
make -j4
sudo make install
编译项目
克隆 Legged Control 仓库并执行 catkin
构建流程:
git clone https://github.com/qiayuanl/legged_control.git
cd legged_control
catkin init
catkin config --extend /opt/ros/noetic --install-space /your/install/path
catkin build legged_controllers legged_unitree_description
若仅进行仿真,请跳过硬件接口部分:
catkin build legged_gazebo
若要在真实硬件上运行,还需构建硬件接口:
catkin build legged_unitree_hw
启动模拟
设置机器人类型:
export ROBOT_TYPE=a1
启动仿真世界:
roslaunch legged_unitree_description empty_world.launch
加载控制器:
roslaunch legged_controllers load_controller.launch cheater:=false
启动控制器:
roslaunch legged_controllers legged_controller.launch
3. 应用案例与最佳实践
项目示例中提供的 legged_unitree
描述用于 Unitree A1 机器人。你可以根据实际机器人模型修改相关参数。最佳实践包括:
- 使用
ROBOT_TYPE
环境变量灵活切换不同机器人模型。 - 在真实硬件上运行前,务必先进行充分的仿真验证。
- 对控制器参数进行优化以适应特定任务和环境。
4. 典型生态项目
- OCS2(Optimal Control System 2):这是一个强大的开源工具,专为实时系统设计动态优化和控制器。
- ROS-Controllers:ROS 中的标准控制器库,包含关节轨迹、力控等多种控制器。
- Pinocchio:C++ 实现的高效机器人运动学和动力学库。
- Gazebo:流行的机器人仿真平台,用于测试和验证机器人行为。
这些生态项目共同构成了 Legged Control 的基础,提供了丰富的功能和良好的社区支持。