甚至在我学习编程之前,我一直对机器人如何工作着迷.现在我知道如何编写底层编程指令,但我不明白的是机器人如何遵循这些指令.
例如,如果我写了这段代码:
object=Robot.ScanSurroundings(300,400); if (Objects.isEatable(object)) { Robot.moveLeftArm(300,400); Robot.pickObject(object); }
CPU如何以一种能让机器人向左侧移动,移动手臂等物理动作的方式跟随该程序?它主要是用二进制语言/ ASM完成的吗?
最后,如果我想学习如何创建一个机器人,我会去哪里?
最后,必须将高级命令分解为非常低级别的命令.有些事情必须将"拿起杯子"转换为如何将手臂(关节应该处于什么角度)移动到实际转动马达的硬件命令.
有些框架试图提供一定数量的翻译,包括(但不限于):
播放器/舞台
Microsoft Robotics Studio
卡门
CLARAty
乐高头脑风暴
然而,由于机器人研究对系统的每一层都感兴趣,因此没有很多系统提供整个翻译堆栈.如果你正在考虑进入机器人技术,有几个系统试图让这更容易(同样,随机样本):
乐高头脑风暴
TERK
VEX机器人
如果做不到这一点,像Make这样的网站提供了建立机器人项目的指南.挑战是找到一个你很兴奋的项目,然后去城里!
您应该查看Microsoft Robotics Studio(MRS).他们有很多视频/截屏视频和书面教程.此外,Channel9 在robitics主题上有许多视频,采访等.包括演示,以及与MRS开发人员的访谈.
在大多数现代机器人中,您将拥有机械装置的反向运动学模型,在这种情况下是手臂,它将空间坐标转换为手臂关节的位置.这些接头通常由伺服电机移动.要平稳地移动手臂,您需要一系列中间关节位置来定义您希望手臂跟随的路径.您还必须担心关节的速度,它们共同控制手臂末端"手"的速度.
当手臂移动时,伺服系统将获得有关其实际位置的反馈.简单的伺服系统可以使用基本的PID反馈回路来调节电动机.更复杂的系统将包括前馈参数,其补偿惯性,重力,摩擦等.这些可能变得非常复杂.
当您必须在机器人周围留出障碍物时,真正的乐趣就开始了.您必须感知障碍并找出如何避开它并仍然到达目的地.