双足机器人Cassie更新上线,长出躯干与双手的它离一线“仿人机器人”更近了一步

公司调研 | Agility | 网红人形机器人Digit | 商业化情况 网红人形机器人Digit的2次商业化落地尝试。在2019年试图与福特汽车合作物流配送,但因疫情失败。2023年与亚马逊合作,尝试在仓库中做一些搬运工作,结果未知。但我有一个问题,在这种场景下,人形机器人是必要形态么... 阅读详情

来源 | 机器人大讲堂

作者 | 溪岚

编辑 | 海蛟

 

导读

双足机器人Cassie,一直以其独特的腿部造型,与轻盈的步态备受机器人界的关注。人们甚至认为这种先进的行走步态和Atlas相比并没有逊色很多,只是空有一双大长腿,总是感觉怪怪的。不过,从Agility Robotics最新公布的消息来看,近日Cassie终于长出了上半身,并取名为Digit。

新旧Cassie有何不同

与旧版Cassie相比,新版显得既高大威猛,又灵巧敏捷,它不光长出了躯干和双臂,还拥有了一个新名字——Digit。

虽然Digit的下半身依然是Cassie经典的“鸵鸟腿”,但鉴于其整体的仿人结构,我们似乎还应该把它归为“仿人机器人”的范围。

Digit在保留了双腿的基础上,将Cassie的臀部改装成了连接躯干的“胯骨”。Digit增添了上身躯干和两支4自由度的手臂,整体上身的设计十分简洁、紧凑与轻量化,增添了双臂的Digit会极大提升其操作能力、保持平衡能力以及摔倒后起身的能力。

躯干顶端的激光雷达以及躯干中的传感器都有助于Digit在行走中收集数据,使它能够在充满障碍的地方进行导航。

它的数字控制系统也进行了改造,通过API对爬楼梯、控制步态等高级行为进行控制。此外,Digit的躯干中容纳了两个多核CPU,以及一个可以由第三台计算机控制的模块化有效载荷舱,支持它进行额外的感知,并强化了它的学习能力。

而在这些改装中,最有实用价值的还是它的一双手臂。它的手臂拥有四个自由度,极大地扩展了它的灵活性。这双手臂可以用来保持平衡,在摔倒时支撑身体重新站起来,推开门等障碍物,以及最重要的,操纵和携带物体。

这就与Agility Robotics对于Cassie的最初应用设想挂上了勾,即让机器人送快递,为“最后一公里”添砖加瓦。

据研究人员介绍,Digit的手臂能够举起大约18公斤重的箱子,也能够将物体进行堆叠,尽管还在测试阶段,Digit却已经展示出了其担任快递小哥的不俗潜力。此外,研究人员也希望在加上手臂和传感器后,Digit能够真正在救灾等场景中发挥作用。

只是到目前为止Agility Robotics公司只公布了Digit的定妆照,并没有让人大饱眼福的视频发布。各位就先看看图片,然后让我们共同期待视频的后续发布吧!

 

Cassie之所以为“父”

聊完了Digit,我们再来聊聊Digit的“爸爸”Cassie。

这个“爸爸”可不是乱叫的,由于Digit的整体架构完全基于Cassie之上,连研究人员都开玩笑说“Digit is a direct descendant of Cassie.(Digit是Cassie的直系后裔)”。Digit能够完成快递小哥的使命,在楼梯和不同地形之间跑来跑去,主要就是基于Cassie稳定的双腿。

可以说没有Cassie就不会有Digit,所以“爸爸”这个称呼Cassie当之无愧。

那么Cassie到底为什么能够这么稳定且敏捷地移动呢?

原因一:更多的自由度

Cassie的两条腿每一条都有五个自由度,均由电机驱动。臀部有三个自由度,允许腿向前、后、侧三个方向摆动,与人类一致。

胫骨和脚踝上也分别有一个额外的自由度,这两个部分并不由电机驱动,而是附着在弹簧上,有助于机器人处理前进道路上的障碍物,就算踏在台阶边缘也可以保持平衡稳定。

原因二:更复杂的控制

Cassie所带的电机数量多,体积也较小,由于可移动的方向更多,移动到特定方向便要计算每个电机所需的不同扭矩,为此,控制器就需要考虑到腿的惯性以及电机和变速器的动态特性。

虽然控制变得更加复杂了,但是这样就能够实现更多行为以及更好的性能。例如下面这个在走动中立定的实验:

可以看出,Cassie从最开始摇摇晃晃的“不倒翁”一步一步变得稳定起来,最后连着走了几步再站定时也几乎不怎么晃动了。

原因三:上楼梯的步伐更加稳定

对于双足机器人来说,上楼梯从来都是一项不可避免的挑战。Cassie一向认为世界是平的,这让它的户外行走进行得十分轻松,它可以在土地或草丛中连续行走一个小时。

而当Cassie上楼梯时,这种想法就不再适用了,由于楼梯对于机器人来说是较为复杂的路况,它很有可能站立不稳,进而摔倒。

当控制器扩展到垂直方向,允许两条腿上下跨步,并增加了平滑过渡时,Cassie可以迈上楼梯,但只能保持动态稳定,不能保持静态也同样稳定。

接着,研究人员让Cassie在上楼梯的时候始终试图保持骨盆高度一致,而不是随着抬腿拔高身子,这样Cassie在上楼时的身形就稳定了许多。

尤其在连续登上几阶台阶时,Cassie的步伐显得更加坚定有力。

研究人员还跟Cassie开了个小小的玩笑:让Cassie连续上两个台阶,而地上其实只摆放了一层台阶,这种情况Cassie会如何处理呢?

可以看出,Cassie在上第二阶踏空时有一个明显的向上踮脚的动作,但这不存在的一节阶梯并未对它的平衡性产生影响,Cassie依然保持了稳定。如果此处替换成蒙眼的人类,在第二阶踩空的时候很有可能已经摔倒了。所以从某种意义上来说,Cassie的动态稳定性还是要比人类好了许多的。

有这样一个跑步爬楼梯都不在话下的底座作为基础,可以想见Digit将能够如何在无人快递领域大展身手了。

Agility Robotics表示,Digit将在年中公布定价,并从2020年第一季度开始交付,让我们一起期待关于Digit的更多信息吧。

 

—— 完 ——

Cassie:一种动态的双足机器人 Cassie是一个动态的双足机器人,可以行走和奔跑的方式类似于人类或动物。它可以处理各种各样和复杂的地形,使它成为搜索和救援、或包裹投递的完美工具。 阅读详情

相关推荐

cassierl:俄勒冈州立大学的双足机器人Cassie的强化学习算法

卡西尔 该存储库包含针对俄勒冈州立大学的双足步行机器人Cassie实施的强化学习算法。 安装库 为了在src编译文件,您需要克隆包含第三方库的库,然后按照说明进行安装。 如何设置自己文件的路径 在src/Cassie2d/FilePath.h , 将MUJOCO_LICENSE_PATH的值更改为MUJOCO_LICENSE_PATH所在的mjkey.txt 。 将XML_FILE_PATH的值更改为XML_FILE_PATH所在的cassie2d_stiff.xml 。 如何修复python3 cassie2d.py时的导入错误 如果尝试运行cassie2d.py时遇到导入错误,请按照以下步骤进行操作,具体取决于您没有的模块,以解决此问题: 没有名为rllab模块 cd在此存储库之外的其他地方 执行以下命令 git clone https://github.com/rll/rll

OSU双足步行机器人 Cassie利用强化学习站立的源码实现

运行OSU双足步行机器人 Cassie 早期实施的用强化学习算法使其站立的源码,由于时间较久,按照github上的说明运行有些错误,故根据自己的实现步骤重新记录。可以终止训练,数据保存在rallab库的data文件中(不是cassierl文件夹中用于安装模块的存储库,而是虚拟环境包中的rllab文件夹中)注意:使用虚拟环境运行时命令前不要加sudo,不然会给系统自带的python安装对应的库,此时依旧会报没有该包的错。2、创建一个文件夹作为工作空间,将步骤1下载的两个仓库放置到工作空间中。

qq_43309940的博客 1986

cassie-gazebo-sim:敏捷机器人Cassie机器人的凉亭模拟器

敏捷的Cassie凉亭模拟器 使用Gazebo的Agility Robotics的Cassie机器人的仿真库。 在带有Gazebo 9的Ubuntu 16.04上开发和测试。 指示: 构建代码: 下载并安装Gazebo 9- //gazebosim.org/tutorials?tut=install_ubuntu 克隆此存储库 创建一个构建目录 cd build cmake .. make 注:凉亭插件和模型路径需要更新加载网格和插件- 运行SIM卡: cd ~/path-to-repo/cassie gazebo cassie.world 该机器人应在凉亭中生成 使用基于演示UDP的控制器连接到sim: cd ~/path-to-repo/your-build-folder ./cassiectrl 控制器应连接到模拟器。 示例包括cassiectrl,它是通

向前、向后、横着走,双足机器人Cassie,靠深度强化学习学会了走路丨论文

郭一璞 发自 凹非寺量子位 报道 | 公众号 QbitAI深度强化学习,可以用来学走路了。Agility Robotics的双足机器人Cassie,这个没有上半身的机器...

量子位 1173

双足机器人源码

自己参加比赛的源码,基于stm32的,省级比赛,有幸获得一等奖,现在将源码分享给大家。

MATLAB项目,模拟曲柄滑块机构的运动学和动力学.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

国外牛人深度强化学习训练双足机器人Cassie,如今的它可以变着花样行走

来源 | 机器人大讲堂 原创 | 小木 导读 双足机器人Cassie虽然相比于波士顿动力的Atlas名气稍微逊色一点,但一直以来它凭借特殊的外形,稳定的行走步态,扎实的进化速度,以及时不时传来即将商业化(送快递)的消失,也使其那腿足机器人领域有了一定知名度。近日,Cassie又更新了一段视频,视频中这只当初只会向前行走的双足机器人,一下子学会了很多行走方式。而这一切都归功于深度强化学习对...

高触Toucher 6398

基于MATLAB的Abel反演和Fowler–Milne诊断研究对HyperFill TWGMAW-P进行了电波形分析。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

推荐开源项目:Cassie - 高性能的Cassandra客户端

推荐开源项目:Cassie - 高性能的Cassandra客户端 项目介绍 Cassie是一个基于Finagle构建

gitblog_00097的博客 459

增强型PID-自适应-前馈-神经网络控制研究(Matlab代码实现)

内容概要:本文系统研究了“增强型PID-自适应-前馈-神经网络控制”复合控制策略,结合Matlab代码与Simulink仿真模型,深入探讨了传统PID控制与智能控制算法的深度融合方法。该策略通过引入自适应机制和前馈补偿,结合BP神经网络进行非线性系统建模与参数优化,并融合扩展卡尔曼滤波(EKF)等状态估计技术,提升控制系统在复杂动态环境下的响应速度、鲁棒性和控制精度。研究涵盖双闭环控制架构设计、神经网络训练流程、EKF状态融合等关键技术环节,适用于电机控制、电力电子变换器、无人机、微电网等高阶非线性系统的建模与仿真。配套资源丰富,包含多个可复现的Simulink模型、Matlab代码及参考文献,尤其支持高水平EI期刊成果的复现与验证。; 适合人群:具备自动控制理论基础和Matlab/Simulink仿真能力,从事控制工程、电气自动化、电力电子或智能系统研发的研究生、科研人员及工作1-3年以上的工程技术人员; 使用场景及目标:①深入研究先进PID控制策略在非线性系统中的优化应用;②实现神经网络与经典控制算法的协同设计与联合仿真;③开展状态估计、参数辨识与智能控制策略的实验验证;④复现并拓展高水平学术论文中的控制方法,支撑科研创新与项目开发; 阅读建议:建议结合提供的Matlab代码与Simulink仿真模型进行实践操作,重点剖析控制结构设计逻辑、神经网络训练过程及EKF状态估计的实现细节,按照文档说明逐步调试与优化,以全面掌握复合控制系统的建模、仿真与性能评估方法。

邮件伪造和SPF

之前看了下邮件伪造觉得挺有意思的,所以看了下邮件伪造的东西,下面简单的总结了一下,如果有不妥的地方还望大佬们提出来。 1. 什么是SPF SPF是 Sender Policy Framework 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录。 接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SP...

SunJ3t的菠萝屋 2447

Cassie

这种训练策略提供了一个结构化的课程,首先是单一任务训练,即机器人专注于一个固定的任务,然后是任务随机化,使机器人接受的训练任务多样化,最后是动态随机化,改变机器人的动态参数。尽管在此期间机器人的动力学发生了显著的累积变化,但图 14a 中的同一控制器继续有效地管理不同的行走任务,并且跟踪误差的退化最小。跳跃到高架平台:如图 25b 所示,机器人能够精确跳跃到不同位置的目标上,例如前方 1 米或前方 1.4 米,它还能跳到不同高度的位置,包括跳到 0.44 米高的地方(考虑到机器人本身只有 1.1 米高)。

whaosoft143ai的博客 719

java实现mavlink协议解析与封包上传数据,实现mavlink数据交互,附带代码、详解

本篇文章介绍了使用java来进行mavlink协议解析,封包与解包的过程,并附带源码供大家使用。MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)是无人飞行器与地面站(Ground Control Station ,GCS)或云端服务器之间通讯,以及无人飞行器之间通讯最常用的协议。它已经在PX4、APM、PIXHAWK和Parrot AR.Drone飞控平台上进行了大量测试。

qq_30279827的博客 1447

探索未来机器人技术:Cassie-Mujoco-Sim

探索未来机器人技术:Cassie-Mujoco-Sim 去发现同类优质开源项目:https://gitcode.com/ 在不断发展的科技领域中,仿真和机器人控制正逐渐成为研究与开发的焦点。今天,我们要向您介绍一个令人兴奋的开源项目——Cassie-Mujoco-Sim,这是一个专为Agility Robotics的Cassie机器人设计的模拟库,利用了强大的MuJoCo引擎。 项目介绍 Cass...

gitblog_00080的博客 459

LlamaIndex 入门实战

LlamaIndex是一个“数据框架”,用于帮助构建LLM应用程序。它提供了各种工具,包括数据连接器,用于摄取现有数据源和数据格式(API,PDF,文档,SQL等),以及用于将数据结构化(索引,图形)以便与LLM轻松使用的方式。此外,LlamaIndex还提供了高级的检索/查询接口,可以输入任何LLM输入提示,并返回检索到的上下文和增强知识的输出。它还允许与外部应用程序框架(如LangChain,Flask,Docker,ChatGPT等)轻松集成。

AIGC搞起 1万+

STM32 FOC半周期控制延时分析与硬件同步配置

在电机矢量控制(FOC)系统中,数字控制延时是影响电流环带宽、观测器收敛性与系统稳定性的核心瓶颈。其本质源于PWM更新、ADC采样与计算执行之间的时序错配,典型表现为1.5个PWM周期的相位滞后,导致滑模观测器(SMO)失效或高速振荡。通过零阶保持(ZOH)建模可量化该延时对系统相频特性的影响,并揭示其等效为0.5u(t)+0.5u(t−1)的平滑控制律。工程上突破的关键在于重构外设协同机制——以高级定时器重复计数器(RCR0)驱动中心对齐PWM的半周期更新事件,使控制量在0.5T_PWM内生效,同步触发多

flink9streamer的博客 1129

使用mujoco来模拟cassie机器人

https://github.com/osudrl/cassie-mujoco-sim

逐日者 882

避开这5个坑!Tushare数据获取与清洗的常见问题解决方案

本文详细解析了使用Tushare进行金融数据分析时常见的5大问题,包括Token失效、数据缺失、频率限制等,并提供了Python实战解决方案。通过智能填充策略、队列化管理和分层存储设计,帮助开发者高效获取和清洗金融数据,提升量化分析效率。特别适合金融数据分析师和Python开发者参考。

f9g0h的博客 418

双足机器人简单步态生成

   让机器人行走最简单的方法是先得到一组步态曲线,即腿部每个关节随时间运动的角度值。可以在ADAMS或3D Max、Blender等软件中建立好机构/骨骼模型,设计出脚踝和髋关节的运动曲线,然后进行逆运动学解算,测量每个关节在运动过程中的转角,最后将得到的曲线导出。拿到曲线数据后我们就可以用单片机读取,然后发送给机器人的舵机去执行运行。这种方法的缺点是机器人只能按照固定的步态行走,不够灵活,比如...

weixin_34081595的博客 3426

2021-10-29 atcoder ABC157——B - Bingo

B - Bingo 先标记,然后暴力判断,这样最清晰最好想。 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long LL; int a[110][110],b[110]; int main() { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) cin>>a[i]

honeistbutter的博客 337

北斗导航 | ILS(仪表着陆系统)、MLS(微波着陆系统)和GBAS(地基增强系统)的性能对比

最 早 的 GBAS 系 统 是 **局 域 增 强 系 统(LAAS)**,它是 1990 年由美国 Honeywell 公司 和 NASA 共 同 完 成 的 差 分 GPS(DGPS)演 变 而 来 的。1998 年,LAAS 被 ICAO 采 纳为 GBAS。2009 年 9 月 3 日 Honeywell 公 司 的GBAS 系统通过了 **CAT-I 精密进近着陆系统**的设计认证 ,而 **CAT-II 和 CAT-III 系统的研发和验证工作也正在有序的进行中**

尘世冰封的专栏 3983

Cassie 2018年反馈控制论文阅读笔记

最近空闲时间在思考双足走草地的控制方案,查找资料发现了密歇根大学2020年展示了一个很牛的双足过草地的demo: 所用的平台是Cassie机器人,完整视频:https://www.bilibili.com/video/BV1iV411k7Qo,作者表示论文还在写……然后看了下他们以往的视频,他们2018年就在Cassie上进行了实验,视频中就已经显示了其优秀的复杂地形(沙地、雪地、被烧过的草地……)通行能力,如下图所示: 2018年的控制方案在他们2018年的论文《Feedback Contro

Wincoding的博客 2176

YOLOv13零基础手把手教程:在 YOLOv13 中集成 SFSConv,YOLOv13让目标检测更上一层楼

YOLOv13本教程详细介绍了如何在YOLOv13中集成SFSConv模块以提升目标检测性能。YOLOv13 SFSConv创新性地结合了分数伽柏滤波和分数傅里叶变换,通过空间处理单元(SPU)和频率处理单元(FPU)解耦处理特征。实验表明,该模块可使准确率提升5.21%,mAP提高11.45%。教程从原理分析到代码实现,系统讲解了SFSConv的数学基础、模块设计,并提供了在YOLOv13中集成该模块的详细步骤,包括配置文件修改、核心代码实现等。

FJN110的博客 2175

极简深度强化学习实现-DDPG-TD3-SAC

极简深度强化学习实现-DDPG-TD3-SAC 文章目录极简深度强化学习实现-DDPG-TD3-SACgithub地址based on实现目的和学习建议:下一步打算 github地址 https://github.com/kaixindelele/DRL-tensorflow based on My DRL library with tensorflow1.14 core codes based ...

hehedadaq的博客 6863

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

机器人实战篇:低成本双足机器人(切比雪夫联杆结构、静步行、动步行、ZMP点等概念)

引言 放假前看了一本书:09年坂本范行的《双足步行机器人DIY》,由于该书重点强调实践DIY,在此记录下部分有点启发、有点东西的知识:比如切比雪夫联杆结构、静步行、动步行、ZMP点。也顺便记录下DIY过程中部分核心内容。 目录 目标对象 具体方法 一、切比雪夫联杆结构 二、转移重心 三、引申内容 (1)重心点的检验方法 (2)静步行 (3)动步行 其它 目标对象 模...

aic1999的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

波士顿动力真的无可企及吗?一步步剖析四足机器人技术(二)

四足机器人运动控制第五章 第五章 在上一篇中我们已经介绍了四足机器人相关的基本概念,并且建立好了控制网络模型:

LiuZ的博客 2万+
上一篇: 《Nature》子刊发布,IIT科学家模仿“植物的触须”,打造可逆渗透致动的仿生软体机器人
下一篇: 从ihmc将研发全尺寸人形机器人Nadia带来的关于硬件平台和驱动原理的思考
小高robot
博客等级 码龄8年 270粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值