专利名称:机器人控制系统和用于机器人的控制方法
机器人控制系统和用于机器人的控制方法 技术领域[OOOl]本发明涉及机器人控制系统和用于机器人的控制方法,特别是传感器单元功能的变化。
背景技术:
加速度传感器和角速度传感器被用于机器人等的移动体的 姿态控制。如果建立了三个直角坐标轴,即X轴、Y轴和Z轴,则由 三个加速度传感器检测在这三个坐标轴方向上的加速度,并且由三个 角速度传感器检测环绕这三个坐标轴的角速度。环绕这些坐标轴的角从而计算出侧倾角(roll angle )、俯仰角(pitch angle)和横摆角 (yaw angle )。
在公开号为JP-A-2004-268730的日本专利申请中,公开了 一种通过使用从陀螺传感器输出的加速度数据和姿态数据执行姿态控制 的技术。
此外,在公开号为JP-A-11-316732的日本专利申请中描述了 一种技术,其中提供了执行操作的指定的执行命令,以及不执行任何 操作的指定的执行命令作为从主机发送到外围处理装置的命令,从而 仅在需要根据这两种类型的执行命令对操作进行变化时,能够改变所 述操作。
当使用加速度数据和/或姿态数据执行姿态控制时,存在对 姿态角的精度的要求,但是,因为这些姿态角是通过对时间积分获得 的,因此有时会发生由于误差的累积而导致的精度下降。因此,出现了在某些时刻将姿态角重新设定为0°或预定角度的要求。
此外,因为传感器的操作特性根据必须进行姿态控制的机器 人的类型,以及根据传感器的装配位置或装配方位而不同,所以可能 存在单独调节每个传感器的操作特性的需要。例如,理想的是将过滤 器的时间常数调整到最适当的值等等。
为了响应这种类型的需求,可考虑使机器人停止,并且在传 感器单元的特性已经改变之后再次重新启动机器人的操作;但是理想 的是能够在机器人的操作过程中改变传感器单元的特性而不发生迟 延。例如,当机器人执行一些特定操作时,因为在从传感器单元输出 的多个传感器输出中只有一些特定传感器输出是所需的,因此理想的 是能够将传感器单元直接转换为只发送那些传感器输出的特性。尽管 在上述公开号为JP-A-11-316732的日本专利申请中,也能够改变操作, 但是难以实时地改变操作。发明内容
本发明的目的是提供机器人控制系统和用于机器人的控制 方法,所述控制系统和控制方法能够改变直接安装在机器人内的传感 器单元的特性(或功能)。
根据本发明第一方案的机器人控制系统,包括主处理器,以 及将传感器输出发送到所述主处理器的传感器单元。传感器单元包括 处理器,以及包括用于存储规定处理器的操作的参数的第 一 区域和第二区域的存储器,除使用存储在存储器的第 一 区域或第二区域中的一 个内的参数,在预定期间内的发送期间中将传感器输出发送到主处理 器以外,处理器还在预定期间内余下的接收期间中接收来自主处理器 的更新参数,并且将它们存储在第 一 区域或第二区域中的另 一个内, 之后使用更新参数将传感器输出发送到主处理器。通过第一方案的机器人控制系统,传感器单元基于存储在存 储器的第一区域或第二区域的任一个内(例如,假定是第一区域)的 参数将传感器输出发送到机器人的主处理器,但是,当在预定期间的 接收期间中从主处理器接收到更新参数时,所述传感器单元将这些更 新参数存储在第二区域内。并且传感单元的处理器,不是基于存储在 第一区域内的参数(缺省参数),而是基于因而已经存储在第二区域内 的更新参数运行。通过在接收期间中,甚至是在机器人的操作过程中, 将更新参数从主处理器发送到传感器单元,并且通过将更新参数存储 在不同于存储器的第 一 区域的区域内,以及将参数从缺省值改变为更 新参数,能够非常迅速地改变传感器单元的特性或功能。在对已经存 储在第二区域内的更新参数进行操作的过程中,当从主处理器发送另 外的更新参数时,这次这些更新参数被存储在第一区域内。当这些新 的更新参数已经被存储时,传感器单元不是根据已经存储在第二区域 内的更新参数,而是根据因而已经存储在第 一 区域内的新的更新参数 运行。因此,通过按照交替和互补的方式使用存储器的第一区域和第 二区域,能够按需要实时地改变传感器单元的特性或功能。根据本发明的第二方案的控制方法用于机器人,所述机器人 包括主处理器,以及将传感器输出发送到主处理器的传感器单元。传 感器单元包括处理器和存储器,所述存储器包括用于存储规定处理器的操作的参数的第一区域和第二区域。控制方法包括使用存储在存 储器的第 一 区域或第二区域中的 一个内的参数,在预定期间内的发送
期间中,将传感器输出发送到主处理器;在预定期间内余下的接收期 间中,接收来自主处理器的更新参数,并且将更新参数存储在第一区 域或第二区域中的另一个内;之后,使用更新参数将传感器输出发送 到主处理器。根据本发明,能够直接改变安装在机器人内的传感器单元的 特性(或功能)。
从下列结合附图的示例性实施例的描述中,本发明上述和 另外的目的、特征和优点将变得明显,其中相同的附图标记用于表示 相同或相应的部分,并且其中
图1为根据本发明的实施例的机器人控制系统的示意性结构图2A和2B为数据发送和接收的时间图(timing chart);
图3为表示由CPU22接收到的数据的说明性图表;
图4为传感器单元的操作的第一说明性图表;
图5为传感器单元的操作的第二说明性图表;
图6为传感器单元的操作的第三说明性图表;
图7为传感器单元的操作的第四说明性图表;
图8为传感器单元的操作的第五说明性图表;以及图9为传感器单元的操作的第六说明性图表。
具体实施例方式在下文中,将参照附图对本发明的实施例进行说明。图1为根据本发明的实施例的机器人控制系统的示意性结 构图。设置有传感器单元10和作为机器人的主处理器的机器人CPU12, 并且通过串行数据线14将所述传感器单元10和机器人CPU12连接在 一起,从而能够彼此进行串行通信。应该理解的是,传感器单元10和 机器人CPU12所安装到的机器人可以是任何想要的类型;它可以是在 两个轮子上运行的机器人,在四个轮子上运行的机器人,两条腿行走 的机器人,飞行机器人等等中的任何一种。传感器单元10包括作为加速度传感器或角速度传感器等 的传感器15、 RAM16、 ROM18、驱动器20和CPU22。所述ROM18存储OS (操作系统)或写入了用于传感器单 元10的执行过程的程序。在所述程序中,包括有转换待发送到机器人 CPU12的传感器输出的种类或复位功能的参数,或设定内部过滤器等 的时间常数的参数。ROM18是可以被改写的非易失性存储器,诸如闪 存(flashROM)等。 RAM 16存储已经存储在ROM 18中的参数,换句话说,在 电源打开时的启动操作过程中,存储在ROM18中的参数被读出并被写 入(即,载入)到RAMI6中,然后通过读出写入在RAMI6内的参数
的特定区域。在这个实施例中,这个特定区域被称为"第一区域"。对于所述第一区域,其起始地址(物理地址)和结束地址可在RAM16 内预先固定地设定;或选择性地,它们是可变的。根据已经从RAM16读出的参数,CPU22从已经从传感器 15输入的多种类型的传感器输出中选出那些由所述参泰:设定的传感器 输出,并经由驱动器20将所述传感器输出发送到机器人CPU12。驱动 器20可以是,例如,RS-232C驱动器,但不局限于此;选择性地,所 述驱动器20可以是USB、 RS422、 IEEE1394等等。CPU22经由驱动 器20将传感器输出数据发送到串行线,但仅在发送期间发送该数据, 所述发送期间是预定控制期间的一部分。余下的预定控制期间被分配 为接收期间,在所述接收期间,CPU22经由串行数据线14接收已经从 机器人CPU12发送的数据。图2A和2B为表示在传感器单元10的CPU22和机器人的 CPU12之间执行的串行通信的时间图。图2A是从CPU22观察到的数 据发送过程中的时间图,而图2B是从CPU22观察到的数据接收过程 中的时间图。在图2A中,例如, 一个控制期间为10兆秒,并且这个控 制期间在时间上分割为发送期间和接收期间。在所述发送期间,CPU22 将传感器输出从传感器15串行地发送到机器人CPU12。发送的数据格 式包括发送模式和测量数据发送模式设定哪个传感器输出被发送, 而来自传感器15的实际传感器输出在测量数据中发送。发送模式被指 定为16比特,例如,每个比特可按以下设定
最低有效位(LSB):姿态角(侧倾角、俯仰角、横摆角)
比特l:角速度9比特2:加速度 比特3:倾角
比特4:重力补偿之后的加速度
比特5:速度
比特6:位置
比特7:姿态矩阵
比特8:姿态矩阵
比特9:姿态矩阵
比特10:姿态矩阵
比特11:未使用
比特12:单位温度
比特13:基底温度
比特14:诊断
比特15:计时
当这些比特中的任一个为'T,时,相应的数据被作为测量数据发 送。例如,当比特0(LSB)为'T,时,来自传感器15的姿态角数据
分辨出要从CPU22发送的数据。在图中,在发送期间内已经从CPU22 发送出的数据被表示为发送数据100。
另 一方面,如图2B所示,除发送期间以外的控制期间的余下部分被分配为接收期间,并且机器人CPU12在该时刻将数据发送到 串行数据线14。并且,在这个时刻,CPU22接收已经从机器人CPU12 发送出的数据。在图中,已经从机器人CPU12发送出的数据被表示为 接收到的数据200。在所述接收期间,当CPU22接收来自机器人CPU12 的数据时,所述CPU22将接收到的数据存储在RAM16内。接收到的 数据200 ^皮存储在其中的区域为不同于第一区域的第二区域。第二区 域的起始地址可以是第一区域的结束地址之后的下一个地址,或是从 那里间隔预定数量的存储地址。如果待发送的数据的数量大,那么机 器人CPU12可将这个数据分割为分布在多个控制期间的包,并且可连 续地对其进行发送。CPU22连续地接收所述数据,并将其存储在 RAM16的第二区域内。从机器人CPU12发送的数据是传感器单元10 的更新参数和控制命令。
图3示出了在控制期间的接收期间内从机器人CPU12顺序 发送到CPU22的一系列数据。机器人CPU12在传感器单元10的参数 将要被更新的时刻发送转换命令202。 一旦CPU22接收到这个转换命 令202,则所述CPU22将写入RAM16的起始地址位置设定为第二区 域的起始地址。并且继续将从机器人CPU12接收到的数据200顺序写 入到RAM16的第二区域中。当CPU22已经接收到全部接收数据200 并已经完成将其写入到RAM16中时,所述CPU22将从RAM16读出 的地址从第 一 区域转换到第二区域,并将存储在第二区域内的数据作 为新参数而执行。转换命令的一个实例是"SET"命令,并且,在SET 命令之后,机器人CPU12设定数据的数目(设定位置)和更新参数并将它们发送到传感器单元10。传感器单元10的CPU22翻译"SET" 命令,并将更新参数存储在RAM16的第二区域内。
图4至9示出了传感器单元10的操作的时间序列。图4为 当电源打开时的操作。CPU22读出存储在ROM18内的缺省参数,并 将所述缺省参数载入RAMI6的第一区域16a中。
图5是运行期间的处理过程。CPU22根据存储在RAM16的 第一区域16a中的参数将传感器输出从传感器15发送到机器人 CPU12。如果缺省参数为发送模式的最低有效位、第一比特和第二比 特全部是'T,,那么,根据这些参数,CPU22将姿态角数据、角速度 数据和加速度数据从传感器15发送到机器人CPU12。
图6是参数更新期间的处理过程。CPU22根据上述已经存储 在RAM16的第一区域16a中的缺省参数发送传感器输出,但是,在控 制期间的接收期间内,当从机器人CPU12接收到转换命令202时,则 将跟随转换命令202的接收数据写入到RAM16的第二区域16b中。在 将所述接收数据写入到第二区域i6b中的期间,根据缺省参数执行到 机器人CPU12的数据的发送。作为实例,为了通过最低有效位、第一 比特和第二比特表示发送参数,"111"的发送参数(缺省参数)存储 在RAM16的第一区域16a中,并且"100"的发送参数(更新参数) 存储在RAM16的第二区域16b中。
图7是参数更新已经完成之后的处理过程。CPU22将读出 RAM16的区域从第一区域16a转换到第二区域16b,并且根据存储在 第二区域16b内的更新参数执行处理过程。如果更新参数为上述的 "100",则从下一个控制期间开始,CPU22将加速度数据发送到机器人CPU12,但是不发送姿态角数据和角速度数据。此外,如果更新的细节为使姿态角复位,则机器人CPU12将复位值设定为接收数据200, 并且将复位命令作为更新命令204发送。根据所述复位命令,CPU22 从RAM16的第二区域16b读出复位值,并且使传感器15复位。
图8是关断电源时的操作。CPU22将已经存储在RAM16的 第二区域16b中的更新参凄t写入到ROM18中。如图4所示,下次打开 电源时,已经存储在ROM18中的更新参数被作为缺省参数读出,并且 载入到RAM16的第一区域16a中。
另一方面,在根据已经存储在如图7所示的第二区域中的更 新参数执行处理的过程中,有时可能发生其它更新参数也从机器人 CPU12被发送的情况。图9示出了这种情况下的处理过程。CPU22根 据已经存储在第二区域16b中的更新参数执行处理过程。在此时,当 在接收期间接收到新的转换命令和更新参数时,所述新的更新参数立 刻顺序储存在第一区域16a中。并且,在全部更新参数已经存储在第 一区域16a中之后,CPU22再次将读出RAM16的区域从第二区域16b 转换到第一区域16a,并且根据已经存储在第一区域16a中的更新参数 执行处理过程。通过像这样以交替方式使用第一区域16a和第二区域 16b,能够在任意时候,甚至在传感器单元10的操作过程中转换参数。 如果存储有将用于操作的参数的RAM16中的区域被称为活动区域,那 么,在某些时刻,第一区域16a是活动区域而第二区域16b是非活动 区域,更新参数存储在非活动区域中;并且,在存储全部更新参数的 布置已经完成之后,第二区域16b转换到活动区域,而第一区域16a 转换到非活动区域;并且随后重复相同的处理过程。在操作所需的全 部更新参数已经被存储之后,立即进行活动区域和非活动区域之间的转换,并且根据更新参数的数据发送从紧跟着的后续发送时刻开始进 行。应该理解的是,如果不能够在由CPU22进行的计算过程中分配工作,或者如果在由RS-232C等进行的通信过程中,没有剩余时间可用, 则从后续发送帧开始执行根据更新参数的数据发送。尽管非活动区域但是同样可以接受的是,通过将存储在活动区域中的参数复制到这个 区域作为预备区域来安排使用这些参数。
如上所述,通过这个实施例,即使当才几器人运行时,机器人 CPU12也能够在控制期间内的接收期间中将更新参数和更新命令发送 到传感器单元10,并且传感器单元10能够将更新参数存储在RAM16 的不同区域中,并且在接收到更新命令触发时,执行从缺省参数转换 到更新参数的处理过程;并且相应地能够迅速地改变传感器单元10的 特性或功能,而且是通过简单和容易的方式进行的。
当反复地执行这种改变时,在已经将主处理器的操作区域转 换到新的活动区域之后,为了保持参数的先前变化的历史记录,立即 将其内容复制到非活动区域中。由于参数的下一次变化被加入和写入 已经进行了复制的非活动区域的这一事实,因此参数变化的历史记录 得到了保持。此处,不需要将活动区域中的全部数据复制到非活动区 域;由于可以获得相同的有益效果,因此理想的是通过仅对已经变化 的区域进行复制来缩短操作所需时间。
应该理解的是,对于机器人控制等,需要传感器内部的计算 速度应该非常快,并且应该相对于时间精确地进行计算。例如,当通 过角速度计算角度时,通过对来自角速度传感器的输出进行积分来获取角度,但这必须在序列n, n+l, n+2,…中精确地执行,处理不连 续数据的积分期间At是精确的。另一方面,接收传感器数据的输出和 设定的变化的通信需要相当大量的时间,而且还根据数据和通信环境 的内容波动。因此,在接收到来自主处理器的参数设定的同时,传感 器侧上的计算处理过程的细节改变,然后计算期间和计算时刻被打乱, 因而失去数据的精度。例如,At可能不再是常数,或者在数据处理步 骤如n, n+l, n+3,…中可能出现遗漏。但是,由于才艮据本发明,能 够通过传感器内部的时刻判定根据参数的变化的实际操作的时刻,因 此能够保持计算期间和计算时刻恒定。此外,尽管由于参数不确定, 需要在参数的变化过程中暂停计算直至参数的变化确定,但是通过根 据本发明的方法,使用最近建立的第一区域16a中的参数执行内部计 算,并且在变化过程中参数被写入到第二区域16b中。由于通过使用 变化后的参数已经在下一个计算时刻内建立于其中的第二区域16b,能 够在防止计算时间中的延迟或停止的同时连续地执行计算,因此能够 获得适合于实时控制的传感器输出。
本发明不应^^皮理解为限于上述实施例;存在多种替换的可能 性。例如,通过这个实施例,尽管考虑到更新参数中数据的数量,更 新参数被分割为包,并且这些包在多个控制期间内发送,但是也可以 接受的是,在单个控制期间内的接收期间中安排发送更新参数。
此外,如图3所示,尽管在这个实施例中,在更新参数(接 收数据200的内容是更新参数)之前和之后发送转换命令202,但是不 发送任何转换命令202也是可以接受的。如果在接收期间存在已经从 机器人CPU12发送的数据,则CPU22通过将数据写入到RAM16的第 二区域16b中,将参数从缺省值转换为更新参数。
此外,如图8所示,尽管在这个实施例中,当电源关闭时,已经存储在RAM 16的第二区域16b中的更新参数被写入到ROM 18中,写入到ROM18中也是可以接受的。
通过所述实施例的机器人控制系统,几乎能够实时地实现传 感器单元10的特性或更能。如果周期性地或在机器人停止操作期间执 行姿态角的复位,那么机器人CPU12在控制期间的接收期间或在机器 人停止运行期间,周期性地发送复位命令。CPU22接收这个复位命令, 并且将传感器15的姿态角输出复位到零。传感器单元IO设置有机器 人停止运行期间的自动补偿功能,并且当设定参数时,不管这个功能 是有效还是无效,机器人CPU12都根据来自使用者的命令发送更新参 数。CPU22将缺省参数(功能无效)转换为更新参数(功能有效),并 且随后,每当所述CPU22检测到机器人停止时,它都会自动地执行用 于机器人的零点输出补偿等。
权利要求
1、一种机器人控制系统,包括用于机器人的主处理器,以及将传感器输出发送到所述主处理器的传感器单元,其特征在于所述传感器单元包括处理器;及存储器,其包括用于存储规定所述处理器的操作的参数的第一区域和第二区域,及除使用存储在所述存储器的所述第一区域和所述第二区域中的一个内的所述参数,在预定期间内的发送期间中将所述传感器输出发送到所述主处理器以外,所述处理器还在所述预定期间内余下的接收期间中接收来自所述主处理器的更新参数,并且将所述更新参数存储在所述第一区域和所述第二区域中的另一个内,之后使用所述更新参数将所述传感器输出发送到所述主处理器。
2、 如权利要求1所述的机器人控制系统,其中所述处理器在多个 所述预定期间内顺次接收所述更新参数的包,并且顺次将它们存储在 所述存储器内。
3、 如权利要求1所述的机器人控制系统,其中所述处理器将存储 在所述存储器内的所述更新参数存储在非易失性存储器中,并且,在 下次启动时,读出所述更新参数并将它们存储在所述存储器内。
4、 如权利要求1所述的机器人控制系统,其中所述主处理器在将 所述更新参数发送到所述传感器单元之前,发送转换命令。
5、 如权利要求1所述的机器人控制系统,在所述更新参数的存储 过程中,所述处理器通过使用存储在所述存储器的所述第一区域或所述第二区域中的一个内的所述参数,发送所述传感器输出。
6、 如权利要求1所述的机器人控制系统,其中在所述更新参数的 存储过程完成之后,所述处理器将用于读出待发送到所述主处理器的 所述传感器输出的区域转换到所述第 一 区域和所述第二区域中的另一个。
7、 如权利要求6所述的机器人控制系统,其中当所述处理器转换 用于读出所述传感器输出的区域时,所述更新参数被复制到所述第一 区域和所述第二区域中的 一个。
8、 如权利要求1所述的机器人控制系统,其中当电源断开时,所 述处理器将所述更新参数存储在所述非易失性存储器中。
9、 一种用于机器人的控制方法,所述机器人包括用于机器人的主 处理器,以及将传感器输出发送到所述主处理器的传感器单元,其中 所述传感器包括处理器以及存储器,所述存储器包括用于存储规定所 述处理器的操作的参数的第 一 区域和第二区域,所述控制方法的特征 在于包括使用存储在所述存储器的所述第一 区域和所述第二区域中的一个 内的所述参数,在预定期间内的发送期间中,将所述传感器输出发送 到所述主处理器;在所述预定期间内余下的接收期间中,接收来自所述主处理器的 更新参数,并且将所述更新参数存储在所述第一区域和所述第二区域 中的另一个内;及在存储所述更新参数之后,使用所述更新参数将所述传感器输出 发送到所述主处理器。
全文摘要
在机器人操作过程中,传感器单元(10)的CPU(22)在控制期间内的发送期间中将传感器(15)的传感器输出发送到机器人CPU(12)。在所述控制期间内余下的发送期间中,所述机器人CPU(22)将更新参数发送到所述机器人CPU(12)。所述CPU(22)接收这些更新参数,并将它们写入RAM(16)的存储区域中的第二区域,所述第二区域不同于在其中设定了缺省参数的第一区域。并且,一旦进一步接收到来自所述机器人CPU(22)的更新命令,所述CPU(22)执行将所述参数从缺省值转换到已经存储在所述第二区域中的所述更新参数的处理过程。
文档编号G08C15/06GK101233460SQ200680028295
公开日2008年7月30日 申请日期2006年8月1日 优先权日2005年8月1日
发明者杉原久义, 藤吉基弘, 野野村裕 申请人:丰田自动车株式会社