MIT Mini Cheetah 的驱动与结构原理解读以及对尺寸效应

【伺服电机控制】MIT无刷电机FOC驱动程序设计 系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、FOC主程序分析1、主程序步骤2、主程序代码二、中断程序分析1.can接收中断主要的任务(1)驱动特殊指令(优先级最高)【用于非串口设置电机模式】(2)CAN接口指令(优先级最低)(3)把电机收到的信号返回到主设备,说明电机有响应代码2.串口接收中断主要的任务设置电机的模式(1)【27】电机复位状态+接收8位数据清零(2)【REST_MODE】:电机还在菜单栏上,在这里进行电机 阅读详情
AI摘要

本文介绍MITMiniCheetah的驱动设计,包括模块化驱动器、整体平台结构及尺寸效应。采用低成本高扭矩密度电机与低减速比齿轮箱组合,实现高性能驱动。平台设计注重减少腿部惯量和质量,增大工作空间。尺寸效应揭示机器人尺寸与爆发运动能力的关系。

来源 | 知乎

作者 | 任赜宇

 

目录

1.前言

2.模块化驱动器

3.整体平台结构设计

4.尺寸效应

 

▌1.前言

本文是根据Benjamin G. Katz的硕士毕业论文(Download Link)来介绍MIT Mini Cheetah的驱动设计和相关硬件结构。最后再分享下作者关于腿足式机器人这类爆发式跳跃运动,针对尺寸效应的思考。

▌2.模块化驱动器

  • 整体思路

MIT Mini Cheetah的整体驱动器设计的指导思路是控制成本,简而言之是要在最低价格上做到最高性能,他们最终把单个驱动器的成本控制在了300美元左右(以50采购量为基准)。

整体的驱动特征还是遵循MIT Cheetah组一贯的本体驱动器(Proprioceptive Actuator)的思路:

大扭矩密度电机(T-Motor U8)+低减速比齿轮箱(6:1) = 大扭矩密度+高反向驱动能力+高力控通频带宽能力

  • 电机

MIT Cheetah Mini驱动器采用的电机是类似于公版电机T-Motor U8的型号。

Benj的Thesis没有透露出具体的型号,但提到了性能和尺寸类似于这类公版电机,只是价格更低,因此可以以此型号做参考。T-Motor U8这款电机是广泛应用于四旋翼的,产量大且价格低,因此相比较于MIT Cheetah 3的昂贵的定制电机,在降低成本上有非常大的优势。

                                                                无刷电机中的定子(左)和转子(右)

上图所示为无刷电机中的定子和转子,注意右图的转子是被修改过以适合安装太阳轮的,为什么这么做,会在下节齿轮箱中提到。

使用本体驱动器的一大优点是,不需要额外的机械结构和昂贵的传感器就能做到力控。这是因为小减速箱的非线性误差可以忽略不计,因此直接使用电机的电流环和相应的减速比,就能得到驱动器端的输出扭矩。

下图是其电机的扭矩/电流特性,基本成较好的线性关系,在最大电流时有大致12%的误差。

                                                         左图:扭矩/电流特性 右图:扭矩常数/电流特性

  • 齿轮箱

减速箱采用的是减速比6:1的行星齿轮减速方案(背隙0.005rad/0.28°),这里在机械上与电机集成的一个亮点是:电机被“嵌入“了行星齿轮箱中,注意下图的齿轮箱Sun和Planets位置。

                              MIT Cheetah Mini驱动器的爆炸视图

以上的设计思路,就带来了一个极其紧凑、轻量化的驱动器整体集成效果,见下图:

使用到的相关齿轮箱和轴承的型号如下:

行星轮:Misumi GEFHB0.5-40-5-8-W3

太阳轮:Misumi GEABN0.5-20-8-K-4

Ring Gear: KHG SI0.5-100

Needle Bearing: HK0408

  • 控制器

整体的电机控制器硬件层面的信息如下:

24V供电

40A峰值相电流(由于电机热力学限制,实际数值低于40A)

CAN总线通信

下发信息:力矩、位置、速度及位置和速度的增益

反馈信号:位置、速度以及基于电流环测量的扭矩

最大通信频率:4kHz/驱动器数目 (可通过增加CAN总线数目扩大通信带宽)

如下图的三相逆变器电路板设计

                                                              三相逆变器

如下图所示的来自AMS AS5047P霍尔传感器,测量电机位置信息,14 bit

                                                          集成霍尔传感器的驱动

整体驱动器性能参数

                                                          Actuator Specification

如果你在这里比较这代Cheetah Mini驱动器和Cheetah 2&3的驱动器:

Cheetah Mini: 最大功率/质量的输出密度:1417 watt/kg

Cheetah 2&3:最大功率/质量的输出密度:2400 watt/kg (这里参考Niaja Nichole Farve的PhD thesis)

可以看出,使用了商用电机的MIT Mini Cheetah驱动器的性能是不如MIT自研电机的驱动器的。其实同样能做很好后空翻是得益于尺寸效应,这个在文章最后会说到。

 

▌3.整体平台结构设计

1 首先是MIT Mini Cheetah的整体CAD渲染图:

MIT Cheetah Mini, CAD Rendering

整体结构设计就是遵循以下两原则:

  • 减少腿部惯量和质量
  • 增大腿部工作空间

为了减少惯量,采用较为常规的驱动器上置(远离地面)排布,单腿自由度分配为传统的Roll-Pitch-Pitch形式,设计如下图:

                                                          单腿的CAD

膝关节的Pitch驱动器上移排布之后,使用带传动,如下图:

                                                                        膝关节带传动

为了减少自身质量,通过有限元分析着重进行了轻量化设计:

  • 工字梁方案的小腿设计

大腿内部镂空设计

机器人身体由1.5 mm的AL 6061硬质铝组成

驱动器也采用镂空减重设计的Housing(为了减重丧心病狂,产品设计上的大忌,防尘防水)

最后MIT Mini Cheetah的腿部构型采用了现在较为主流的双手肘式(两腿膝盖朝向均向后),以增大腿部的工作空间。

 

▌4.尺寸效应

作者这里指的尺寸效应其实很简单:在关节式机器人爆发运动能力这方面,尺寸越大的机器人对驱动器的功率输出密度要求越高,技术实现也越困难。具体定量一点说:机器人尺寸假设扩大Lambda倍,那么相应质量是Lambda的3次方量级的增长,而所需要驱动扭矩则是Lambda的4次量级的增大。对于驱动器输出性能而言,增大机器人尺寸简直是噩梦,反之缩小机器人尺寸,能占很大的便宜。

这也解释了为什么MIT Mini Cheetah的驱动器输出性能(密度)不如Cheetah 2&3,但反而能做出更加惊艳后空翻的原因。这里需要提一下Benj的Master的工作做的很好,相应的驱动器性能在设计时是按照Cheetah 3的尺寸进行等比例缩小的,理论上密度应该一致,但实际实验后发现驱动器功率密度是小于原先的。

其实我们大自然也存在这样的情况:跳蚤能够跳跃其身长100多倍的高度,小猫小狗也能健步如飞,但是吨位比较大的大象则蹦跶一下都难。

我在这里简单收集了关于机器人跳跃的不同尺寸纬度和驱动原理的Demo:

Demo1

  • 左上,UC Berkeley Salto 2: 45 g 微型尺寸 Electromagnet原理
  • 右上,MIT Cheetah Mini: 9.5 kg 小尺寸 Electromagnet原理
  • 左下,IIT eLeg: 35 kg 仿人型尺寸 Electromagnet原理
  • 右下,BDI Atlas 2:75 kg 全人型尺寸 Hydraulic原理

如果从尺寸效应的角度来看驱动器能量密度,知道谁才是真正的王者了吧。


作者读了Benjamin G. Katz的硕士毕业论文之后,真心感概水准和平台之高,尽管没有核心去尝试解决驱动器能量密度的问题,但仍然是超一流水准的工作,而且是硕士生工作!并且MIT Cheetah整个队伍在硬件平台和代码的开放性上的态度十分值得敬佩——基本做到了开源,相应的设计细节和开源代码链接都在具体thesis之中,感兴趣可以下载。

PS: 本文行文仓促,属于读书笔记类型,如有错误和不足欢迎指正。

 

—— 完 ——

【四足机器人项目实战】MIT四足机器人力控电机优劣分析及解决办法 系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、mit力控电机方案二、弊端三、优点四、解决办法设计相关看专栏其他博客 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对XXX做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、mit力控电机方案 MITCheetahMini驱动器采用的电机是类似于公版电机T-MotorU8的型号 阅读详情

相关推荐

小型四足机器人源码包实战:从解压到二次开发全流程指南

开源硬件项目中,源码分发往往离不开压缩包这一基本形态,而四足机器人项目文件繁多,zip格式因其跨平台与易用性成为主流。然而拿到源码包不等于能运行,解压阶段的文件校验、中文编码问题常常成为第一道关卡。越过这一步后,真正理解四足机器人源码需要把握三大核心:基于连杆模型的逆运动学求解、步态生成器的相位协调、以及关节空间PD控制回路。这些模块共同构成了运动控制的基础架构,也是仿真与真机部署之间切换的关键。对开发者而言,从源码包到编译环境搭建、仿真验证、真机调参,再到二次开发,是一条完整的工程链路;掌握通用调试技巧,

weixin_34013044的博客 457

MIT Mini Cheetah四足机器狗开源代码仿真环境搭建以及问题报错汇总

主要分为四大部分:完成Qt、Lcm与Eigen库的安装及Cheetah代码的编译四部分,以及遇到的问题和解决方法,大部分参考开头两篇引用文章。

BIT_TF的博客 5954

stm32驱动MIT电机代码

stm32驱动MIT电机代码

MIT Mini Cheetah机器狗电机CAN驱动方法

电机介绍 下图就是MIT做的四足机器狗的电机 完全开源 图纸源程序论文网上都有,这里不贴了,我们基本上就是拿来用的。 这个电机的控制方式还是很简单的,只需要发送can指令就可以了。 驱动程序 windows windows下的驱动可以直接使用官方的开源上位机。具体使用方法如下。 链接:https://pan.baidu.com/s/1Z9TxrVO4mc6IaSi46n-jpg 提取码:7m7t Linux linux系统可以参考这个文档,里面说明详细。不过需要注意的是 1)can设备的ID不管是位数还是

Peloponnesian的博客 5884

NSIDC海冰运动产品-速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】

入门级NSIDC海冰运动产品速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】

Mluoo的博客 2959

ESP32实战指南:SPI驱动ADXL345三轴加速度传感器的精准数据采集与姿态解算

本文详细介绍了如何使用ESP32通过SPI接口驱动ADXL345三轴加速度传感器,实现精准数据采集与姿态解算。从硬件连接到SPI通信优化,再到数据处理和低功耗策略,提供了全面的实战指南。特别适合物联网开发者和硬件工程师参考,帮助快速掌握传感器数据采集技术。

vim8coder的博客 1042

树莓派4B(Ubuntu22.04)配置MIT的mini cheetah环境

解决:在/usr/include/下新建文件 ----(https://blog.youkuaiyun.com/weixin_41106948/article/details/128779123)3、打开mit主文件夹下的sim文件夹下的CMakeLists.txt文件,(https://zhuanlan.zhihu.com/p/537013183)4、sse指令集------(https://blog.youkuaiyun.com/chiyiwei7384/article/details/119248072)

yangyh75的博客 2061

Lenovo 拯救者15ISK硬件升级实战:从内存到固态硬盘的全面优化

本文详细介绍了为联想拯救者15ISK笔记本电脑进行硬件升级的完整实战指南。通过评估升级可行性,指导如何挑选兼容的内存条与NVMe固态硬盘,并提供详细的拆机安装步骤与系统安装避坑技巧。升级后,笔记本的开机速度、软件加载及多任务处理能力获得飞跃式提升,让老旧设备重获新生。

weixin_29310631的博客 554

fpga多摩川编码器开源代码_【短文】MIT Mini Cheetah 的关节单编码器方案

接着如下两篇关于Mini Cheetah的介绍文章:MIT Mini Cheetah 的驱动与结构原理解读以及对尺寸效应的思考MIT Mini Cheetah的关节驱动器为何选用减速比为6的单级内嵌式行星减速器? 本文主要来谈一谈Mini Cheetah的关节驱动器中所采用的单编码器(AMS AS5047P)方案的利弊及其工作原理。写这篇文章,首先是觉得Benj的单编码器方案挺有意思,想把其思路理...

weixin_39905226的博客 892

【校招】SHL 的 General Ability (GA, 通用能力测试)

SHL 的 General Ability (GA, 通用能力测试) 文章目录SHL 的 General Ability (GA, 通用能力测试)1、归纳推理题1.1 圈圈线条推理1.2 图形颜色位置推理1.3 箭头指向推理2. 数字推理题攻略3. 语言推理题 1、归纳推理题   归纳推理题我把它总结为三种类型:圈圈线条推理;图形颜色位置推理;箭头指向推理。 1.1 圈圈线条推理   你别看这个题目看起来很复杂,其实很简单,而且这个题型的题目背后原理都一样!我把我的 tips 偷偷分享给你们嘿嘿~先从 A

Sunnyside_ 2万+

网络流量监测技术

NetFlow是Cisco公司提出的网络数据包交换技术,该技术首先被用于网络设备对数据交换进行加速,并可同步实现对高速转发的IP数据流(Flow)进行测量和统计。  随着宽带互联网在中国 的迅速发展,全国各大电信运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长。电信运营商需要通过可靠、有效的网络业 务流量监测系统对其网络以及网络所承载的各类业务进行及时、准

红杉树(ecitnet)的博客 5538

MIT Mini Cheetah仿真环境搭建(VMware中的ubuntu20.04,含问题解决)

首先,将我参考的大神文章放在开头,没有这些大神也就没有这篇笔记。 全程一镜到底拍摄的环境配置视频,我基本全程按照这个路线走,但是大神应该是比较熟练了,配置过程基本没有出现问题,所以我又寻找了一些其他文章来解决遇到的问题。大神配置环境一镜到底​​​​​​ 一篇文字笔记,基本全程都有。MIT Mini Cheetah开源四足机器人仿真环境20211130 接下来是我遇见的问题,下载了大文件到windows上,但是不知道怎么在虚拟机中直接使用。参考的是:虚拟机和主机共享文件夹 自动安装缺少的依赖。参考的.

qq_58956184的博客 4630

ubuntu20.04安装nvidia-docker(解决有 Release 文件。 N: 无法安全地用该源进行更新,所以默认禁用该源错误)

然后想都不要想,nvidia+linux安装的东西,那肯定是不能安装成功的,恶毒的nvidia。按照nvidia官网给出的安装nvidia-docker流程来。在sudo apt-get update出现报错。然后再次update,发现还是会有一些警告类似于。,直接点击网页手动下载,发现下载成功!,注意会有安装先后顺序,安装给的提示就行。最后输入命令发现安装成功。然后替换掉里面的内容。直接不管,直接上命令。

weixin_48144140的博客 1235

MIT电机驱动文档

电机驱动器配备两个在正常运行时使用的连接器:一个用于供电的XT30接口,以及一个用于CAN总线通信的Harwin Datamate L-Tek高可靠性接口。在电路板顶部设有JST-SH接口,包含编程引脚和用于配置驱动器的串口。必须使用预充电电路(推荐阻值10-100Ω),或通过可调电源缓慢升压。CAN接口的型号为M80-8420342,匹配接口型号为M80-8990305。通过921600波特率(8数据位,1停止位,无校验)的串口终端进行配置。大量负功(如制动),必须连接能吸收能量的电源(如蓄电池)

u011878611的博客 3777

livox雷达斜装修改

指的是,使用外部的陀螺仪的话,雷达到外部陀螺仪的转换,而mid360的陀螺仪是内置在360里面的,且方向和点云方向是一致的,所以不能通过修改此处去改变陀螺仪方向。同时livox_ros_driver2中的MID360_config.json里面的。这里面的外参,只能改变点云相对陀螺仪的位姿,而不能将陀螺仪映射到你期望的倾斜角度。fast_lio中的mid360.yaml中的外参。

z1872385的博客 2708

基于YOLOv8改进的目标检测算法研究及毕设实现全流程指南

在PyTorch中定义改进后的YOLOv8模型。首先,导入相关的库和模块,然后定义骨干网络、颈部和头部的结构。# 这里定义骨干网络的结构,例如使用改进的CSP结构# 卷积层、批归一化层、激活函数等# 更多的卷积层、批归一化层、激活函数等# 其他层...# 其他层的输出...然后,定义颈部和头部的结构,类似地,将注意力机制和特征增强方法集成到模型中。本毕设以YOLOv8为基础,通过集成注意力机制、应用特征增强技术等方法,改进了目标检测算法。

m0_64661770的博客 323

MIT Mini Cheetah 四足机器人控制项目推荐

MIT Mini Cheetah 四足机器人控制项目是一个开源项目,旨在模拟和控制MIT Mini Cheetah四足机器人在PyBullet环境中的行为。该项目主要使用C++、Python和CMake作为主要的编程语言和构建工具。通过ROS(Robot Operating System)框架,项目实现了高效的机器人控制和仿真。 ## 项目核心功能 该项目的核心功能包括: 1. **机器人控...

gitblog_00201的博客 743

深度学习工具包 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")

LINUX环境下用命令行控制MIT电机

我的硬件环境: 1台工控机,买的淘宝的典籍工控机,买来以后自己用U盘改成了UBUNTU 16操作系统 1台深圳智擎的MIT电机 1个24V稳压电源。我用的是中信的ZXD2400可调稳压电源,没有使用便宜的明伟开关电源。我觉得用24V的明伟开关电源足够了 1个USB2CAN模块。 这个是最关键的,必须买一个支持高速的USB2CAN模块,一般的低速模块是不能用的 这个模块最高支持1Mkps的速度,这个速度也是MIT电机所需要的。 实拍图如下: 蓝灯已亮,说明电机已经使能(国内不同牌子的MIT电机,使能灯的颜

qq467480903的博客 2656

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

机器人 - 关于MIT电机模式控制

Mixed Integrated Torque为一种混合控制模式,在同一帧CAN数据里包含位置、速度、扭矩三类的闭环指令。驱动器里面把位置环、速度环、前馈扭矩相加,得到一个参考电流,然后再交给电流环完成精准扭矩输出。

qq_39546358的博客 7114

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[机器人-2]:开源MIT Min cheetah机械狗设计(二):机械结构设计

一个机械狗动力强不强劲,电机起到至关重要的作用,机械狗的电机比较特殊,类似于公版电机T-Motor U8的型号,这款电机是广泛应用于四旋翼的,需要很高的能量密度(不然就无法完成后空翻这样的经典动作),因此机械狗的动力选择的是无人机的无刷电机+行星齿轮组的形式,每个执行器都由一个定制的高耦合到单级6:1的行星齿轮减速机(背隙0.005rad/0.28°)。现在机械狗的基本构型就有了,现在我们最关心的还是腿部,希望腿部的惯性尽量的小,这里我们需要对腿部的结构进行拓扑优化,满足性能的同时,质量最小。

文火冰糖(王文兵)的博客 5816

安装Mit Mini Cheetah开源代码踩坑记录

make[2]: *** [lcm-python/CMakeFiles/lcm-python.dir/build.make:63:lcm-python/CMakeFiles/lcm-python.dir/module.c.o] 错误 1。make[1]: *** [CMakeFiles/Makefile2:862:lcm-python/CMakeFiles/lcm-python.dir/all] 错误 2。不确定可以都复制一份)在Cheetah-Software/build/下输入。

qfdzwly的博客 1475

【亲测免费】 MIT Mini Cheetah 四足机器人控制项目教程

MIT Mini Cheetah 四足机器人控制项目是一个开源项目,旨在模拟和控制四足机器人在 pybullet 环境中使用 ROS。该项目由 Derek-TH-Wang 维护,基于 MIT 许可证发布。通过该项目,用户可以学习到四足机器人的控制算法,并将其部署到不同的自定义机器人或平台上。 ## 项目快速启动 ### 环境准备 在开始之前,请确保您的系统已经安装了以下软件: - ROS ...

gitblog_00802的博客 1090

【免费下载】 MIT Mini Cheetah机器狗电机CAN驱动方法推荐

MIT Mini Cheetah机器狗电机CAN驱动方法推荐 【下载地址】MITMiniCheetah机器狗电机CAN驱动方法README.md 本文档提供了关于如何驱动MIT Mini Cheetah机器狗中使用的电机的详细指南。该驱动方法侧重于利用CAN总线通信协议,适用于想要操作这款四足机器人电机的开发者和研究人员...

gitblog_06506的博客 1549

自制DIY 机器狗 完全教程 - MIT猎豹Cheetah

3年前,MIT开源了世界上跑得最快最灵活的猎豹机器狗,自此以后,出现了大量商业化的机器狗,这里就不再一一介绍。只能说作为一个军方赞助的项目,能够开源,实属不易。 好消息是,2个月前,MIT的一个专注于猎豹的人工智能项目开源,有了大脑的机器狗现在会更加灵活。..........................................

技术探讨 2万+

[机器人-3]:开源MIT Min cheetah机械狗设计(三):嵌入式硬件设计

以1条腿进行设计,其它腿也一样:腿部硬件组成。

文火冰糖(王文兵)的博客 4478

MIT四足机器人控制方案理解笔记(3)——Mini Cheetah 19年的MPC+WBC控制方案

2019年,MIT在Mini Cheetah上采用了MPC+WBC的控制方案,论文《Highly Dynamic Quadruped Locomotion via whole-body impulse control and model predictive control》中称加入WBC后Mini的最高运动速度由18年只采用MPC时的2.45m/s增加到19年的3.7m/s。 笔者这几天看了下Mini上的WBC,在此处谈谈自己一些粗浅的理解,如有错误,请各位指正。 mini上所用的MPC与Chee

Wincoding的博客 9179
上一篇: Science Robotics | 美国造“自我意识”机器人?还能自我复制?
下一篇: 德国费斯托又双叒叕更新,象鼻子机械臂+超逼真仿生手,比人手都强大
小高robot
博客等级 码龄8年 270粉丝 0原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值