发明内容
考虑到上述问题而提出了本发明。本发明提供了一种运动控制部件、一种运动控制方法、一种机器人及一种运动控制系统。
根据本发明实施例的一方面,提供了一种运动控制部件,所述运动控制部件用于控制运动部件运动,所述运动控制部件包括相互连接的控制部和驱控部,
所述控制部包括用于预存波表数据的第一存储部,所述波表数据通过对用于控制所述运动部件运动的运动参数序列进行解算获得;
所述驱控部用于自所述第一存储部读取所述波表数据,并基于所述波表数据驱动所述运动部件运动。
示例性地,第一存储部包括缓冲器和波表存储器,
所述缓冲器用于缓存波表数据;
所述波表存储器与所述缓冲器连接,用于在所述缓冲器写满时,存储所述缓冲器中缓存的所有数据以使所述缓冲器清空。
示例性地,控制部还包括:
数据接收部,用于接收运动参数序列;
第二存储部,与所述数据接收部连接,用于存储所述运动参数序列;以及
解算单元,分别与第二存储部、第一存储部连接,用于自所述第二存储部读取所述运动参数序列,并对所述运动参数序列进行解算,以获得所述波表数据。
示例性地,解算单元具体用于每次自所述第二存储部读取运动参数序列中的预定数目的运动参数并对读取的预定数目的运动参数进行解算。
示例性地,缓冲器与解算单元连接,所述缓冲器具体用于在所述解算单元每次解算预定数目的运动参数之后,将解算出的波表数据进行缓存。
示例性地,控制部还用于响应于触发指令的接收,将波表数据输出至所述驱控部。
示例性地,运动控制部件还包括:
触发部,与控制部连接,用于基于用户操作向所述控制部发送触发指令。
示例性地,控制部还用于自控制设备接收触发指令。
示例性地,驱控部包括:
波形产生部,与控制部连接,用于基于波表数据生成对应的波形数据;以及
驱动部,与波形产生部连接,用于基于所述波形数据驱动运动部件运动。
根据本发明实施例的再一方面,还提供了一种运动控制方法,应用于运动控制部件,所述运动控制部件包括相互连接的控制部和驱控部,所述控制部包括用于预存波表数据的第一存储部,所述波表数据通过对用于控制运动部件运动的运动参数序列进行解算获得,所述运动控制方法包括:
利用所述驱控部自所述第一存储部读取所述波表数据;以及
利用所述驱控部基于所述波表数据驱动所述运动部件运动。
示例性地,第一存储部包括相互连接的缓冲器和波表存储器,在利用所述驱控部自所述第一存储部读取所述波表数据之前,运动控制方法还包括:
利用所述缓冲器缓存所述波表数据;
利用所述波表存储器在所述缓冲器写满时,存储所述缓冲器中缓存的所有数据以使所述缓冲器清空。
示例性地,控制部包括数据接收部、与数据接收部连接的第二存储部以及分别与第二存储部、第一存储部连接的解算单元,在利用所述驱控部自第一存储部读取波表数据之前,运动控制方法还包括:
利用所述数据接收部接收运动参数序列;
利用所述第二存储部存储所述运动参数序列;以及
利用所述解算单元自所述第二存储部读取所述运动参数序列,并对所述运动参数序列进行解算,以获得所述波表数据。
示例性地,利用解算单元自第二存储部读取运动参数序列,并对所述运动参数序列进行解算,以获得所述波表数据包括:
利用所述解算单元每次自所述第二存储部读取所述运动参数序列中的预定数目的运动参数并对读取的预定数目的运动参数进行解算。
示例性地,缓冲器与解算单元连接,利用所述缓冲器缓存波表数据包括:
利用所述缓冲器在所述解算单元每次解算预定数目的运动参数之后,将解算出的波表数据进行缓存。
示例性地,在利用驱控部自第一存储部读取波表数据之前,运动控制方法还包括:
利用控制部响应于触发指令的接收,将所述波表数据输出至所述驱控部。
示例性地,运动控制部件还包括与控制部连接的触发部,在利用控制部响应于触发指令的接收,将波表数据输出至驱控部之前,运动控制方法还包括:
利用所述触发部基于用户操作向所述控制部发送所述触发指令。
示例性地,在利用控制部响应于触发指令的接收,将波表数据输出至驱控部之前,运动控制方法还包括:
利用所述控制部自控制设备接收所述触发指令。
示例性地,驱控部包括相互连接的波形产生部和驱动部,利用驱控部基于波表数据驱动运动部件运动包括:
利用所述波形产生部基于所述波表数据生成对应的波形数据;以及
利用所述驱动部基于所述波形数据驱动所述运动部件运动。
根据本发明实施例的另一方面,还提供了一种机器人,所述机器人包括上述的运动控制部件。
根据本发明实施例的又一方面,还提供了一种运动控制系统,所述运动控制系统包括控制设备和上述的运动控制部件,所述运动控制部件用于自所述控制设备接收运动参数序列。
根据本发明实施例的运动控制部件、运动控制方法、机器人及运动控制系统,采用第一存储部预存解算出的波表数据,使得驱控部可以在需要控制运动部件运动时直接读取预存的波表数据,而无需用户每次都重新配置运动参数。也就是说,这种方案使得用户一次配置的运动参数可供多次使用,因此可以有效节省操作时间,大大提高工作效率,并且有助于支持运动部件所在设备(例如机器人)离线工作。这种方案可以更好满足用户需求,可以有效提升用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
本文描述的运动控制系统可以包括控制设备和运动控制部件。控制设备是用于与运动控制部件通信,控制运动控制部件实现其对运动部件的控制功能的设备。运动控制部件是用于控制运动部件运动的设备。
运动控制部件是实现运动控制的核心部件,比如机器人的运行就需要通过运动控制部件控制机器人的运动部件来带动机器人运动。本文描述的运动控制部件可以是单轴驱控器、多轴驱控器等各种类型的驱控器。本文描述的运动部件可以仅仅是电机,也可以是电机结合减速器,还可以是电机结合丝杠等。
本文描述的控制设备可以是任何合适的具备数据处理能力和/或指令执行能力的计算设备,其可以采用例如计算机、移动终端(例如手机、平板电脑)等实现。例如,控制设备可以是上位机、示教器等。示例性地,本文描述的控制设备可以通过显示器向用户提供控制界面,即人机交互界面,用户可以利用该控制界面实现对运动控制部件的管理和控制。此外,示例性地,本文描述的控制设备还可以安装有控制软件,用于实现与控制界面相关的算法功能。
本文描述的机器人可以是自动执行工作的机器装置。机器人可以包括机器人本体、末端执行器(或称为工具)。本体可以包括多个关节,例如基座、大臂、小臂、腕等。末端执行器例如是一个可以开合的夹爪/物体夹持部,也可以是其他操作工具。末端执行器由控制设备控制按照相应路线运动并完成预定的动作。具体例如,末端执行器受控制设备的操控,实现在三维的空间中运动,并且在指定的位置执行相关动作,例如抓取、释放或其他动作。本文描述的机器人可以是四轴机器人、H2型平面门架机器人等各种构型的机器人。
根据本发明实施例的运动控制部件、运动控制方法和运动控制系统并不局限于对机器人的控制。例如,运动控制部件可以用于控制和驱动运动部件(例如电机等),而运动部件既可以用在机器人产品上,也可以用在非机器人产品上。例如,流水线上的传输带是用许多电机实现驱控的,运动控制部件可以实现对这类电机的驱控。总之,根据本发明实施例的运动控制部件、运动控制方法和运动控制系统可以应用于任意机器人或其他具有运动部件的设备的控制领域。
图1示出了现有技术的运动控制系统100的示意性框图。如图1所示,运动控制系统100包括控制设备110、控制器局域网络(Controller Area Network,CAN)数据线120、和用于控制运动部件140的运动控制部件130。运动控制部件130包括有控制部131、波形产生部132、驱动部133。运动控制系统100可以包含一个或多个运动控制部件130。每个运动控制部件130可以用于控制一个或多个运动部件140运动。需注意,图1仅是示例,图1所示的“运动部件1”和“运动部件N”仅用于区分不同运动控制部件所对应的运动部件,其并不包含数目信息。例如运动部件1的数目可以是一个或多个,运动部件N的数目也可以是一个或多个。
所述控制设备110可以是示教器,还可以是安装有上位机软件的电脑,还可以是安装有APP的移动终端等,以实现人机交互,使得用户可以通过控制设备110配置运动参数、控制运动部件的运行状态、查看运动曲线等。
所述CAN数据线120实现控制设备110和运动控制部件130之间的通信,CAN总线是一种标准总线,广泛应用于汽车电子、工业控制、运动控制等领域,CAN总线数据具有固定的格式,CAN数据线120可以是双绞线或同轴线等。
所述运动控制部件130用于对控制设备110发送来的运动参数进行解算,得到实际的电机控制数据(一般为PWM波),通过调整PWM波的周期和占空比等调节运动部件140的运行状态。运动控制部件130包括控制部131、波形产生部132和驱动部133。
控制部131用于对运动参数进行解算,以将运动参数解算为对应的波表数据。
波形产生部132是一种PWM波形发生器,例如由现场可编程门阵列(FPGA)芯片实现的PWM波形发生器。波形产生部132可以根据控制部131产生的波表数据生成对应的PWM波形数据。
控制部131和波形产生部132也可以是一个部件,例如可由一片内嵌有ARM内核的FPGA芯片实现,该芯片既可以实现控制部131的功能、同时又可以实现波形产生部132的功能。
驱动部133是运动部件140的驱动单元,可以根据波形产生部132产生的PWM波形数据驱动运动部件140运动。
用户通过控制设备110配置好运动参数后,可以通过CAN数据线120发送到运动控制部件130中。运动控制部件130中的控制部131将接收到的运动参数解算为波表数据,波形产生部132则根据解算得到的波表数据生成一组PWM波形数据,而驱动部133则根据PWM波形数据驱动运动部件140运动。
运动部件140具有一定的带负载能力。例如在机器人上,通常在电机的输出轴上安装减速器,然后在减速器的输出轴上安装机器人的臂结构,运动部件140包括所述电机和减速器。电机的运转带动减速器运转,进而带动机器人的臂结构运动。运动部件140的带负载能力具体受驱动部133的控制。驱动部133产生的驱动电流大小不同、那么运动部件140的带负载能力不同。
上述运动控制系统100可以用于控制一个或多个机器人。如图1所示,该运动控制系统100包括多个运动控制部件130。每个运动控制部件130用于控制一个或多个运动部件140。在一个示例中,每个运动控制部件130都控制多个运动部件140,且所有运动控制部件130所控制的运动部件140的数目相同。这些运动控制部件130可以设置在一个或多个机器人上,以相应地控制这些机器人上设置的运动部件140。每个运动部件140可以驱动机器人的一个关节。例如一个四轴运动控制部件可以设置在一个四轴机器人上,以驱动该四轴机器人。四轴机器人具有四个关节,分别对应一个运动部件140。该四轴机器人工作时需要四个运动部件140在该四轴运动控制部件的控制下协同工作,以共同驱动该四轴机器人运动。在一个示例中,运动控制系统100中包括多个四轴运动控制部件。
对于上述运动控制系统100来说,通常机器人的每一个动作都需要用户通过控制设备输入运动参数,以用于运动控制部件据此控制机器人运动,
即目前对机器人的控制都是“即用即解算”。这就导致每次控制运动部件运动之前均需要配置运动参数,不仅耗时,而且使得运动部件所在设备(比如机器人)无法进行离线工作,限制了运动部件所在设备的使用场所,无法满足用户的需求,同时也造成用户体验比较差。
为了至少部分地解决上述问题,本发明实施例提供一种运动控制部件。所述运动控制部件用于控制运动部件运动,所述运动控制部件包括相互连接的控制部和驱控部。控制部包括用于预存波表数据的第一存储部,所述波表数据通过对用于控制所述运动部件运动的运动参数序列进行解算获得;所述驱控部用于自所述第一存储部读取所述波表数据,并基于所述波表数据驱动所述运动部件运动。
为了更清楚地说明本发明,图2示出了根据本发明一个实施例的运动控制部件200的示意性框图。应注意,图2所示的运动控制部件200仅是示例而非对本发明的限制,根据本发明实施例的运动控制部件200的结构和工作方式可以具有其他的替代性实现方案,而不局限于图2所示的具体示例。例如,触发部230是可选的,运动控制部件200可以不包括触发部230。
如图2所示,运动控制部件200可以包括控制部210和驱控部220。其中控制部210可以包括第一存储部218。第一存储部218与驱控部220连接,其可以预存基于运动参数序列解算出的波表数据。
第一存储部218可以采用任何合适的存储介质实现。示例性地,第一存储部218可以采用非易失性存储器和/或易失性存储器实现,例如,第一存储部218可以包括只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、随机存取存储器(RAM)之一或者上述存储介质的任意组合。
本文所述的运动参数是用于控制运动部件运动的数据。运动参数的内容可以根据运动部件(例如电机)的实际构成不同而有所不同。示例性地,运动参数可以包括位置数据、速度数据和时间数据中的一项或多项。所述位置数据可以是空间直角坐标系中的坐标数据,也可以是旋转角度或其他与位置相关的数据。位置数据是空间直角坐标系中的坐标数据的情况下,运动参数可以称为LVT参数。位置数据是旋转角度的情况下,运动参数可以称为PVT参数。LVT参数可以包括空间直角坐标系中的坐标(可以称为X、Y、Z)和到达相应坐标点的时间(可以称为T)。PVT参数可以包括旋转角度(可以称为P)、旋转速度(可以称为V)、旋转时间(可以称为T)。
本文所述的运动参数序列是由多于一条的运动参数按照顺序排列组成的队列。在控制机器人运动时,运动参数序列内的运动参数可以按照排列的顺序来执行。可以理解,用户可以利用控制设备一次编辑一条或多条运动参数,并按照顺序组成运动参数序列发送给运动控制部件200,由所述运动控制部件200将所述运动参数序列解算为波表数据,然后将波表数据存储在第一存储部218。这种方案可以解决每次控制运动部件运动之前均需要配置运动参数的问题。
根据本发明实施例的运动控制部件,采用第一存储部预存解算出的波表数据,使得驱控部可以在需要控制运动部件运动时直接读取预存的波表数据,而无需用户每次都重新配置运动参数。也就是说,这种方案使得用户一次配置的运动参数可供多次使用,因此可以有效节省操作时间,大大提高工作效率,并且有助于支持运动部件所在设备(例如机器人)离线工作。这种方案可以更好满足用户需求,可以有效提升用户体验。
此外,在很多运动控制场景下,用户需求比较单一,例如仅需要机器人重复执行某一个或者某几个固定的动作。在这种场景下,每次执行动作之前均配置运动参数的现有方案显然是非常低效的。而对于这种用户需求为使机器人执行固定动作的情况,根据本发明实施例的运动控制部件尤其适用,可以显著地提高工作效率。
示例性地,第一存储部可以包括缓冲器和波表存储器,所述缓冲器用于缓存所述波表数据;所述波表存储器与所述缓冲器连接,用于在所述缓冲器写满时,存储所述缓冲器中缓存的所有数据以使所述缓冲器清空。
如图2所示,第一存储部218可以包括缓冲器2182和波表存储器2184。缓冲器2182可以是任何能够缓存数据的存储器,例如静态随机存取存储器(SRAM)等。波表存储器2184可以是任何能够满足运动控制部件的波表数据存储需求的存储器。与缓冲器2182不同,波表存储器2184能够在预定时间内比较稳定地存储波表数据。在一个示例中,波表存储器2184可以是非易失性存储器,例如ROM等,这样波表存储器2184可以永久性存储波表数据,便于支持运动部件所在设备(例如机器人)长期离线工作。在另一个示例中,波表存储器2184也可以是易失性存储器,例如RAM等,这样波表存储器2184可以至少在运动控制部件上电期间存储波表数据,也可以支持运动部件所在设备(例如机器人)在一定时间内离线工作。
可以理解,运动控制部件将运动参数序列解算为波表数据后,可以首先将波表数据写到缓冲器,这样可以提高写入速度,减少波表存储器的写入次数,从而可以大大提升存储效率。同时,波表存储器可以永久或在一定时间内存储波表数据,便于支持运动部件所在设备(例如机器人)离线工作。
示例性地,波表存储器可以是双倍速率同步动态随机存取存储器。
可以理解,双倍数据率同步动态随机存取存储器(Double Data RateSynchronousDynamic Random Access Memory,简称DDR SDRAM)为具有双倍数据传输率的SDRAM,其数据传输速度为系统时钟频率的两倍,由于速度增加,其传输性能优于传统的SDRAM。此外,在采用DDR SDRAM存储波表数据的情况下,由于数据传输速度上的优越性能,使得对运动参数序列或者波表数据进行较精细的插值成为可能,从而有利于提高运动部件运动的平滑性。
示例性地,控制部还可以包括数据接收部、第二存储部和解算单元。数据接收部用于接收运动参数序列。第二存储部与所述数据接收部连接,用于存储所述运动参数序列。解算单元分别与所述第二存储部、第一存储部连接,用于自所述第二存储部读取所述运动参数序列,并对所述运动参数序列进行解算,以获得所述波表数据。
如图2所示,控制部210可以包括数据接收部212、第二存储部214、解算单元216。可选地,数据接收部212可以经由上述CAN总线或者其他类型的通信装置自控制设备接收运动参数序列,并可以将所述运动参数序列存储在第二存储部214。解算单元216自第二存储部214读取所述运动参数序列,并对所述运动参数序列进行解算,得到波表数据。然后解算单元216可以将所述波表数据输出给上述第一存储部218进行存储。
第二存储部214是可选的,数据接收212可以不经过第二存储部214而直接将接收的运动参数序列发送给解算单元216。
第二存储部214可以包括缓冲器(未示出)和/或参数存储器。为了区分,可以将第一存储部218中的缓冲器2182称为波表缓冲器,将第二存储部214中的缓冲器称为参数缓冲器。参数缓冲器可以是任何能够缓存数据的存储器,例如静态随机存取存储器(SRAM)等。参数存储器可以是任何能够满足运动控制部件的运动参数存储需求的存储器。与参数缓冲器不同,参数存储器能够在预定时间内比较稳定地存储运动参数。在一个示例中,参数存储器可以是非易失性存储器,例如ROM等,这样参数存储器可以永久性存储运动参数,便于支持运动部件所在设备(例如机器人)长期离线工作。在另一个示例中,参数存储器也可以是易失性存储器,例如RAM等,这样参数存储器可以至少在运动控制部件上电期间存储运动参数,也可以支持运动部件所在设备(例如机器人)在一定时间内离线工作。
第二存储部214可以存储运动参数序列,这样运动控制部件可以一次接收用户通过控制设备配置的大量运动参数,可以进一步支持运动部件所在设备(例如机器人)离线工作。另外,这种方案也可以方便解算单元216根据需要随时获取运动参数,在无需获取运动参数时,可以存储在第二存储部214。
示例性地,解算单元具体用于每次自第二存储部读取运动参数序列中的预定数目的运动参数并对读取的预定数目的运动参数进行解算。
解算单元216可以每次自第二存储部214读取运动参数序列中的预定数目的运动参数进行解算,所述预定数目可以是任意合适的值,其可以根据需要设定。例如,预定数目可以是两条、三条、五条等等。所述预定数目的运动参数为相邻的运动参数。比如预定数目为两条时,解算单元216可以每次自第二存储部214读取运动参数序列中的两条相邻运动参数并对读取的两条相邻运动参数进行解算。解算单元216读取相邻运动参数可以确保运动参数的正确顺序,达到准确控制的目的。
解算单元216可以根据自身解算能力分批读取合适数目的运动参数进行解算,采用上述第二存储部214的实施例可以利用该第二存储器214暂时存储运动参数,以帮助解算单元216更好地协调其解算工作。
示例性地,第一存储部218的缓冲器2182与解算单元216连接,缓冲器2182具体用于在所述解算单元216每次解算预定数目的运动参数之后,将解算出的波表数据进行缓存。
解算单元216解算运动参数后首先输出到缓冲器2182,可以增加写入速度,提高写入效率。
示例性地,控制部210还可以用于响应于触发指令的接收,将所述波表数据输出至驱控部220。
控制部210可以依赖于触发指令控制波表数据的发送。示例性地,触发指令可以包括数据信息和/或时间指示信息。在触发指令仅包括时间指示信息的情况下,可以将第一存储部218预存的所有波表数据或者该波表数据中的默认部分输出至驱控部220。
所述数据信息可以是关于预计输出至驱控部220的指定数据的信息,所述指定数据是波表数据中的至少一部分数据。也就是说,数据信息可以指定需要输出到驱控部220的数据是哪些。
在一个示例中,所述时间指示信息可以是具体时间信息,所述具体时间信息是关于将波表数据输出至所述驱控部220的具体时间的信息,其可以是一个时间点或从当前时刻开始计算的一个时间段。在另一个示例中,所述时间指示信息可以是触发发送信息,所述触发发送信息是用于指示在当前时刻、或在当前时刻之后的预设时段内、或在当前时刻之后经过预设时段时将波表数据输出至驱控部220的信息。所述触发发送信息不指定具体的时间点或时间段,其可以是例如一个简单的电脉冲信号。
控制部210的解算单元216可以将运动参数解算为波表数据,并将波表数据存储在第一存储部218中的缓冲器2182中,在所述缓冲器2182写满时,波表存储器2184可以存储所述缓冲器2182中缓存的所有数据。响应于触发指令的接收,控制部210可以将波表存储器2184中的一部分或全部波表数据输出至驱控部220。
基于触发指令可以准确地控制波表数据的输出,提高运动控制的准确性。此外,这种方案给予用户较大的自由度,可以方便用户在需要时控制波表数据的输出以驱动运动部件运动。
示例性地,触发指令可以通过对运动控制部件200上的硬件部件执行操作而生成,也可以由运动控制部件200自诸如控制设备的外部设备接收获得,还可以通过其他合适的方式获得。
在一个实施例中,运动控制部件还可以包括触发部。触发部与所述控制部连接,用于基于用户操作向所述控制部发送触发指令。
继续参考图2,示出了触发部230。示例性地,触发部230可以是任意合适的能够在用户对其进行操作时发出相应信号的部件。例如,触发部230可以是按钮开关,用户推动该按钮开关时,该按钮开关可以相应地发出电信号。在这种情况下,触发指令可以可选地仅包括触发发送信息,即按钮开关发出的电信号。又例如,触发部230可以是触摸屏,用户可以通过与触摸屏交互输入触发指令。在这种情况下,触发指令可以包括数据信息和/或时间指示信息,其中时间指示信息可以是具体时间信息或触发发送信息。
可选地,触发部230可以仅仅用于控制波表数据的输出,也可以进一步具有其他附加功能,例如开启运动控制部件200的功能等。开启运动控制部件200是指为运动控制部件200接通电源,使得运动控制部件200中的各个部件能够开始工作。在触发部230具有开启运动控制部件200的功能的情况下,用户对触发部230执行操作,例如推动上述按钮开关,可以开启运动控制部件200并且触发波表数据输出至驱控部220。也就是说,运动控制部件200开启时,可以自动开始输出波表数据并驱动运动部件运动,这种工作方式可以进一步减少用户操作,提高工作效率。
触发部230发送触发指令给控制部210,控制部210可以根据触发指令,将波表存储器2184中存储的一部分或全部波表数据输出至驱控部220。
触发部230可以直接或间接触发波表数据输出至驱控部220。在一个示例中,控制部210还可以包括具有存储器控制能力的处理单元(未示出)。触发部230可以经由有线或无线通信方式将触发指令传输至处理单元。处理单元可以与第一存储部218连接,以控制第一存储部218的数据读取,例如控制波表数据至驱控部220的输出。在另一个示例中,解算单元216可以具有存储器控制能力。例如,触发部230可以经由有线或无线通信方式将触发指令传输至解算单元216。解算单元216可以控制第一存储部218的数据读取,例如控制波表数据至驱控部220的输出。在又一个示例中,触发部230可以与第一存储部218连接,触发部230可以本身具有存储器控制能力。触发部230可以控制第一存储部218的数据读取,例如向第一存储部218发送触发指令以控制波表数据至驱控部220的输出。
在本文中,控制部210将波表数据输出至驱控部220(即驱控部220自第一存储部218读取波表数据)的操作以及驱控部220基于波表数据驱动运动部件运动的操作可以视为对运动部件的运动控制操作。触发指令可以触发(或说启动)该运动控制操作,即,使得该运动控制操作开始执行。
采用触发部230,可以使得运动控制部件200自身具有接收用户操作信息并触发对运动部件的运动控制操作的能力,这样运动控制部件200可以无需从控制设备接收触发指令,使得运动部件所在设备可以进一步脱离控制设备离线工作。
在另一个示例中,控制部还可以用于自控制设备接收触发指令。
控制部210可以经由上述CAN数据线或其他类型的通信装置自控制设备接收触发指令,根据所述触发指令将波表存储器2184中存储的一部分或全部波表数据输出至驱控部220。
在一个示例中,控制部210还可以包括具有存储器控制能力的处理单元(未示出)。可选地,该处理单元可以与数据接收部212或运动控制部件所包括的附加的通信装置连接,并经由数据接收部212或附加的通信装置自控制设备接收触发指令。此外,处理单元可以与第一存储部218连接,以控制第一存储部218的数据读取,例如控制波表数据至驱控部220的输出。在另一个示例中,解算单元216可以具有存储器控制能力。解算单元216可以经由数据接收部212自控制设备接收触发指令。解算单元216可以控制第一存储部218的数据读取,例如控制波表数据至驱控部220的输出。
自控制设备接收触发指令,可以便于用户通过人机交互的方式启动对运动部件的运动控制。可以理解,触发指令通常无需频繁触发。例如,一次触发之后,驱控部220可以在较长时间内读取波表数据并驱动运动部件运动,甚至可以重复读取波表数据以驱动运动部件执行某些重复动作。因此,自控制设备接收触发指令的实现方案不会对运动部件所在设备的离线工作带来太大影响。
示例性地,驱控部可以包括波形产生器和驱动部。所述波形产生部与所述控制部连接,用于基于所述波表数据生成对应的波形数据。所述驱动部与所述波形产生部连接,用于基于所述波形数据驱动所述运动部件运动。
继续参考图2,驱控部220可以包括波形产生部222和驱动部224。图2中的波形产生部222、驱动部224的功能、位置与结构分别与以上运动控制系统100中的波形产生部132、驱动部133类似。为了简洁,在此不再赘述。
可以理解,控制部210可以将所述波表数据输出至驱控部220的波形产生部222,波形产生部222可以基于波表数据生成对应的波形数据,并将所述波形数据输出至驱动部224,驱动部224基于所述波形数据驱动所述运动部件运动。
下面整体描述运动控制部件200的示例性工作流程。用户可以利用控制设备一次编辑一条或多条运动参数,并按照顺序组成运动参数序列发送给运动控制部件200,运动控制部件200中的数据接收部212将接收的所述运动参数序列存储到第二存储部214。解算单元216每次自第二存储部214读取运动参数序列中的预定数目的运动参数并对读取的预定数目的运动参数进行解算,解算单元216每次解算预定数目的运动参数之后,将解算出的波表数据进行输出到缓冲器2182,在所述缓冲器2182写满时,波表存储器2184存储所述缓冲器2182中缓存的所有数据以使所述缓冲器2182清空。清空后的缓冲器2182继续缓存解算单元216解算出的波表数据,在所述缓冲器2182写满时,波表存储器2184再重复上述步骤存储缓冲器2182中缓存的所有数据。控制部210响应于触发部230发出的触发指令,将波表存储器2184中存储的波表数据输出至驱控部220的波形产生部222,波形产生部222基于波表数据生成对应的波形数据,并将所述波形数据输出至驱动部224,驱动部基于所述波形数据驱动运动部件运动。
根据本发明实施例的再一方面,还提供了一种运动控制方法,应用于运动控制部件,所述运动控制部件用于控制运动部件运动,所述运动控制部件包括相互连接的控制部和驱控部,所述控制部包括用于预存波表数据的第一存储部,所述波表数据通过对用于控制运动部件运动的运动参数序列进行解算获得。
图3示出了根据本发明一个实施例的运动控制方法300的示意性流程图。如图3所示,运动控制方法300包括如下步骤。
步骤S310,利用驱控部自第一存储部读取波表数据。
可以理解,第一存储部可以存储波表数据,驱控部根据控制需要可以自所述第一存储部读取波表数据。
步骤S320,利用驱控部基于波表数据驱动运动部件运动。
可以理解,基于步骤S310读取的波表数据,驱控部可以基于所述波表数据驱动运动部件运动。
根据本发明实施例的运动控制方法,采用第一存储部预存解算出的波表数据,使得驱控部可以在需要控制运动部件运动时直接读取预存的波表数据,而无需用户每次都重新配置运动参数。也就是说,这种方案使得用户一次配置的运动参数可供多次使用,因此可以有效节省操作时间,大大提高工作效率,并且有助于支持运动部件所在设备(例如机器人)离线工作。这种方案可以更好满足用户需求,可以有效提升用户体验。
示例性地,第一存储部包括相互连接的缓冲器和波表存储器,在利用驱控部自所述第一存储部读取波表数据之前,运动控制方法还包括利用所述缓冲器缓存所述波表数据;利用所述波表存储器在所述缓冲器写满时,存储所述缓冲器中缓存的所有数据以使所述缓冲器清空。
示例性地,控制部包括数据接收部、与数据接收部连接的第二存储部以及分别与所述第二存储部、所述第一存储部连接的解算单元,在利用驱控部自第一存储部读取波表数据之前,运动控制方法还包括:利用所述数据接收部接收所述运动参数序列;利用所述第二存储部存储所述运动参数序列;以及利用所述解算单元自所述第二存储部读取所述运动参数序列,并对所述运动参数序列进行解算,以获得所述波表数据。
示例性地,利用解算单元自第二存储部读取运动参数序列,并对所述运动参数序列进行解算,以获得波表数据包括利用所述解算单元每次自所述第二存储部读取所述运动参数序列中的预定数目的运动参数并对读取的预定数目的运动参数进行解算。
示例性地,缓冲器与解算单元连接,利用所述缓冲器缓存波表数据包括利用所述缓冲器在所述解算单元每次解算预定数目的运动参数之后,将解算出的波表数据进行缓存。
示例性地,在利用驱控部自第一存储部读取波表数据之前,运动控制方法还包括利用控制部响应于触发指令的接收,将所述波表数据输出至所述驱控部。
示例性地,运动控制部件还包括与控制部连接的触发部,在利用控制部响应于触发指令的接收,将波表数据输出至驱控部之前,运动控制方法还包括利用所述触发部基于用户操作向所述控制部发送所述触发指令。
示例性地,在利用控制部响应于触发指令的接收,将波表数据输出至驱控部之前,运动控制方法还包括利用所述控制部自控制设备接收所述触发指令。
示例性地,驱控部包括相互连接的波形产生部和驱动部,利用所述驱控部基于波表数据驱动所述运动部件运动包括利用波形产生部基于所述波表数据生成对应的波形数据;利用驱动部基于所述波形数据驱动运动部件运动。
根据本发明另一方面,还提供了一种机器人,所述机器人包括上述的运动控制部件200。
根据本发明又一方面,还提供了一种运动控制系统,所述运动控制系统包括控制设备和上述的运动控制部件200,所述运动控制部件200用于自所述控制设备接收运动参数序列。
为了更清楚地说明本发明,图4示出了根据本发明一个实施例的运动控制系统400的示意性框图。图4仅是运动控制系统400的一种示例,根据本发明实施例的运动控制系统的结构和工作方式可以具有其他的替代性实现方案,而不局限于图4所示的具体示例。例如,触发部436是可选的,运动控制部件430可以不包括触发部436。
如图4所示,运动控制系统400可以包括控制设备410和运动控制部件430。所述运动控制部件430的结构与工作方式与以上运动控制部件200类似,可以参考上文关于运动控制部件200的描述理解运动控制部件430。可选地,运动控制系统400还可以包括CAN数据线420和/或运动部件440。运动控制系统400中的控制设备410、CAN数据线420和运动部件440的功能、位置与结构分别与以上运动控制系统100中的对应部件类似。为了简洁,在此不再赘述。运动控制系统400可以包含多个运动控制部件430。每个运动控制部件430可以用于控制一个或多个运动部件460。
CAN数据线420仅是示例而非对本发明的限制,可以采用其他合适的通信装置实现控制设备410和运动控制部件430之间的通信。例如,可以用无线通信装置替代CAN数据线420,该无线通信装置可以是例如蓝牙装置、红外装置等。
上述运动控制系统采用第一存储部预存解算出的波表数据,使得驱控部可以在需要控制运动部件运动时直接读取预存的波表数据,而无需用户每次都重新配置运动参数。可以有效节省操作时间,大大提高工作效率,并且有助于支持运动部件所在设备(例如机器人)离线工作。
本领域普通技术人员通过阅读上文关于运动控制部件的相关描述,可以理解上述运动控制方法、机器人和运动控制系统的具体实现方案,为了简洁,在此不再赘述。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的运动控制系统中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。