Github项目推荐 | 腿式机器人通用控制架构 Free Gait

Free Gait - An Architecture for the Versatile Control of Legged Robots

by leggedrobotics

Free Gait 是一个软件框架,它可以用来对腿式机器人进行多功能、强大且面向任务的控制。Free Gait 的界面定义了一个全身抽象层,以适应各种任务 - 空间控制命令,如末端执行器,关节和基础运动。使用全身反馈控制器跟踪定义的运动任务,以确保即使在滑动和外部干扰下也能实现准确且稳健的运动执行。Free Gait 框架的应用包括机器人的直观远程操作、行为的高效脚本化以及运动和步态规划功能的完全自主操作。

注:源代码根据 BSD 3-Clause license 发布。

作者:PéterFankhauser

维护者:PéterFankhauser,pfankhauser @anybotics.com

贡献者:Samuel Bachmann,Dario Bellicoso,Thomas Bi,Remo Diethelm,Christian Gehring

隶属:ANYbotics

本项目最初是在苏黎世联邦理工学院RSL开发的。

Github项目地址:

https://github.com/leggedrobotics/free_gait

文章引用

如果你在学术范畴内使用本项目,请引用以下文章:

  • Fankhauser, D. Bellicoso, C. Gehring, R. Dubé, A. Gawel, M. Hutter, "Free Gait – An Architecture for the Versatile Control of Legged Robots", in IEEE-RAS International Conference on Humanoid Robots, 2016. (PDF)
  @inproceedings{Fankhauser2016FreeGait,      author = {Fankhauser, P{\'{e}}ter and Bellicoso, C. Dario and Gehring, Christian and Dub{\'{e}}, Renaud and Gawel, Abel and Hutter, Marco},      booktitle = {IEEE-RAS International Conference on Humanoid Robots},      title = {{Free Gait – An Architecture for the Versatile Control of Legged Robots}},      year = {2016},  }

单元测试

catkin build free_gait_core --no-deps --verbose --catkin-make-args run_tests

简介

视频展示了Free Gait的一些应用,点击查看(YouTube)。

运动基于(可能是多个)腿部运动和每个命令的基本运动(步骤)的组合。

命令结构允许以各种方式控制有腿机器人。

通过Free Gait API命令运动目标到全身运动控制器。

使用

视频概述了Free Gait 中提供的工具,点击查看(Youtube)。

Free Gait 的动作

Free Gait的动作是使用Free Gait API(针对ROS)定义动作的库和脚本。对于ROS,可以使用 free_gait_msgs 中的消息和操作定义,使用ROS客户端库以任何语言编写这些操作。对于C ++,Free Gait提供了 free_gait_core库来处理动作的定义,而 free_gait_ros 则用于连接ROS。如果使用Python,请使用 free_gait_python 库。对于简单的动作定义,Free Gait支持以YAML格式定义的动作。有关使用YAML操作的更多信息,可查看YAML脚本接口。

Free Gait 命令表示为腿(在关节或末端执行器的笛卡尔空间中)和基础运动的组合,其具有位置,速度和/或力/扭矩目标或轨迹的定义。

Free Gait 的操作可以手动启动,也可以在 free_gait_action_loader 的帮助下启动。

Free Gait 动作加载器

free_gait_action_loader允许通过ROS服务或ROS操作启动操作。 目前,动作加载器支持YAML动作定义,Python脚本,以及为C ++和其他库启动ROS启动文件。

运行free_gait_action_loader

rosrun free_gait_action_loader action_loader.py

free_gait_action_loader 管理操作并确保此时只有一个操作正在运行。如果要使用free_gait_action_loader注册一个动作,必须将动作加载为ROS插件。

RQT Free Gait 动作

rqt_free_gait_action包为free_gait_action_loader提供了一个rqt用户界面。界面显示在集合中组织的操作,并允许预览和发送操作。 此外,集合可以作为一系列操作运行,通过右键单击,可以选择一个集合作为收藏。 收藏夹显示为顶部的按钮,以便快速访问。

RQT Free Gait 监视器

一旦Free Gait动作服务器执行了动作,rqt_free_gait_monitor就会显示动作的执行进度,并允许暂停和停止活动中的动作。

Free Gait RViz 插件

可以使用 free_gait_rviz_plugin预览动作。 它将获取机器人的当前状态,并根据定义的动作对运动可视化。 RViz 插件允许擦洗时间并且可视化立足点、轨迹、支持多边形等。

YAML脚本界面

对于简单的运动序列,可以将Free Gait动作定义为YAML定义序列。

例如,这个动作将抬起机器人的右前腿:

adapt_coordinates: - transform:    source_frame: footprint    target_frame: odom
steps: - step:   - base_auto: - step:   - base_auto:   - end_effector_target:      name: RF_LEG      ignore_contact: true      target_position:       frame: footprint       position: [0.39, -0.22, 0.20]

adapt_coordinates命令将source_frame中所定义的运动转换为target_frame。

FAQ

找不到动作怎么办?

如果未能找到/加载Free Gait动作,那么以下服务的调用将返回空值:

rosservice call /free_gait_action_loader/list_actions "collection_id: ''"

在这种情况下,可以尝试使用以下命令初始化rosdep:

sudo rosdep initrosdep update

2019 全球人工智能与机器人峰会

由中国计算机学会主办、雷锋网和香港中文大学(深圳)联合承办的 2019 全球人工智能与机器人峰会( CCF-GAIR 2019),将于 2019 年 7 月 12 日至 14 日在深圳举行。

届时,诺贝尔奖得主JamesJ. Heckman、中外院士、世界顶会主席、知名Fellow,多位重磅嘉宾将亲自坐阵,一起探讨人工智能和机器人领域学、产、投等复杂的生存态势。

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2019-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券