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开发的。
https://github.com/leggedrobotics/free_gait
如果你在学术范畴内使用本项目,请引用以下文章:
@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 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_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_action包为free_gait_action_loader提供了一个rqt用户界面。界面显示在集合中组织的操作,并允许预览和发送操作。 此外,集合可以作为一系列操作运行,通过右键单击,可以选择一个集合作为收藏。 收藏夹显示为顶部的按钮,以便快速访问。
一旦Free Gait动作服务器执行了动作,rqt_free_gait_monitor就会显示动作的执行进度,并允许暂停和停止活动中的动作。
可以使用 free_gait_rviz_plugin预览动作。 它将获取机器人的当前状态,并根据定义的动作对运动可视化。 RViz 插件允许擦洗时间并且可视化立足点、轨迹、支持多边形等。
对于简单的运动序列,可以将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。
如果未能找到/加载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,多位重磅嘉宾将亲自坐阵,一起探讨人工智能和机器人领域学、产、投等复杂的生存态势。