【GitHub项目推荐--MIT开源四足机器人】【转载】

github地址

https://github.com/chvmp/champ

翻译版本:

http://www.gitpp.com/robotlee/champ

CHAMP 四足控制器的 ROS 软件包。

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

核心特点:

  • 完全自主(使用 ROS 导航堆栈)。

  • 设置助手用于配置新建的机器人。

  • 预配置URDF的集合,例如 Anymal、MIT Mini Cheetah、Boston Dynamic's Spot 和 LittleDog。

  • Gazebo模拟环境。

  • 与SpotMicroAI和OpenQuadruped等 DIY 四足项目兼容。

  • TOWR和鸡头稳定等演示应用程序。

  • 轻量级 C++ 仅头文件库,可在 SBC 和微控制器上运行。

测试于:

  • Ubuntu 16.04(ROS 动力学)

  • Ubuntu 18.04(ROS Melodic)

1. 安装

1.1 克隆并安装所有依赖项:

sudo apt install -y python-rosdep
cd <your_ws>/src
git clone --recursive https://github.com/chvmp/champ
git clone https://github.com/chvmp/champ_teleop
cd ..
rosdep install --from-paths src --ignore-src -r -y

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

1.2 构建你的工作空间:

cd <your_ws>
catkin_make
source <your_ws>/devel/setup.bash

2. 快速入门

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

2.1 RVIZ 步行演示:

2.1.1 运行基础驱动程序:
roslaunch champ_config bringup.launch rviz:=true
2.1.2 运行teleop节点:
roslaunch champ_teleop teleop.launch

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

2.2 SLAM演示:

2.2.1 运行Gazebo环境:
roslaunch champ_config gazebo.launch
2.2.2 运行gmapping包和move_base:
roslaunch champ_config slam.launch rviz:=true

开始映射:

  • 单击“二维导航目标”。

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

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

    roscd champ_config/maps
    rosrun map_server map_saver

2.3 自主导航:

2.3.1 运行Gazebo环境:
roslaunch champ_config gazebo.launch
2.3.2 运行amcl和move_base:
roslaunch champ_config navigate.launch rviz:=true

导航:

  • 单击“二维导航目标”。

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

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)。

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

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

    cd <your_ws>
    catkin_make
    

3.2 基本驱动器:

这将运行四足控制器和所有传感器/硬件驱动程序:

roslaunch <myrobot_config> bringup.launch

可用参数:

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

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

用法示例:

查看您新配置的机器人:

roslaunch <myrobot_config> bringup.launch rviz:true

使用微控制器运行真实的机器人:

roslaunch <myrobot_config> bringup.launch lite:=true

3.3 创建地图:

必须运行 3.2 中描述的基本驱动程序才能运行 gmapping 和 move_base。

运行 gmapping 包和 move_base:

roslaunch <myrobot_config> slam.launch

要打开 RVIZ 并查看地图:

roscd champ_navigation/rviz 
rviz -d navigate.rviz

开始映射:

  • 单击“二维导航目标”。

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

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

    roscd <myrobot_config>/maps
    rosrun map_server map_saver

3.4 自主导航:

必须运行 3.2 中描述的基本驱动程序才能运行 amcl 和 move_base。

运行 amcl 和 move_base:

roslaunch <myrobot_config> navigate.launch

要打开 RVIZ 并查看地图:

roscd champ_navigation/rviz 
rviz -d navigate.rviz

导航:

  • 单击“二维导航目标”。

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

3.5 在 Gazebo 中运行机器人

在模拟模式下运行 Gazebo 和基本驱动程序:

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.wikipedia.org/wiki/List_of_moments_of_inertia

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

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

3.6 在 Gazebo 中生成多个机器人

运行 Gazebo 和默认模拟世界:

roslaunch champ_gazebo spawn_world.launch

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

roslaunch champ_gazebo spawn_world.launch gazebo_world:=<path_to_world_file>

生成机器人:

roslaunch champ_config spawn_robot.launch robot_name:=<unique_robot_name> world_init_x:=<x_position> world_init_y:=<y_position>
  • 生成的机器人的每个实例都必须有一个唯一的机器人名称,以防止主题和变换发生冲突。

4. 调整步态参数

机器人的步态配置可以在 <my_robot_config>/gait/gait.yaml 中找到。

  • 膝盖方向- 膝盖应如何弯曲。您可以将机器人配置为遵循以下方向 .>> .>< .<< .<> 其中点是机器人的前侧。

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

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

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

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

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

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

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

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

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

开源四足机器人在当前技术发展和应用探索中,表现出了广泛的使用场景和潜在的应用价值。具体来说,这些使用场景包括但不限于以下几个方面:

1. 教育和研究:作为教学和科研的工具,开源四足机器人能够提供一种成本效益高且便于操作的平台,供学生和科研人员学习和实践机器人技术、控制理论、人工智能等领域。

2. 探测与监测:四足机器人能够适应复杂地形,因此它们可以被用于地质勘探、灾害救援、环境监测等场合,进行地形勘测、数据采集或搜索与营救任务。

3. 军事应用:在军事领域,四足机器人可以执行侦察、物资运输、战场环境监测等任务,提高军事行动的效率和安全性。

4. 工业维护与检测:在工业环境中,四足机器人可用于设备维护、质量检测、生产流程监控等,特别是在那些对人类工人来说危险或不便进入的区域。

5. 农业服务:在农业上,四足机器人能够协助进行作物监测、病虫害检测、施肥等工作,提升农业生产的自动化水平。

6. 家庭服务与娱乐:随着技术的成熟,四足机器人未来可能在家庭环境中提供陪伴、教育、清洁等服务,甚至成为家庭的一员。

7. 商业展示与促销:在商业活动中,四足机器人可以作为吸引眼球的展示工具,用于科技展览、产品促销等场合。

8. 医疗辅助:在医疗领域,四足机器人可能用于辅助手术、照顾病人、药物配送等,减轻医护人员的负担。

9. 科研探索:在科学研究中,例如考古发掘、生物多样性调查等领域,四足机器人能够进入人类难以到达的地区,协助科研人员开展工作。

通过开源模式,四足机器人的研发成本得以降低,这使得更多的研究者和爱好者能够参与到这一领域中来,进一步推动了技术的创新和应用的拓展。未来,随着技术的不断进步和成熟,四足机器人的应用场景将会更加广泛。

原文链接:

MIT开源四足机器人!猎豹 

  • 22
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值