概述

overview

注释:

更确切地说,首选项文件由DCM模块读取, 但是通过ALMemory可以看到它们。详见下文。

当其它模块要访问机器人的致动器和传感器时,有两个方法:

  • 访问传感器时,模块需要使用子器件传感器的名称 (或使用回调)来检查ALMemory。

    对于大多数传感器而言, DCM会在ALMemory里自动更新传感器值,模块只需检查新值即可。而某些传感器(UltraSound……)则需要向致动器发出请求,才能 更新值。

  • 访问致动器时,模块需要使用一个定时命令(参见定时命令一章),向DCM提出更新请求。

    其它模块不能在ALMemory里直接更改DCM的值。它们必须首先询问DCM。然后,由DCM来改变ALMemory里的致动器值,但是这 只有在DCM通过器件确认命令正确发送、并且发送到致动器的是精确值时才可进行。

    注释:

    最后这一点仍在开发中。目前,即使DCM没有确认,也是直接更新值。但是您可以通过查看“ACK/NACK”的值,来检查器件是否回应。

    注释:

    由DCM发送给致动器的值可能不是要求的精确值,而是 根据致动器的精度进行四舍五入,而且还会有线性插值,以及一些限制(由机械停顿造成的最小/最大值,或其它限制等)。

传送致动器命令到DCM的主要模块是“动作”(至少对关节来说)。

注意:

DCM本身没有任何针对模块的资源管理或优先系统, 也就是说即使命令自相矛盾,每一条命令也都会被考虑到。

DCM拥有一个单独的实时线程,每10毫秒(ms)运行一次 (称为DCM“循环”),管理每一次信息交流/致动器计算/传感器返回,然后停止运行,直至下一个循环。





Copyright © 2010 Aldebaran-Robotics - 版权所有