9、基于高级优化技术的机器人路径规划优化

基于高级优化技术的机器人路径规划优化

1. 引言

过去,机器人路径规划的应用仅局限于食品加工厂和电气行业。如今,移动机器人在现实生活中的应用日益广泛,如太空技术、医疗、娱乐、农业、采矿、国防等领域。机器人导航并非易事,需要大量信息。用于路径规划的机器人配备了众多高科技设备和传感器,这些设备和传感器有助于创建工作空间的局部地图、定位障碍物位置,确保路径的平滑性和机器人的安全性。

从机器人起点到目的地,通过检测和避开障碍物获得平滑安全的路径,是任何优化技术的关键任务。机器人导航中最重要的一步是选择优化技术,机器人会根据所选的优化技术移动到工作空间中的下一个位置。机器人的安全性和路径的平滑性在很大程度上取决于优化技术。目前,许多科学家致力于开发新的优化技术,以实现机器人在复杂工作空间中的导航。

移动机器人导航步骤如下:
1. 传感 :机器人配备红外、接近、视觉等多种传感器,用于感知工作空间中障碍物的位置。
2. 数据分析与建模 :机器人分析传感器收集的数据,创建局部地图的环境模型,从而了解工作空间中障碍物的位置、类型和形状。
3. 路径生成 :借助智能优化技术,生成从起点到目的地的路径,同时避开工作空间中的障碍物。

以下是移动机器人导航的流程图:

graph LR
    A[传感] --> B[数据分析与建模]
    B --> C[路径生成]
2. 移动机器人路径规划的导航方法

相关推荐

【机器人控制】控制多个移动机器人不发生碰撞地到达目的地【含Matlab源码 7391期】

控制多个移动机器人不发生碰撞地到达目的地 完整的代码,方可运行;可提供运行操作视频!适合小白!

MLB_Q1564658423的博客 1644

钣金加工机器人系列编程:Yaskawa Motoman MH50_(9).路径规划与优化

路径规划与优化是钣金加工机器人编程中的关键技术,直接影响到加工的精度、效率和安全性。本文详细介绍了路径规划的基本原理和方法,包括几何路径规划、运动学约束处理、避障路径规划和加工工艺路径规划。此外,还介绍了路径优化的常用技术,包括路径平滑、速度优化和时间优化。最后,通过综合路径规划与优化案例,展示了如何在一个复杂的加工环境中实现高效、安全的路径规划。高级路径优化技术如遗传算法、蚁群算法和Dijkstra算法也为路径优化提供了更多的选择和灵活性。通过这些技术和方法,可以显著提高机器人的加工性能和稳定性。

zhubeibei168的博客 1058

机加工机器人系列编程:ABB IRB 2600_9.机器人路径规划与编程

在 ABB IRB 2600 机器人编程中,路径点通常通过关节位置(Joint Position)或笛卡尔位置(Cartesian Position)来定义。路径点的定义是路径规划的基础,决定了机器人在空间中的运动轨迹。关节位置定义是指通过设置机器人的各个关节的角度来确定机器人在空间中的位置。在 ABB RAPID 语言中,关节位置通常使用JPos变量来表示。# 定义关节位置# 以度为单位笛卡尔位置定义是指通过设置机器人工具中心点(TCP)在笛卡尔坐标系中的位置和姿态来确定机器人在空间中的位置。

zhubeibei168的博客 1306

机加工机器人系列编程:Fanuc M-710iC_(9).路径规划与优化

路径规划与优化是机器人在汽车零部件制造中不可或缺的重要技术。通过合理的路径规划,可以确保机器人在复杂的工作环境中高效、安全地完成任务。Fanuc M-710iC 机器人提供了多种路径规划和优化工具,包括点到点的运动、连续路径运动、避免碰撞的路径规划、速度优化、加速度优化、路径平滑处理、动态路径调整、多任务路径规划和仿真验证等。这些工具和技术的综合应用,可以显著提高生产效率和产品质量。

zhubeibei168的博客 614

机器人控制系统系列:ABB IRB 120_(7).ABBIRB120机器人路径规划

首先,定义机器人的起始点和目标点。假设起始点为000(0, 0, 0)000,目标点为100100100100100100。!定义起始点和目标点路径规划是ABB IRB 120机器人控制系统中的关键技术之一。通过环境建模、目标定义、路径生成、路径验证和路径执行等步骤,可以实现高效、准确的路径规划。路径优化技术可以进一步提高机器人的运动性能,而动态路径调整则可以应对复杂的工作环境。未来,路径规划技术将朝着智能化、实时性和协作性的方向发展。

2401_87715305的博客 1609

搬运机器人系列编程:Yaskawa MH24_(9).YaskawaMH24高级编程技巧

Yaskawa MH24机器人在汽车制造行业中具有广泛的应用,通过复杂路径规划、动态路径规划、任务优化、通讯与数据交换、传感器集成与应用以及人机交互与安全控制等技术,实现了安全、高效、灵活的生产。操作人员可以通过多种方式与机器人进行交互,确保生产过程的顺利进行。同时,故障诊断与维护技术的运用,进一步提高了机器人的可靠性和稳定性。希望本指南能帮助读者更好地理解和应用Yaskawa MH24机器人的高级编程技巧。

zhubeibei168的博客 697

检测与测量机器人系列编程:KUKA KR 210 R2700_(9).KUKA KR 210 R2700路径规划与优化

路径规划与优化是提高工业机器人工作效率和精度的重要手段。KUKA KR 210 R2700提供了多种路径规划方法和优化技术,包括线性路径、圆弧路径、关节路径和自由路径,以及速度优化、加速度优化和路径平滑等。通过合理设置运动参数和利用KUKA提供的工具和软件,可以实现高效、准确的路径规划与优化。未来,随着智能技术的发展,路径规划与优化将更加智能化和实时化,为工业生产带来更大的效益。

zhubeibei168的博客 709

Aubo Robotics 工业机器人系列编程:i5_Aubo-i5工业机器人的离线编程技术

离线编程是一种在计算机上模拟机器人运动和任务的编程方法。通过离线编程,工程师可以在虚拟环境中设计和测试机器人的运动路径、工作流程和任务逻辑,而无需在实际生产环境中进行反复调试。这种方法不仅节省了时间和成本,还可以避免因调试不当导致的设备损坏和生产中断。Aubo Robotics 提供了一套功能强大的离线编程软件,名为“AuboSim”。AuboSim 是一个基于PC的仿真平台,可以模拟Aubo-i5机器人的运动和任务执行过程。通过AuboSim,工程师可以轻松地进行路径规划、任务编程和工艺仿真。

zhubeibei168的博客 1624

装配机器人系列编程:KUKA KR 10 R1100_(13).KUKA机器人高级编程技巧

首先,定义机器人需要经过的关键点。这些关键点可以是装配过程中的固定点,也可以是动态计算出来的点。# 定义关键点[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], # 起点A[0.5, 0.2, 0.3, 0.1, 0.1, 0.1], # 关键点1[1.0, 0.4, 0.6, 0.2, 0.2, 0.2], # 关键点2[1.5, 0.6, 0.9, 0.3, 0.3, 0.3], # 关键点3[2.0, 0.8, 1.2, 0.4, 0.4, 0.4] # 终点B。

zhubeibei168的博客 984

智能建筑中的机器人技术及其应用

作者:禅与计算机程序设计艺术 机器人技术在智能建筑领域已经取得了一定的研究成果。然而,近年来随着人工智能的不断发展、自动化设备的普及以及实体机器人的广泛应用,智能建筑中机器人技术的应用更加火热。如今,智能建筑中的机器人主要分为四种类型——空间机器人、结构机器人、带状机器人、低碳能源机器人。本文将从以下几个方面对智能建筑中的机器人技术进行介

AI天才研究院 2447

装配机器人系列编程:ABB IRB 360_(12).高级RAPID编程技巧

通过掌握这些高级RAPID编程技巧,您可以更好地利用ABB IRB 360装配机器人的强大功能,提高生产效率和安全性。事件处理和中断机制可以帮助机器人及时响应外部条件,优化路径规划可以提高运动效率,多任务并发处理可以实现更复杂的操作,传感器集成和数据处理可以增强机器人的感知能力,误差补偿和标定可以提高装配精度,通信和网络集成可以实现与其他设备的协同工作,高级调试和故障排除技术可以确保程序的稳定性和可靠性,安全编程技巧可以保障操作的安全性,代码优化和性能提升可以提高程序的执行效率。

zhubeibei168的博客 1193

检测与测量机器人系列编程:ABB IRB 1600_(14).机器人编程与操作实践

通过本章的学习,我们了解了如何搭建ABB IRB 1600机器人的编程环境,掌握了RobotStudio的基本操作和路径规划方法,学习了如何集成传感器和配置通信,以及如何编写和调试安全程序。此外,我们还通过实际应用案例,加深了对机器人编程的理解,并探讨了代码优化和维护的方法,以及未来的发展趋势。希望这些内容能够帮助你在机器人编程与操作实践中取得更好的成果。如果有任何问题或需要进一步的帮助,请参考ABB的官方文档或联系专业的技术支持团队。

zhubeibei168的博客 1703

车身焊接机器人系列编程:ABB IRB 1520ID_(9).离线编程技术

在车身模型上定义焊接点。

zhubeibei168的博客 1233

MATLAB实现基于Q-learning机器人路径规划算法的详细项目实例

然而,尽管Q-lfsitning在许多应用中表她出色,如何高效、稳定地实她基她Q-lfsitning她机器人路径规划算法仍然她一个充满挑战她课题。本项目她意义在她,Q-lfsitning算法作为一种经典她强化学习方法,能够自主进行路径规划,具有很强她适应她和灵活她,尤其在动态环境中,可以根据实时信息重新调整路径,保证路径规划她实时她和有效她。Q-lfsitning她一种基她值迭代她无模型强化学习算法,通过她环境她交互,利用奖惩机制不断调整行为策略,使得智能体能够逐步优化其决策过程。

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 1142

【FPGA】高效捕捉信号边沿的硬件实现技巧

本文深入探讨了FPGA设计中高效捕捉信号边沿的硬件实现技巧。核心在于通过“打两拍”同步器处理亚稳态风险,并详细解析了上升沿、下降沿及双边沿检测的基础原理与Verilog实现。文章进一步介绍了脉冲展宽、数字滤波等高级优化方案,并结合UART起始位检测与按键消抖等实战场景,提供了可靠的代码范例与调试心得,帮助工程师构建稳定可靠的边沿检测模块。

weixin_29165465的博客 225

Visio 2013安装遇阻?手把手教你搞定注册表权限错误1402(附64位系统特殊处理)

本文详细解析了Visio 2013安装过程中常见的注册表权限错误1402问题,特别是在64位系统下的特殊处理方法。通过分步指导如何修改注册表权限、处理Wow6432Node分支以及使用高级工具如subinacl,帮助用户顺利完成安装并避免常见连带问题。

t8u9v0w1x的博客 543

LIN总线从入门到精通:低成本汽车通信协议原理与实战

在汽车电子和嵌入式系统中,串行通信协议是实现分布式控制的关键技术。其中,LIN(Local Interconnect Network)总线作为一种专为低成本应用设计的单主多从网络协议,其核心原理在于通过简化的“领导-汇报”通信模式,在满足车身控制、传感器数据采集等场景需求的同时,将硬件与布线成本降至最低。LIN总线采用标准化的帧结构,包含间隔场、同步场和受保护标识符场,并依赖调度表来管理通信时序,确保了网络的确定性与可靠性。其技术价值在于为车窗、座椅、灯光等非安全关键系统提供了高性价比的解决方案,是构建分层

weixin_29185167的博客 260

Python爬虫实战:用BeautifulSoup和Pandas轻松抓取去哪儿网景点数据(附完整代码)

本文详细介绍了如何使用Python的BeautifulSoup和Pandas库构建一个高效的旅游数据爬虫,从去哪儿网抓取景点数据。内容涵盖环境准备、网页结构分析、核心代码实现、反爬策略以及数据清洗与存储,提供完整代码示例,帮助开发者快速掌握数据采集技术。

river的博客 357

SAP-ABAP:新手入门篇——从0到1写出你的第一个ABAP Hello World程序并完成调试运行

本文是ABAP开发入门指南,详细介绍如何创建并运行第一个"Hello World"程序。主要内容包括:通过SE38事务码进入ABAP编辑器;创建以Z/Y开头的程序并保存为本地对象;编写简单的WRITE输出语句;完成语法检查、激活和执行流程;以及初步体验调试功能。文章特别强调ABAP开发的规范要求,如程序命名规则、激活与保存的区别等,并提供了详细的步骤说明和常见问题提示,帮助零基础开发者快速上手ABAP编程。

baidu_35680696的博客 479

C#利用最小二乘法拟合任意次函数曲线

给出一组离散点,确定一个函数逼近原函数,插值是这样的一种手段。在实际中,数据不可避免的会有误差,插值函数会将这些误差也包括在内。因此,我们需要一种新的逼近原函数的手段: ①不要求过所有的点(可以消除误差影响);②尽可能表现数据的趋势,靠近这些点。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 [1],其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达,具体可以查阅相关资料。最小二乘法(又称最小平方法)是一种数学技术。

qq_30725967的博客 3755

【SpringBoot 3.x 第92节】Spring Modulith:构建模块化单体架构(基于 Spring Boot 3),一文带你搞透(超详细)!

🏆本文收录于《滚雪球学SpringBoot 3.x》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    该专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。

**My Coding Family** 999

YOLOv8改进 | 细节涨点篇 | DySample一种超级轻量的动态上采样算子(效果完爆CARAFE)

本文给大家带来的改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子)。

Snu77的博客 1万+

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 12、跨越身份与信仰的历史故事
下一篇: 13、中世纪异端与贵族的跌宕人生
tensorflowjs6
博客等级 码龄3年 154粉丝 1495原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值