如何创建现实生活中的机器人?
-
22-08-2019 - |
题
甚至之前我学过程,我已经迷上了怎么机器人可以工作。现在我知道如何将基础编程的说明将编写的,但我所不了解的是如何将这些手册是随后通过的机器人。
例如,如果我写了这个代号:
object=Robot.ScanSurroundings(300,400);
if (Objects.isEatable(object))
{
Robot.moveLeftArm(300,400);
Robot.pickObject(object);
}
如何将这种程序应遵循的CPU的方式使的机器人做物理行动的展望左移动,他的手臂,这样的?是这样做主要是在二语言/ASM?
最后,在那里我会去的如果我想学习如何建立一个机器人?
解决方案
在最现代的机器人,你将有机制的逆运动学模型,在这种情况下的手臂,空间坐标转换为一个用于臂的关节位置。这些关节通常是由伺服电机移动。要平稳地移动手臂,你需要一系列定义你想要的手臂走的一条路中间接头位置。你也不用担心关节的速度,在臂的一端一起控制“手”的速度。
虽然臂移动您的伺服系统会得到约它的实际位置的反馈。简单的伺服系统可以使用基本的PID反馈回路调节电机。更复杂的系统将包括前馈参数,补偿惯性,重力,摩擦力等。这些可以变得非常复杂。
在真正的乐趣时,你必须允许在机器人周围的空间障碍开始。你有感觉障碍,并找出如何避免它,还是到达目的地。
其他提示
在结束,东西已经打破高级命令进入非常低的水平的指令。事情已经翻译成"拿杯"如何移动的手臂(什么角度的关节应该在),以硬件的命令实际上把电机。
有框架试图提供一些数量的这种翻译,包括(但不限于):
然而,由于机器人研究感兴趣的是在每个层系统时,没有多少系统提供的整个翻译堆。如果你看到的进入机器人,有几个系统的企图使这更容易(再次,一个随机样品):
如果做不到这一点,如网站 让 即使提供指导,以建设机器人项目从开始。面临的挑战是找到一个项目,该项目你都兴奋了,去城市!
我只需要添加约 Arduino的项目的这一点,因为我没有看到它上面提到的。<东西/ p>
有是为进入基于Arduino机器人项目非常低的栏。你写的硬件的“素描”节目很容易拿起和类似于C的语法。如果你不知道从电阻晶体管的这些板还允许您使用外挂的硬件和额外“盾牌”做了很多扩展基本电脑板。
它很好玩,很灵活,什么让你的代码与真实世界交互。加它的“开放硬件”非常沿的开源软件的线。
机器人将通过与硬件交互工作。从你的代码的桥梁通常是通过不同类型的I / O端口来完成。这可能仅仅是例如(你知道那些老COM1口)RS232电缆。硬件部分将通过电机组成(例如伺服电机)和传感器(如超声感觉障碍,激光器以获得距离或开关)。
您不需要使用汇编这样做,有很多的语言(如果不是大多数),可以做到这一点,但它需要如何与硬件交互的知识。就像写一个驱动程序。它至少需要基本的电子产品也,如果你想建立自己的机器人。
如果你有兴趣,我建议你看看这本书一>这是一个很好的引物
另外,你可以尝试编程基本杜绝,这是很容易跟随教程,它会给你如何建立机器人一个良好的开端。这不是太昂贵,你会与硬件在任何时间进行交互。
祝你好运,玩得开心!
如果你足够好,在编程时,你可能会发现你甚至不真的需要一个机器人来测试多最难的代码,你需要写...(IE,使得机器人看到和识别场景总是让我着迷......但在某些时候,我意识到这个问题所需的物理机器人是容易的部分...该软件是最困难的部分!)...
可能更容易获得更高级语言来描述机器人的行为和智慧,让低级语言到行动(移动手臂,走,停)。有很多的所谓BDI架构智能代理的研究,谷歌吧。
您可以找到更多关于这个网站,它是描述在Java中做代理行为DSL。这就是所谓的杰森解释器和语言是AgentSpeak(L)。
您必须有一个与硬件(最有可能是STAMP或电机FPGA等)接口的驱动程序。这样,你会调用该函数me.moveLeftArm(X,Y);和驱动器将知道moveLeftArm()指以移动致动器为X秒/毫秒/度。
我敢肯定,你会发现一个包,做机器人编程。
如果你想有一个Java的替代方案,我可以推荐的书 Linux的机器人。它有很多的关于在哪里得到的试剂盒,部件和传感器,以及完整的源代码列表中的Java良好的信息。
我也有同感痒..我要购买我的第一的Beagle Board 和一些传感器/舵机可以使用 I2C总线。 (,纤丝如果你愿意)我将要使用的事件驱动的设计和实施粗的纤维,其是用户空间线程。
基本上我的设计要求一个过程,这将启动每伺服系统的组的一个线程。每个组管理线程将推出原纤维的X#,2%的伺服(可能)。一个原纤维被用于控制伺服,其它的原纤维从伺服处理事件(即,一个目的是太沉重拿起,对象被放弃了,等等)。
主要工艺具有一切监听事件,并确保了“右手知道左手在做”,而前进和谈判障碍的任务。
它要带我两年的大部分时间得到的东西努力,我很骄傲的一点..但我预见到许多令人愉快的夜晚它让到这一点。
我将很可能被使用微内核,而不是Linux。
我这样做尽可能多的磨砺自己与事件驱动的方法以及我的愿望,让我自己R2:)
开始 Phidets 如果你很熟悉。网。你可以结帐 TrossenRobotics.com 对于部分。
该Phidgets接口工具包是一个良好的开端。从那里,你可以得到一个伺服控制器,并开始建设东西移动。
该Trossen论坛也是一个好地方审查的其他人的项目。他们有一个新的数据中心的代码/项目的样本。我不为他们工作...只是一个快乐的顾客。
这里地段好答案。你的幻想这段代码是不远处的你会如何在一个高级语言做,如C#在MS机器人工作室。请记住,即使是简单的事情(如“移臂左”)非常装有“信息偏见。”
下到金属,机器人臂是一组链接和[可能]机动关节。因此“移动臂左”(或任何点在坐标)已经是一个非常复杂的任务,以计算(寻找d&H表,向前和用于操纵器反向运动)。
还有那个移动手臂左边的概念假定没有什么在这个空间,也不会发生冲突。如果环境是不受约束的,那么就需要实现碰撞检测系统,往往基于某种传感器(照相机)和机器视觉算法的
总之,语言和硬件接口相比建模系统,以实现所期望的行为往往微不足道。
关于最后一个问题“如何创建一个机器人”,我发现在网上社区寻找相关的项目开始像[Adafruit的] [1],[Hackster.io] [2],甚至[故障] [ 3],或找人的博客文章谁已经建立了一个从无到有的机器人,例如, https://burningservos.com ,或提供用于硬件和软件例如,单证&教程的产品http://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/ 。