Toybrick

CHAMP 四足控制器开源框架

bobby_jiang

版主

积分
587
楼主
发表于 6 天前    查看: 101|回复: 9 | [复制链接]    打印 | 只看该作者
本帖最后由 bobby_jiang 于 2025-2-14 14:49 编辑

CHAMP 是一个开源开发框架,用于构建新的四足机器人和开发新的控制算法。该控制框架基于“利用模式调制和阻抗控制的高动态运动分层控制器:在麻省理工学院猎豹机器人上的实现”。

github地址: https://github.com/chvmp/champ

核心特点:
  1.完全自主(使用 ROS 导航堆栈)。
  2.设置助手用于配置新建的机器人。
  3.预配置URDF的**,例如 Anymal、MIT Mini Cheetah、Boston Dynamic's Spot 和 LittleDog。
  4.Gazebo模拟环境。
  5.与SpotMicroAI和OpenQuadruped等 DIY 四足项目兼容。
  6.TOWR和鸡头稳定等演示应用程序。
  7.轻量级 C++ 仅头文件库,可在 SBC 和微控制器上运行。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

bobby_jiang

版主

积分
587
沙发
 楼主| 发表于 6 天前 | 只看该作者
1. 安装
1.1 克隆并安装所有依赖项:
  1. sudo apt install -y python-rosdep
  2. cd <your_ws>/src
  3. git clone --recursive https://github.com/chvmp/champ
  4. git clone https://github.com/chvmp/champ_teleop
  5. cd ..
  6. rosdep install --from-paths src --ignore-src -r -y
复制代码

如果您想使用任何预先配置的机器人,例如 Anymal、Mini Cheetah 或 Spot,请按照此处的说明进行操作。

1.2 构建你的工作空间:
  1. cd <your_ws>
  2. catkin_make
  3. source <your_ws>/devel/setup.bash
复制代码
回复

使用道具 举报

bobby_jiang

版主

积分
587
板凳
 楼主| 发表于 6 天前 | 只看该作者
本帖最后由 bobby_jiang 于 2025-2-14 14:59 编辑

2. 快速入门
您不需要物理机器人来运行以下演示。如果您正在构建物理机器人,您可以在步骤 3 中了解如何配置和运行新机器人的更多信息。

2.1 RVIZ 步行演示:
2.1.1 运行基础驱动程序:
  1. roslaunch champ_config bringup.launch rviz:=true
复制代码

2.1.2 运行teleop节点:
  1. roslaunch champ_teleop teleop.launch
复制代码

如果您想使用操纵杆,请添加 Joy:=true 作为参数。

2.2 SLAM演示:
2.2.1 运行Gazebo环境:
  1. roslaunch champ_config gazebo.launch
复制代码

2.2.2 运行gmapping包和move_base:
  1. roslaunch champ_config slam.launch rviz:=true
复制代码

开始映射:

单击“二维导航目标”。

单击并拖动您希望机器人移动的位置。


通过运行以下命令保存地图:

  1. roscd champ_config/maps
  2. rosrun map_server map_saver
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

bobby_jiang

版主

积分
587
地板
 楼主| 发表于 6 天前 | 只看该作者
2.3 自主导航:
2.3.1 运行Gazebo环境:
  1. roslaunch champ_config gazebo.launch
复制代码

2.3.2 运行amcl和move_base:
  1. roslaunch champ_config navigate.launch rviz:=true
复制代码

导航:

单击“二维导航目标”。

单击并拖动您希望机器人移动的位置。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

bobby_jiang

版主

积分
587
5#
 楼主| 发表于 6 天前 | 只看该作者
本帖最后由 bobby_jiang 于 2025-2-14 15:06 编辑

3. 运行自己的机器人:
在真实机器人上运行 CHAMP 有两种方法:

Linux机器

使用此 ROS 包计算关节角度并将其发送到硬件接口来控制执行器。您可以遵循这些指南来创建执行器的界面。

轻量版

在 Teensy 系列微控制器上运行 CHAMP 的轻量级版本,并用它直接控制您的执行器。

3.1 生成机器人配置
首先使用champ_setup_assistant生成配置包。按照自述文件中的说明配置您自己的机器人。生成的包包含:

作为参考,您可以在此处查看已预先配置的机器人**。列表中包括一些流行的四足机器人,例如 Anymal、MIT Mini Cheetah、Boston Dynamic 的 LittleDog 和 SpotMicroAI。请随意下载catkin工作区'src'目录中的配置包来尝试。

机器人的 URDF 路径。

关节和链接图可帮助控制器了解机器人的语义。

步态参数。

硬件驱动程序。

导航参数(move_base、amcl 和 gmapping)。

用于步态和轻型机器人描述的微控制器头文件。这仅适用于使用微控制器运行四足控制器的机器人构建。

接下来,构建您的工作区,以便可以找到新生成的包:

  1. cd <your_ws>
  2. catkin_make
复制代码

3.2 基本驱动器:
这将运行四足控制器和所有传感器/硬件驱动程序:
  1. roslaunch <myrobot_config> bringup.launch
复制代码


可用参数:

rviz - 与 RVIZ 一起启动。默认值:假

lite - 如果您使用微控制器来运行算法,请始终将其设置为 true。默认为 false。

用法示例:

查看您新配置的机器人:
  1. roslaunch <myrobot_config> bringup.launch rviz:true
复制代码


使用微控制器运行真实的机器人:
  1. roslaunch <myrobot_config> bringup.launch lite:=true
复制代码


回复

使用道具 举报

bobby_jiang

版主

积分
587
6#
 楼主| 发表于 6 天前 | 只看该作者
本帖最后由 bobby_jiang 于 2025-2-14 15:11 编辑

3.3 创建地图:
必须运行 3.2 中描述的基本驱动程序才能运行 gmapping 和 move_base。

运行 gmapping 包和 move_base:

  1. roslaunch <myrobot_config> slam.launch
复制代码

要打开 RVIZ 并查看地图:

  1. roscd champ_navigation/rviz
  2. rviz -d navigate.rviz
复制代码

开始映射:

单击“二维导航目标”。

单击并拖动您希望机器人移动的位置。




通过运行以下命令保存地图

  1. roscd <myrobot_config>/maps
  2. rosrun map_server map_saver
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

bobby_jiang

版主

积分
587
7#
 楼主| 发表于 6 天前 | 只看该作者
3.4 自主导航:
必须运行 3.2 中描述的基本驱动程序才能运行 amcl 和 move_base。

运行 amcl 和 move_base:

  1. roslaunch <myrobot_config> navigate.launch
复制代码

要打开 RVIZ 并查看地图:

  1. roscd champ_navigation/rviz
  2. rviz -d navigate.rviz
复制代码

导航:

单击“二维导航目标”。

单击并拖动您希望机器人移动的位置。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

bobby_jiang

版主

积分
587
8#
 楼主| 发表于 6 天前 | 只看该作者
3.5 在 Gazebo 中运行机器人
在模拟模式下运行 Gazebo 和基本驱动程序:

  1. roslaunch <myrobot_config> gazebo.launch
复制代码

请注意,为了使其工作,URDF 必须与 Gazebo 兼容并具有ros_control功能。控制器已设置完毕,因此您只需添加执行器的传输即可。您还需要获得正确的物理参数,例如质量、惯性和脚部摩擦力。

有关正确设置这些参数的一些有用资源:

惯性计算 - https://github.com/tu-darmstadt-ros-pkg/hector_models/blob/indigo-devel/hector_xacro_tools/urdf/inertia_tensors.urdf.xacro

转动惯量列表 - https://en.**.org/wiki/List_of_moments_of_inertia

Gazebo 惯性参数 - http://gazebosim.org/tutorials?tut=inertia&cat=build_robot#Overview

您还可以查看此拉取请求作为示例。
回复

使用道具 举报

bobby_jiang

版主

积分
587
9#
 楼主| 发表于 6 天前 | 只看该作者
3.6 在 Gazebo 中生成多个机器人
运行 Gazebo 和默认模拟世界:

  1. roslaunch champ_gazebo spawn_world.launch
复制代码

您还可以通过将世界路径传递给“gazebo_world”参数来加载您自己的世界文件:

  1. roslaunch champ_gazebo spawn_world.launch gazebo_world:=<path_to_world_file>
复制代码

生成机器人:

  1. roslaunch champ_config spawn_robot.launch robot_name:=<unique_robot_name> world_init_x:=<x_position> world_init_y:=<y_position>
复制代码

生成的机器人的每个实例都必须有一个唯一的机器人名称,以防止主题和变换发生冲突。
回复

使用道具 举报

bobby_jiang

版主

积分
587
10#
 楼主| 发表于 6 天前 | 只看该作者
本帖最后由 bobby_jiang 于 2025-2-14 15:16 编辑

4. 调整步态参数
机器人的步态配置可以在 <my_robot_config>/gait/gait.yaml 中找到。
膝盖方向- 膝盖应如何弯曲。您可以将机器人配置为遵循以下方向 .>> .>< .<< .<> 其中点是机器人的前侧。

最大线速度 X(米/秒)- 机器人的最大前进/后退速度。

最大线速度 Y(米/秒)- 机器人侧向移动时的最大速度。

最大角速度 Z(弧度/秒)- 机器人的最大旋转速度。

站立持续时间(秒)- 行走时每条腿应在地面上停留多长时间。如果您不确定,可以将其设置为默认值 (0.25)。站立持续时间越长,位移距参考点越远。

腿部摆动高度(米)- 摆动阶段的轨迹高度。

腿部站立高度(米)- 站立阶段的轨迹深度。

机器人行走高度(米)- 行走时臀部到地面的距离。请注意,将此参数设置得太高可能会使您的机器人不稳定。

CoM X 平移(米)- 您可以使用此参数在 X 轴上移动参考点。如果质心不在机器人的中间(从前臀部到后臀部),当您想要补偿重量时,这非常有用。例如,如果您发现机器人后面较重,您将设置一个负值以将参考点移动到后面。

里程计缩放器- 您可以使用此参数作为航位推算计算速度的乘数。这对于补偿开环系统上的里程计误差很有用。通常该值的范围是 1.0 到 1.20。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表