----

免费步态

一种腿部机器人通用控制架构

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

源代码是根据BSD 3条款许可证发布的。

作者:PéterFankhauser
维护者:PéterFankhauser,pfankhauser@ethz.ch
作者:Samuel Bachmann,Dario Bellicoso,Thomas Bi,Remo Diethelm,Christian Gehring 
所属机构:苏黎世苏黎世机器人系统实验室

出版物

如果您在学术上使用这项工作,请引用以下出版物:

  • P.Fankhauser,D. Bellicoso,C.Gehring,R.Dubé,A.Gawel,M.Hutter, “Free Gait-An Architecture for the Versatile Control of Legged Robots”,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 API命令给全身运动控制器。

用法

本视频概述了免费步态中提供的工具。

免费步态

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

自由步态命令表示为腿部(在关节或末端效应器笛卡尔空间)和基础运动的组合,定义了位置,速度和/或力/扭矩目标或轨迹。

  目标 弹道 自动
腿部运动在关节空间 JointTarget JointTrajectory LegMode
在笛卡尔空间的腿运动 EndEffectorTarget EndEffectorTrajectory 脚步
基础运动 BaseTarget BaseTrajectory BaseAuto

免费步态操作可以手动启动,也可以在free_gait_action_loader的帮助下启动。

免费步态装载机

该free_gait_action_loader允许通过发动行动ROS服务或ROS行动。目前,行动装载机支持YAML运动的定义,Python的脚本,并开始ROS启动文件为C ++和其他库。

运行free_gait_action_loader与

rosrun free_gait_action_loader action_loader.py

该free_gait_action_loader管理措施,并确保只有一个动作是在运行了。要向free_gait_action_loader注册一个操作,必须将操作加载为ROS插件。

RQT免费步态动作

所述rqt_free_gait_action包提供一个RQT用户接口向 free_gait_action_loader。该界面显示集合中组织的操作,并允许预览和发送操作。此外,集合可以作为操作的顺序运行,并且通过右键单击,可以将集合选为收藏夹。收藏夹显示为顶部的按钮进行快速访问。

RQT免费步态监视器

一旦Free Gait操作服务器执行操作,rqt_free_gait_monitor将显示执行进度,并允许暂停和停止主动操作。

免费Gait RViz插件

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

YAML脚本接口

对于简单的运动序列,自由步态可以被定义为一系列的YAML定义。

例如,该动作提升机器人的右前肢:

adapt_coordinates:- transform:source_frame: footprinttarget_frame: odom

steps:- step:- base_auto:- step:- base_auto:- end_effector_target:name: RF_LEGignore_contact: truetarget_position:frame: footprintposition: [0.39, -0.22, 0.20]

adapt_coordinates命令将定义的动作转换source_frametarget_frame

常问问题

没有找到动作

如果没有找到/加载自由步态操作,则此服务调用将返回为空:

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

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

sudo rosdep init
rosdep update

----

用于ROS的YOLO v2:用于ROS的实时对象检测

概观

这是一个为相机图像中的物体检测而开发的ROS包。你只看一次(YOLO)是一个最先进的实时对象检测系统。在以下ROS包中,您可以在GPU和CPU上使用YOLO。卷积神经网络的预先训练的模型能够检测包括从VOC和COCO(例如飞机,自行车,鸟,船,瓶,公共汽车,汽车,猫,椅子,牛,餐桌,狗,马,摩托车,人,盆栽,羊,沙发,火车和电视监视器),或者您也可以使用自己的检测对象创建网络。有关YOLO,Darknet,可用的培训数据和培训YOLO的更多信息,请参阅以下链接:YOLO:实时对象检测。代码的一部分灵感来自于pgigioli的工作。

YOLO软件包已经在ROS Kinetic和Ubuntu 16.04下进行了测试。这是研究代码,期望它经常变化,任何适合特定用途的适用性都被放弃。

作者:Marko Bjelonic,marko.bjelonic@mavt.ethz.ch

隶属:机器人系统实验室,苏黎世苏黎世

引用

本软件中使用的YOLO方法在文中描述:您只看一次:统一的实时对象检测。

安装

依赖

该软件建立在机器人操作系统(ROS)上,需要首先安装。另外,ROS的YOLO依赖于以下软件:

  • OpenCV(计算机视觉库),
  • boost(c ++库),

建造

CPU上的Darknet很快(英特尔酷睿i7-6700HQ CPU在2.60GHz×8左右大约1.5秒),但GPU的速度就快了500倍!你必须拥有Nvidia GPU,你必须安装CUDA。CMakeLists.txt文件会自动检测是否安装了CUDA。CUDA是由Nvidia创建的并行计算平台和应用程序编程接口(API)模型。如果您的系统上没有CUDA,则构建过程将切换到YOLO的CPU版本。如果您正在使用CUDA进行编译,则可能会收到以下生成错误:

nvcc fatal : Unsupported gpu architecture 'compute_61'.

这意味着您需要检查GPU的计算能力(版本)。您可以在CUDA中找到支持的GPU列表:CUDA - WIKIPEDIA。只需找到GPU的计算能力,并将其添加到darknet_ros / CMakeLists.txt中。只需添加类似的行

-O3 -gencode arch=compute_62,code=sm_62

为了安装darknet_ros,将这个存储库中的最新版本克隆到您的catkin工作区,并使用ROS编译软件包。

cd catkin_workspace/src
git clone --recursive git@github.com:leggedrobotics/darknet_ros.git
cd ../

为了最大限度地提高性能,请确保在版本模式下构建。您可以通过设置指定构建类型

catkin_make -DCMAKE_BUILD_TYPE=Release

或使用Catkin命令行工具

catkin build darknet_ros -DCMAKE_BUILD_TYPE=Release

下载权重

yolo-voc.weights和tiny-yolo-voceweights将自动下载到CMakeLists.txt文件中。如果您需要再次下载,请进入权重文件夹,并从VOC数据集中下载两个预先训练的权重:

cd catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/weights/
wget http://pjreddie.com/media/files/yolo-voc.weights
wget http://pjreddie.com/media/files/tiny-yolo-voc.weights

要使用COCO检测对象,可以下载以下权重:

cd catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/weights/
wget http://pjreddie.com/media/files/yolo.weights
wget http://pjreddie.com/media/files/tiny-yolo.weights

要使用YOLO9000检测对象,可以下载以下权重:

cd catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/weights/
wget http://pjreddie.com/media/files/yolo9000.weights

使用您自己的检测对象

为了使用您自己的检测对象,您需要在目录中提供您的权重和cfg文件:

catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/weights/
catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/cfg/

另外,您需要为ROS创建配置文件,您可以在其中定义检测对象的名称。你需要把它包含在里面

catkin_workspace/src/darknet_ros/darknet_ros/config/

然后在启动文件中,您必须指向新的配置文件:

<rosparam command="load" ns="darknet_ros" file="$(find darknet_ros)/config/your_config_file.yaml"/>

单位测试

使用Catkin命令行工具运行单元测试

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

你会看到以下两个数字突然出现:

基本用法

为了获得YOLO ROS:ROS的实时对象检测功能可以使您的机器人运行,您需要调整几个参数。这是最简单的,如果重复,并适应所有需要从darkned_ros包中更改的参数文件。这些具体是文件夹中的参数文件config和启动文件launch

节点

节点:darknet_ros

这是主要的YOLO ROS:ROS节点的实时对象检测。它使用相机测量来检测帧中的预先学习的对象。

ROS相关参数

您可以更改其中的发布者,订阅者和操作的名称和其他参数darkned_ros/config/ros.yaml

订阅主题

  • /camera_reading ([sensor_msgs /图像])

    相机测量。

发表主题

  • object_detector ([std_msgs :: INT8])

    如果检测到对象,则发布1,如果没有检测到对象,则发布0。

  • bounding_boxes ([darknet_ros_msgs :: BoundingBoxes])

    发布一系列边框,以像素坐标给出边界框的位置和大小信息。

  • detection_image ([sensor_msgs ::图像])

    发布包含边界框的检测图像的图像。

操作

  • camera_reading ([sensor_msgs ::图像])

    使用图像发送动作,结果是一个边框数组。

检测相关参数

您可以通过添加类似于的新配置文件来更改与检测相关的参数darkned_ros/config/yolo.yaml

  • image_view/enable_opencv (布尔)

    启用或禁用包括边界框在内的检测图像的打开cv视图。

  • image_view/use_darknet (布尔)

    通过设置为true或使用在darknet_ros中实现的on设置为false,使用原始darknet算法中的open cv图像视图。

  • image_view/wait_key_delay (INT)

    等待打开cv窗口的ms的按键延迟。

  • yolo_model/config_file/name (串)

    用于检测的网络的cfg文件的名称。代码在里面搜索这个名字darkned_ros/yolo_network_config/cfg/

  • yolo_model/weight_file/name (串)

    用于检测的网络的权重文件的名称。代码在里面搜索这个名字darkned_ros/yolo_network_config/weights/

  • yolo_model/threshold/value (浮动)

    检测算法的阈值。它定义在0和1之间。

  • yolo_model/detection_classes/names (字符串数组)

    检测cfg和weight文件内部使用的网络的名称darkned_ros/yolo_network_config/

----

Darknet:C中的开源神经网络

Darknet是用C和CUDA编写的开源神经网络框架。它快速,易于安装,并支持CPU和GPU计算。您可以在GitHub上找到源代码,或者您可以在这里关于Darknet可以执行的操作:

安装Darknet

Darknet易于安装和运行。这篇文章将引导您了解。

YOLO:实时对象检测

你只看一次(YOLO)是一个最先进的实时对象检测系统。

ImageNet分类

使用AlexNet和VGG-16等流行模式对图像进行分类。

恶梦

使用Darknet的黑魔法来召唤鬼魂,食尸鬼和野生恶魔。但你们要进入这里,要警惕,没有人在恶梦之地安全。

暗网中的RNN

反复神经网络对于时间序列数据和NLP都是愤怒的。了解如何在Darknet中使用它们!

DarkGo:进入Darknet

使用用Darknet训练的策略网络Play Go

小黑暗

图像分类很小。

在CIFAR-10上训练一个分类器

了解如何在黑暗中从头开始训练分类器。

硬件指南:GPU上的神经网络(2016-1-30更新)

我已经有很多人问我建议用什么硬件来训练视觉应用的神经网络。这里有一些我的想法。

----

leggedrobotics free gait 足式机器人自由步态 苏黎世机器人系统实验室相关推荐

  1. 干货丨浅谈足式机器人的运动控制

    " 本期技术干货,我们邀请到了小米机器人实验室工程师--游洋威,来和大家从经典的三分控制法.零力矩点控制到目前主流的模型预观控制等方面,介绍足式机器人的运动控制. " 一.前言 不 ...

  2. [足式机器人]Part1 序言+简介Ch01——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  3. 双足机器人的稳定性判据_足式机器人稳定性判据

    [1]王立权,王海龙,陈曦,等. 八足仿蟹机器人行走稳定性分析[J]. 中南大学学报(自然科学版),2014,45(10):3416-3422. [2]宣奇波,张怀相,戴国骏. 四足步行机器人稳定性步 ...

  4. [足式机器人]Part1 运动对称性Ch05——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  5. 四足机器人不同步态研究

    步态 步态是行走系统的迈步方式, 即行走系统抬腿和放腿的顺序.机器人的步态从一定程度上描述了.同时也决定着机器人的运动速度.运动方向.安全可靠性及机动性.在选择或制定步态时应综合考虑机器人的稳定性要求 ...

  6. 智能机器人-(三)轮式,足式机器人的基本概念

    文章目录 一.机器人的移动方式设计 二.足式移动机器人 1.足的规模 2.足的稳定性 3.足的自由度 4.足行步态 5.动力学考虑 6.平衡控制 7.常见足式机器人实例 8.静态步行与动态步行 9.Z ...

  7. 一文了解四足机器人的步态设计!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 编辑丨古月居 点击进入->3D视觉工坊学习交流群 0.步态规划 四足机器人控制当中,步态是至关重 ...

  8. [足式机器人]Part1 关于动物和运动体的研究Ch08——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  9. 12自由度六足机器人实现步态规划功能

    1. 运动功能描述 R111样机是一款拥有12个自由度的串联仿生六足机器人.本文示例实现12自由度六足机器人的行走功能,包括前进.后退.左转.右转. 2. 结构说明 R111样机由六个2自由度串联结构 ...

  10. 干货 | 足式机器人运动控制发展方向——轨迹优化

    " 运动控制技术的进步使得足式机器人的运动能力更强,而近来轨迹优化作为主流学术研究方向,能够为足式机器人运动控制的发展提供可能的指引.本期技术干货,我们邀请到了小米工程师徐喆,向我们介绍足式 ...

最新文章

  1. C#共享内存实例 附源码
  2. boost::qvm::deduce_quat相关的测试程序
  3. 卡布教你:脸上长痘痘平时要注意什么呢
  4. Leo-io 的C语言实现简单五子棋游戏观后感
  5. java实时百分比进度条_Java 进度条百分比简单算法,根据数据量计算
  6. java io 和nio 区别_java IO和NIO区别
  7. 如何衡量开发人员生产力的 10 个技巧
  8. 下载 沙耶之歌Android_沙耶之歌安卓版
  9. 算法注册机编写扫盲---第二课
  10. vue3使用keep-alive页面切换时报错:TypeError: parentComponent.ctx.deactivate is not a function
  11. 用python实现自动化办公------定时发送微信消息
  12. L1-040. 最佳情侣身高差
  13. Swift身份证正则表达式
  14. 【安徽大学】考研初试复试资料分享
  15. iOS - 动态库上架瘦身(去调虚拟机架构),不然验证会报错。
  16. html5卤虾,自制五香小龙虾,自己做干净卫生,香辣可口,太过瘾了
  17. SpringBoot 基于向量搜索引擎及虹软人脸识别SDK的大规模人脸搜索
  18. tencent腾讯——面试
  19. 电商系统需求分析手册
  20. 浅谈MES制造执行系统前景

热门文章

  1. windows下icns转png或ico
  2. Arrays.sort()和lambda表达式
  3. 多路由器实现无线无缝漫游
  4. cmd: cd /D %~dp0 的含义
  5. 台式计算机怎么设置自动锁屏,台式机win7怎么设置自动锁屏
  6. TCP/IP之传输层协议详解
  7. Oracle VM VirtualBox 安装增强功能
  8. zoj3869 Ace of Aces zoj3880 Demacia of the Ancients(水)
  9. 工作经验分享:为什么我们要写Unti Test
  10. Java面向对象OOP思想概述