CN117274546A - 三维模型展示方法、装置、电子设备及存储介质 - Google Patents
三维模型展示方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117274546A CN117274546A CN202311262490.8A CN202311262490A CN117274546A CN 117274546 A CN117274546 A CN 117274546A CN 202311262490 A CN202311262490 A CN 202311262490A CN 117274546 A CN117274546 A CN 117274546A
- Authority
- CN
- China
- Prior art keywords
- swing arm
- dimensional model
- data
- information
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 239000011159 matrix material Substances 0.000 claims description 121
- 230000009466 transformation Effects 0.000 claims description 66
- 238000010276 construction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 24
- 239000012634 fragment Substances 0.000 description 16
- 238000012545 processing Methods 0.000 description 10
- 210000000323 shoulder joint Anatomy 0.000 description 9
- 210000000707 wrist Anatomy 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 210000002310 elbow joint Anatomy 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 210000001503 joint Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 210000000245 forearm Anatomy 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 206010034719 Personality change Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 210000003857 wrist joint Anatomy 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J18/00—Arms
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Computer Graphics (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开涉及三维模型展示方法、装置、电子设备及存储介质。该三维模型展示方法包括:接收目标机器人发送的关节角度信息和水平姿态信息;基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新;在控制界面中展示更新后的三维模型。可见,当目标机器人的关节角度信息和水平姿态信息发生变化时,可以及时的获取,并在基于获取到的关节角度信息和水平姿态信息更新控制界面中的三维模型,从而可以直接通过控制界面的三维模型实时查看目标机器人当前状态,同时可以基于三维模型获取目标机器人的外观细节,清楚地获取目标机器人各个关节的位置关系。
Description
技术领域
本公开涉及机器人领域,尤其涉及一种三维模型展示方法、装置、电子设备及计算机可读存储介质。
背景技术
现有技术中,大多采用二维模型实时显示机器人的姿态变化以及运动情况,但基于二维模型的显示方案仅能对机械臂的位置、姿态进行示意,不能展现主要的外观细节。对于后续研发的带有前、后摆臂的履带底盘机器人,机械臂和摆臂之间存在位置干涉的可能,通过二维模型无法清晰地反应机械臂和摆臂之间精确的位置关系。
发明内容
有鉴于此,本公开实施例提供了一种三维模型展示方法、装置、电子设备及计算机可读存储介质,以解决相关技术中存在的二维模型无法细节的展示外观细节的问题。
本公开实施例的第一方面,提供了一种三维模型展示方法,该方法包括:接收目标机器人发送的关节角度信息和水平姿态信息;基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新;在控制界面中展示更新后的三维模型。
本公开实施例的第二方面,提供了一种机器人模型构建装置,应用于如第一方面的三维模型展示方法,该装置包括:接收模块,被配置为接收目标机器人发送的关节角度信息和水平姿态信息;更新模块,被配置为基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新;展示模块,被配置为在控制界面中展示更新后的三维模型。
本公开实施例的第三方面,提供了一种电子设备,包括至少一个处理器;用于存储至少一个处理器可执行指令的存储器;其中,至少一个处理器用于执行指令,以实现上述信号收发装置的控制方法的步骤。
本公开实施例的第四方面,提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述信号收发装置的控制方法的步骤。
本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:通过接收目标机器人发送的关节角度信息和水平姿态信息;基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新;在控制界面中展示更新后的三维模型。可见,当目标机器人的关节角度信息和水平姿态信息发生变化时,可以及时的获取,并在基于获取到的关节角度信息和水平姿态信息更新控制界面中的三维模型,从而可以直接通过控制界面的三维模型实时查看目标机器人当前状态,同时可以基于三维模型获取目标机器人的外观细节,清楚地获取目标机器人各个关节的位置关系。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了根据本公开实施例提供的一种三维模型展示方法的流程示意图;
图2示出了根据本公开实施例提供的一种机器人机械臂部分的结构示意图;
图3示出了根据本公开实施例提供的一种机器人底盘部分的结构示意图;
图4示出了根据本公开实施例提供的一种机器人控制终端的控制界面示意图;
图5示出了根据本公开实施例提供的一种三维模型的底盘部分更新流程示意图;
图6示出了根据本公开实施例提供的一种三维模型的前摆臂更新流程示意图;
图7示出了根据本公开实施例提供的一种三维模型的机械臂各个关节部位更新流程示意图;
图8示出了根据本公开实施例提供的一种三维模型的左手指和右手指更新流程示意图;
图9示出了根据本公开实施例提供的一种三维模型的后摆臂更新流程示意图;
图10示出了根据本公开实施例提供的一种机器人模型构建装置的结构示意图;
图11示出了根据本公开实施例提供的一种电子设备的结构示意图;
图12示出了根据本公开实施例提供的一种计算机系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
现有技术中,机器人由技术人员基于视频反馈信息采用远程遥控设备控制,其中,视频反馈信息受摄像头安装位置、角度和数量的限制,导致无法准确地获取机器人的位置、姿态以及机器人对应的机械臂各个关节模块的位置,姿态,无法进行快速、准确的判断,从而影响机器人操作的安全性和准确性。并且大多采用二维模型实时显示机器人的姿态变化以及运动情况,但基于二维模型的显示方案仅能对机械臂的位置、姿态进行示意,不能展现主要的外观细节。对于后续研发的带有前、后摆臂的履带底盘机器人,机械臂和摆臂之间存在位置干涉的可能,通过二维模型无法清晰地反应机械臂和摆臂之间精确的位置关系。另外,二维模型与机器人外观存在差异,界面不美观,操作体验较差。
针对上述问题,本公开实施例提供了一种机器人模型三维模型展示方法,可以根据是否存在相对运动,将三维模型分为底盘、摆臂、肩关节、肘关节、腕关节、手爪等多个部分,并分别进行显示。并通过实时接收控制界面发出的水平姿态角、摆臂角度以及机械臂各关节转角的数据,计算各模块对应的旋转矩阵,进而通过OpenGL ES调用GPU资源进行模型绘制和显示,并控制机器人控制终端中三维模型可以与目标机器人实体联动,实时显示摆臂、机械臂各关节的动作,以及目标机器人相对水平地面的姿态变化,同时还可以通过操控终端鼠标或触屏可以调整三维模型的视场角,或是对三维模型局部进行放大、缩小显示。应理解,三维模型为目标机器人在控制界面对应的三维模型。
下面将结合附图详细说明根据本公开实施例的一种三维模型展示方法。
图1示出了根据本公开实施例提供的一种三维模型展示方法的流程示意图。如图1所示,该三维模型展示方法包括如下步骤S101至S103。
S101,接收目标机器人发送的关节角度信息和水平姿态信息。
在一些实例中,机器人按照运动结构可以分为底盘和机械臂组成,图2示出了根据本公开实施例提供的一种机器人机械臂部分的结构示意图。如图2所示,机械臂可以包括腰关节201,肩关节202,大臂杆203,肘关节204,小臂杆205,腕俯仰关节206,腕旋转和手抓开合关节207,右手指旋转轴208,右手指209,左手指2010,手指旋转轴2011等关节部位,并且每个关节部位都安装有绝对值编码器,绝对值编码器通过在关节轴上安装一个旋转磁盘和一组磁传感器来实现,在绝对值编码器中每个角度位置都有一个唯一的数字编码,当旋转磁盘旋转时,磁传感器会检测到编码并将其转换为数字信号,基于数字信号可以确定关节轴的旋转角度,即可以确定各关节部位的关节角度信息。
图3示出了根据本公开实施例提供的一种机器人底盘部分的结构示意图。如图3所示,底盘可以包括前摆臂301,前摆臂转轴302,后摆臂303,后摆臂转轴304,履带305、电池306,云台相机307,底盘上装的天线308,底盘车舱309,机械臂安装口3010等模块,并在底盘安装倾角仪,其中,倾角仪的测量轴x与底盘中轴线平行,倾角仪的测量轴y与底盘中轴线垂直,用以获取底盘的水平姿态信息。
在一些实例中,可以通过机器人控制终端控制目标机器人运动,例如,可以通过机器人控制终端可以向目标机器人发送控制指令,控制目标机器人各个关节部位发生变化或者控制目标机器人运动等。当目标机器人运动时,可以基于绝对值编码器可以获取机器人各个关节部位的关节角度信息,基于倾角仪可以获取目标机器人底盘的水平姿态信息,同时还可以将绝对值编码器和倾角仪获取的关节角度信息和水平姿态信息实时发送给目标机器人对应的目标机器人控制终端中,目标机器人控制终端基于关节角度信息和水平姿态信息可以实时监控目标机器人在运动过程中各个关节和底盘的变化情况,当目标机器人在某个运动过程中各个关节和底盘的变化出现异常时,可以及时的发现并进行调整。
S102,基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新。
图4示出了根据本公开实施例提供的一种机器人控制终端的控制界面示意图。如图4所示,在机器人控制界面中,可以在数据编辑区域403中更改关节部位对应控制参数,当修改某个关节的控制采纳数后,机器人控制终端会针对修改后的控制参数向目标机器人发送控制指令,目标机器人获取到控制指令后,基于控制指令对应的控制参数调整关节开合角度。例如,当将肩关节的角度从0修改为90.1时,机器人控制终端会针对90.1向目标机器人发送控制指令,目标机器人获取到控制指令后,将肩关节的关节开合度由0变为90.1。同时还可以通过位置控制控件404可以控制目标机器人的运动状态,例如,通过位置控制控件404可以控制目标机器人实现向前移动或者向后移动等。
在一些实例中,如图4所示,在控制界面中还可以展示目标机器人的三维模型402,三维模型为针对目标机器人设计的三维模型,通过三维模型可以实时的展示目标机器人姿态的变化情况以及目标机器人的外观细节,方便实时的获取目标机器人的状态信息。
S103,在控制界面中展示更新后的三维模型。
在一些实例中,当目标机器人基于控制指令控制关节部位的关节开合度发生变化或者运动状态发生变化时,三维模型402也会同步更新,并将更新后的三维模型展示在控制界面中,从而方便用户实时查看目标机器人的状态。
在一些实例中,本公开实施例可以记录目标机器人的底盘的相关信息和各关节的第一坐标信息,并保存为obj文件和mtl文件,其中,相关信息包括底盘组件信息和外观特征信息,第一坐标信息包括各关节上的任意两点的坐标数据;记录安装在底盘上的倾角仪的第二坐标信息,其中,第二坐标信息包括倾角仪在x轴方向上的任意两点的x轴坐标数据和在y轴方向上的任意两点的y轴坐标数据。
在一些实例中,目标机器人的三维模型对应的源文件可以为从机械设计软件如solidwork、UG中获得源文件,基于源文件可以在机械设计软件中打开已经组装好的三维模型,在获取源文件时需要将各关节部位按照预设角度摆放预设位置上,预设位置可以为关节零位。进而选中底盘组件信息,如底盘车舱、左右履带、左右电池,天线、云台相机,以及不随机械臂转动、固定在底盘上的腰关节及尾筒等主要的外观特征信息,保存为文件model0.obj和model0.mtl,接着分别记录安装在底盘上的倾角仪的第二坐标信息,即记录倾角仪x轴上任意两点的x轴坐标数据model0_p01、model0_p02,以及y轴上任意两点y轴坐标数据model0_p11、model0_p12。应理解,关节零位可以看作目标机器人各个模块发生变化时的参考点位。
在于实际应用中,各关节的第一坐标信息可以采用如下方式获取,选中前摆臂,保存为文件model1.obj和model1.mtl,并记录前摆臂转轴上任意两点在三维模型上的坐标model1_p01、model1_p02;选中肩关节保存为文件model2.obj和model2.mtl,并记录腰关节转动轴任意两点在三维模型上的坐标model2_p01、model2_p02;选中大臂杆和肘关节,保存为文件model3.obj、model3.mtl,并记录肩关节转动轴任意两点在三维模型上的坐标model3_p01、model3_p02;选中小臂杆和腕俯仰关节,保存为文件model4.obj和model4.mtl,并记录肘关节转动轴任意两点在三维模型上的坐标model4_p01、model4_p02;选中腕旋转和手爪开合关节,保存为文件model5.obj和model5.mtl,并记录腕俯仰转动轴任意两点在三维模型上的坐标model5_p01、model5_p02;选中手爪除手指外的主体部分,保存为文件model6.obj和model6.mtl,并记录腕旋转轴任意两点在三维模型上的坐标model6_p01、model6_p02;选中左手指,保存为文件model7.obj和model7.mtl,并记录左手指旋转轴上任意两点在三维模型上的坐标model7_p01、model7_p02;选中右手指,保存为文件model8.obj和model8.mtl,并记录右手指旋转轴上任意两点在三维模型上的坐标model8_p01、model8_p02;选中后摆臂,保存为文件model9.obj和model9.mtl,记录后摆臂转轴上任意两点在三维模型上的坐标model9_p01、model9_p02。如上将机器人模型分为了9部分,分别记作model0,model1,……,model9。应理解,前摆臂包括左前摆臂和右前摆臂,后摆臂包括左后摆臂和右后摆臂。
具体的,对上述坐标进行整理如下:model0包括model0.obj、model0.mtl、model0_p01、model0_p02、model0_p11和model0_p12;model1包括model1.obj、model1.mtl、model1_p01和model1_p02;model2包括model2.obj、model2.mt、model2_p01和model2_p02;model3包括model3.obj、model3.mtl、model3_p01和model3_p02;model4包括model4.obj、model4.mtl、model4_p01和model4_p02;model5.obj、model5.mtl、model5_p01和model5_p02;model6包括model6.obj、model6.mtl、model6_p01和model6_p02;model7包括model7.obj、model7.mtl、model7_p01和model7_p02;model8包括model8.obj、model8.mtl、model8_p01和model8_p02;model9包括model9.obj、model9.mtl、model9_p01和model9_p02。其中,底盘对应的数据包括model0,model1,机械臂对应的数据包括model2~model9,并且基于.obj和.mtl的文件格式在机器人控制终端的控制界面进行显示,可以获取三维模型的主要外观细节。
在一些实例中,在进行三维模型更新时,首先需要依次读取并处理model0.obj、model0.mtl,model1.obj、model1.mtl,...,model9.obj、model9.mtl共9组文件。并将三维模型每一个部分对应顶点坐标、顶点法向量、顶点材质、顶点材质数据依次存入对应的顶点缓冲对象(Vertex Buffer Object,VBO)中,即GPU存储空间的内存缓冲区,并将GPU存储空间中的9组模型对应的文件命名为arrayBuf[i],i=0,1,2,...,8。应理解,此处因机械设计软件的坐标轴和坐标原点与机器人控制终端中的三维模型不一致,可在此处对导入的顶点数据进行必要的平移和旋转。
图5示出了根据本公开实施例提供的一种三维模型的底盘部分更新流程示意图。如图5所示,基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新,包括如下步骤S501至S506。
S501,导入obj文件和mtl文件,得到三维模型。
在一些实例中,当获取三维模型的源文件后,可以将源文件上传至机器人控制终端,并在机器人控制终端中打开源文件,将三维模型展示在机器人控制终端的控制界面中。
S502,获取水平姿态信息中的横滚角数据和俯仰角数据。
在一些实例中,三维模型的水平姿态角之俯仰角可以记作pitch,水平姿态角之横滚角可以记作roll;前摆臂角度可以记作auxilarmAng1、后摆臂角度可以记作auxilarmAng2;腰关节角度可以记作axisAng[0]、肩关节角度可以记作axisAng[1]、肘关节角度可以记作axisAng[2]、腕俯仰关节角度可以记作axisAng[3]、腕旋转关节角度可以记作axisAng[4]、手爪开合角度可以记作axisAng[5]。
S503,基于x轴坐标数据和横滚角数据,生成横滚姿态矩阵。
在一些实例中,可以根据model0_p01、model0_p02和水平姿态角之横滚角(roll),调用姿态生成函数生成横滚姿态矩阵(matrixRoll)。
S504,基于y轴坐标数据和俯仰角数据,生成俯仰姿态矩阵。
在一些实例中,可以根据model1_p11、model1_p12和水平姿态角之俯仰角(pitch),调用姿态生成函数生成俯仰姿态矩阵(matrixPitch)。
S505,基于横滚姿态矩阵和俯仰姿态矩阵,计算底盘的姿态变换矩阵。
在一些实例中,基于横滚姿态矩阵(matrixRoll)以及俯仰姿态矩阵(matrixPitch)确定底盘的姿态变换矩阵matrixAttitude[0]=matrixRoll*matrixPitch。
S506,基于底盘的姿态变换矩阵,对底盘对应的部分三维模型进行更新。
在一些实例中,调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragment shader)在控制界面中绘制三维模型对应的底盘主体部分,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[0]。
图6示出了根据本公开实施例提供的一种三维模型的前摆臂更新流程示意图。如图6所示,各关节包括左前摆臂和右前摆臂,基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新,包括如下步骤S601至S604。
S601,获取关节角度信息中的左前摆臂的左前摆臂数据和右前摆臂的右前摆臂数据,以及水平姿态信息中的前摆臂角度数据。
S602,基于左前摆臂数据、右前摆臂数据和前摆臂角度数据,生成前摆臂的摆动姿态矩阵。
具体的,首先需要根据左前摆臂数据model1_p01、右前摆臂数据model1_p02和前摆臂角度数据auxilarmAng1,调用姿态生成函数生成前摆臂摆动姿态矩阵matrixAuxiarm1。
S603,基于前摆臂的摆动姿态矩阵和底盘的姿态变换矩阵,计算前摆臂的姿态变换矩阵。
在一些实例中,前摆臂的姿态变换矩阵可以为matrixAttitude[1]=matrixAuxiarm1*matrixAttitude[0]。
S604,基于前摆臂的姿态变换矩阵,对前摆臂对应的部分三维模型进行更新。
在一些实例中,可以调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragment shader)在控制界面中绘制三维模型对应的前摆臂部分,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[1]。
图7示出了根据本公开实施例提供的一种三维模型的机械臂各个关节部位更新流程示意图。如图7所示,各关节还包括多个机械臂,基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新,包括如下步骤S701至S704。
S701,获取关节角度信息中的多个机械臂中的每个机械臂的机械臂数据,以及水平姿态信息中的机械臂的机械臂角度数据。
在一些实例中,依次进行机械臂model2~model6部分模型的更新,下面以modeli为例进行说明,其中i=2、3、4、5、6。
S702,基于当前机械臂的机械臂数据和当前机械臂的机械臂角度数据,生成当前机械臂的姿态矩阵。
在一些实例中,可以根据机械臂数据modeli_p01、modeli_p02和机械臂角度数据axisAng[i-2],调用姿态生成函数生成姿态矩阵matrixArm。
S703,基于当前机械臂的姿态矩阵和当前机械臂的前一个机械臂的姿态变换矩阵,计算当前机械臂的姿态变换矩阵。
此部分的姿态变换矩阵matrixAttitude[i]=matrixArm*matrixAttitude[i-1],其中,i=3、4、5、6。
S704,基于当前机械臂的姿态变换矩阵,对当前机械臂对应的部分三维模型进行更新。
最后调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragmentshader)在机械设计软件中分别绘制三维模型对应的机械臂部分,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[i]。
在实际应用中,当i=2时,对应的axisAng[i-2]为axisAng[0],即腰关节角度,基于此,model2为例,可以首先根据model2_p01、model2_p02和axisAng[0],调用姿态生成函数生成姿态矩阵matrixArm;对于此部分的姿态变换矩阵,由于底盘的姿态会影响机械臂的姿态,而摆臂的姿态则不会,因此matrixAttitude[2]=matrixArm*matrixAttitude[0];最后调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragment shader)在控制界面中绘制三维模型对应的腰关节部位,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[2]。
当i=3时,对应的axisAng[i-2]为axisAng[1],即肩关节角度,基于此,以model3为例首先根据model3_p01、model3_p02和axisAng[1],调用姿态生成函数生成姿态矩阵matrixArm;对于此部分的姿态变换矩阵,由于底盘的姿态会影响机械臂的姿态,而摆臂的姿态则不会,因此matrixAttitude[3]=matrixArm*matrixAttitude[2];最后调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragment shader)在控制界面中绘制三维模型对应的肩关节部位,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[3]。其中,对于model4~model6与model3的变换矩阵的推到方式一致,在此不做赘述。
图8示出了根据本公开实施例提供的一种三维模型的左手指和右手指更新流程示意图。如图8所示,各关节还包括左手指和右手指,基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新,包括如下步骤S801至S804。
S801,获取关节角度信息中的左手指的左手指数据和右手指的右手指数据,以及水平姿态信息中的手爪开合角度数据。
S802,基于左手指数据和所述手爪开合角度数据或者所述右手指数据和所述手爪开合角度数据,生成所述左手指的姿态矩阵或所述右手指的姿态矩阵。
具体的,左手指数据为model7部分对应的数据,首先可以根据左手指旋转轴点model7_p01、model7_p02和axisAng[5];左手指数据为右手指model8部分对应的数据,首先可以根据右手指旋转轴点model8_p01、model8_p02和axisAng[5]。
S803,基于所述左手指的姿态矩阵或所述右手指的姿态矩阵以及左手指或右手指的前一个机械臂的姿态变换矩阵,计算左手指的姿态变换矩阵或右手指的姿态变换矩阵;
在一些实例中,可以调用姿态生成函数生成相应的姿态矩阵matrixArm,左手指的姿态变换矩阵matrixAttitude[7]=matrixArm*matrixAttitude[6];右手指的姿态变换矩阵matrixAttitude[8]=matrixArm*matrixAttitude[6]。
S804,基于左手指的姿态变换矩阵或右手指的姿态变换矩阵,对左手指或右手指对应的部分三维模型进行更新。
最后调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragmentshader)在控制界面中绘制三维模型对应的左手指部分,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[7];调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragment shader)在控制界面中绘制三维模型对应的右手指部分,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[8]。
图9示出了根据本公开实施例提供的一种三维模型的后摆臂更新流程示意图。如图9所示,各关节还包括左后摆臂和右后摆臂,基于关节角度信息和水平姿态信息,对目标机器人的三维模型进行更新,包括如下步骤S901至S904。
S901,获取关节角度信息中的左后摆臂的左后摆臂数据和左前摆臂的右后摆臂数据,以及水平姿态信息中的后摆臂角度数据。
S902,基于左后摆臂数据、右后摆臂数据和所述后摆臂角度数据,生成后摆臂的摆动姿态矩阵。
在一些实例中,可以根据左后摆臂数据model9_p01、右后摆臂数据model9_p02和后摆臂角度数据auxilarmAng2,调用姿态生成函数生成摆臂摆动姿态矩阵matrixAuxiarm2。
S903,基于后摆臂的摆动姿态矩阵和底盘的姿态变换矩阵,计算后摆臂的姿态变换矩阵。
在一些实例中,后摆臂的姿态变换矩阵可以为matrixAttitude[9]=matrixAuxiarm2*matrixAttitude[0];
S904,基于后摆臂的姿态变换矩阵,对后摆臂对应的部分三维模型进行更新。
最后调用运行在GPU上的顶点着色器(vertex shader)和片元着色器(fragmentshader)在控制界面中绘制三维模型对应的后摆臂部分,其中顶点着色器中最终的变换矩阵为matrixRot*matrixScale*matrixAttitude[9]。
具体的,姿态生成函数的基本原理为,首先根据累积的姿态旋转矩阵,计算模型旋转前第一个转轴点的坐标,进而将该模型各顶点进行平移,使第一个转轴点位于原点;两个转轴点做差得到姿态旋转轴;绕该轴旋转给定的角度。最后再将旋转后的模型进行平移,使第一个转轴点平移到旋转前第一个转轴点的坐标。应理解,在三维模型更新过程中,基于机器人控制终端对应的终端软件使用OpenGL ES调用终端计算机显示处理器(GPU)进行三维模型的绘制,其中,三维模型的更新频率不低于10Hz。
在一些实例中,当机器人控制终端监测到控制界面中的鼠标401拖动,更新三维模型402的显示视角,即更新旋转矩阵(matrixRot),并调用机械设计软件更新三维模型;当控制终端监测到控制界面中的缩放控件404被触发,响应于缩放控件404的触发,可以调整三维模型402的显示比例,更新模型显示的比例,即更新尺度矩阵(matrixScale),并调用机械设计软件更新三维模型。
上述主要从机器人控制终端的角度对本公开实施例提供的方案进行了介绍。可以理解的是,机器人控制终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
本公开实施例可以根据上述方法示例对机器人控制终端进行功能单元的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,本公开实施例提供一种机器人模型构建装置,该机器人模型构建装置可以为服务器或应用于服务器的芯片。图10示出了根据本公开实施例提供的一种机器人模型构建装置的结构示意图。如图10所示,该机器人模型构建装置1000包括:
接收模块1001,被配置为接收目标机器人发送的关节角度信息和水平姿态信息;
更新模块1002,被配置为基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新;
展示模块1003,被配置为在控制界面中展示更新后的三维模型。
在一种可能的实现方式中,所述装置1000还包括记录模块1004,所述记录模块1004还被配置为所述目标机器人的底盘的相关信息和各关节的第一坐标信息,并保存为obj文件和mtl文件,其中,所述相关信息包括底盘组件信息和外观特征信息,所述第一坐标信息包括所述各关节上的任意两点的坐标数据;记录安装在所述底盘上的倾角仪的第二坐标信息,其中,所述第二坐标信息包括所述倾角仪在x轴方向上的任意两点的x轴坐标数据和在y轴方向上的任意两点的y轴坐标数据。
在一种可能的实现方式中,所述更新模块1002还被配置为导入所述obj文件和所述mtl文件,得到所述三维模型;获取所述水平姿态信息中的横滚角数据和俯仰角数据;基于所述x轴坐标数据和所述横滚角数据,生成横滚姿态矩阵;基于所述y轴坐标数据和所述俯仰角数据,生成俯仰姿态矩阵;基于所述横滚姿态矩阵和所述俯仰姿态矩阵,计算所述底盘的姿态变换矩阵;基于所述底盘的姿态变换矩阵,对所述底盘对应的部分三维模型进行更新。
在一种可能的实现方式中,所述更新模块1002还被配置为获取所述关节角度信息中的所述左前摆臂的左前摆臂数据和所述右前摆臂的右前摆臂数据,以及所述水平姿态信息中的前摆臂角度数据;基于所述左前摆臂数据、所述右前摆臂数据和所述前摆臂角度数据,生成前摆臂的摆动姿态矩阵;基于所述前摆臂的摆动姿态矩阵和所述底盘的姿态变换矩阵,计算所述前摆臂的姿态变换矩阵;基于所述前摆臂的姿态变换矩阵,对所述前摆臂对应的部分三维模型进行更新。
在一种可能的实现方式中,所述更新模块1002还被配置为获取所述关节角度信息中的所述多个机械臂中的每个机械臂的机械臂数据,以及所述水平姿态信息中的所述机械臂的机械臂角度数据;基于当前机械臂的机械臂数据和所述当前机械臂的机械臂角度数据,生成所述当前机械臂的姿态矩阵;基于所述当前机械臂的姿态矩阵和所述当前机械臂的前一个机械臂的姿态变换矩阵,计算所述当前机械臂的姿态变换矩阵;基于所述当前机械臂的姿态变换矩阵,对所述当前机械臂对应的部分三维模型进行更新。
在一种可能的实现方式中,所述更新模块1002还被配置为获取所述关节角度信息中的所述左手指的左手指数据和所述右手指的右手指数据,以及所述水平姿态信息中的手爪开合角度数据;基于所述左手指数据和所述手爪开合角度数据或者所述右手指数据和所述手爪开合角度数据,生成所述左手指的姿态矩阵或所述右手指的姿态矩阵;基于所述左手指的姿态矩阵或所述右手指的姿态矩阵以及所述左手指或所述右手指的前一个机械臂的姿态变换矩阵,计算所述左手指的姿态变换矩阵或所述右手指的姿态变换矩阵;基于所述左手指的姿态变换矩阵或所述右手指的姿态变换矩阵,对所述左手指或所述右手指对应的部分三维模型进行更新。
在一种可能的实现方式中,所述更新模块1002还被配置为获取所述关节角度信息中的所述左后摆臂的左后摆臂数据和所述左前摆臂的右后摆臂数据,以及所述水平姿态信息中的后摆臂角度数据;基于所述左后摆臂数据、所述右后摆臂数据和所述后摆臂角度数据,生成后摆臂的摆动姿态矩阵;基于所述后摆臂的摆动姿态矩阵和所述底盘的姿态变换矩阵,计算所述后摆臂的姿态变换矩阵;基于所述后摆臂的姿态变换矩阵,对所述后摆臂对应的部分三维模型进行更新。
本公开实施例还提供一种电子设备,包括:至少一个处理器;用于存储至少一个处理器可执行指令的存储器;其中,至少一个处理器用于执行指令,以实现本公开实施例公开的上述方法的步骤。
图11示出了根据本公开实施例提供的一种电子设备的结构示意图。如图11所示,该电子设备1100包括至少一个处理器1101以及耦接至处理器1101的存储器1102,该处理器1101可以执行本公开实施例公开的上述方法中的相应步骤。
上述处理器1101还可以称为中央处理单元(Central Processing Unit,CPU),其可以是一种集成电路芯片,具有信号的处理能力。本公开实施例公开的上述方法中的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、ASIC、现成可编程门阵列(Field-programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器1102中,例如随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质。处理器1101读取存储器1102中的信息,结合其硬件完成上述方法的步骤。
另外,根据本公开的各种操作/处理在通过软件和/或固件实现的情况下,可从存储介质或网络向具有专用硬件结构的计算机系统,例如,图12所示的计算机系统1200安装构成该软件的程序,该计算机系统在安装有各种程序时,能够执行各种功能,包括诸如前文所述的功能等等。图12示出了根据本公开实施例提供的一种计算机系统的结构示意图。
计算机系统1200旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,计算机系统1200包括计算单元1201,该计算单元1201可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机存取存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储计算机系统1200操作所需的各种程序和数据。计算单元1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
计算机系统1200中的多个部件连接至I/O接口1205,包括:输入单元1206、输出单元1207、存储单元1208以及通信单元1209。输入单元1206可以是能向计算机系统1200输入信息的任何类型的设备,输入单元1206可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1207可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1208可以包括但不限于磁盘、光盘。通信单元1209允许计算机系统1200通过网络诸如因特网的与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如,蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理。例如,在一些实施例中,本公开实施例公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如,存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到电子设备1200上。在一些实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开实施例公开的上述方法。
本公开实施例还提供一种计算机可读存储介质,其中,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得该电子设备能够执行本公开实施例公开的上述方法。
本公开实施例中的计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。上述计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。更具体的,上述计算机可读存储介质可以包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
本公开实施例还提供一种计算机程序产品,包括计算机程序,其中,该计算机程序被处理器执行时实现本公开实施例公开的上述方法。
在本公开的实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块、部件或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块、部件或单元的名称在某种情况下并不构成对该模块、部件或单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示例性的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (10)
1.一种三维模型展示方法,其特征在于,包括:
接收目标机器人发送的关节角度信息和水平姿态信息;
基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新;
在控制界面中展示更新后的三维模型。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录所述目标机器人的底盘的相关信息和各关节的第一坐标信息,并保存为obj文件和mtl文件,其中,所述相关信息包括底盘组件信息和外观特征信息,所述第一坐标信息包括所述各关节上的任意两点的坐标数据;
记录安装在所述底盘上的倾角仪的第二坐标信息,其中,所述第二坐标信息包括所述倾角仪在x轴方向上的任意两点的x轴坐标数据和在y轴方向上的任意两点的y轴坐标数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新,包括:
导入所述obj文件和所述mtl文件,得到所述三维模型;
获取所述水平姿态信息中的横滚角数据和俯仰角数据;
基于所述x轴坐标数据和所述横滚角数据,生成横滚姿态矩阵;
基于所述y轴坐标数据和所述俯仰角数据,生成俯仰姿态矩阵;
基于所述横滚姿态矩阵和所述俯仰姿态矩阵,计算所述底盘的姿态变换矩阵;
基于所述底盘的姿态变换矩阵,对所述底盘对应的部分三维模型进行更新。
4.根据权利要求3所述的方法,其特征在于,所述各关节包括左前摆臂和右前摆臂,所述基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新,包括:
获取所述关节角度信息中的所述左前摆臂的左前摆臂数据和所述右前摆臂的右前摆臂数据,以及所述水平姿态信息中的前摆臂角度数据;
基于所述左前摆臂数据、所述右前摆臂数据和所述前摆臂角度数据,生成前摆臂的摆动姿态矩阵;
基于所述前摆臂的摆动姿态矩阵和所述底盘的姿态变换矩阵,计算所述前摆臂的姿态变换矩阵;
基于所述前摆臂的姿态变换矩阵,对所述前摆臂对应的部分三维模型进行更新。
5.根据权利要求4所述的方法,其特征在于,所述各关节还包括多个机械臂,所述基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新,包括:
获取所述关节角度信息中的所述多个机械臂中的每个机械臂的机械臂数据,以及所述水平姿态信息中的所述机械臂的机械臂角度数据;
基于当前机械臂的机械臂数据和所述当前机械臂的机械臂角度数据,生成所述当前机械臂的姿态矩阵;
基于所述当前机械臂的姿态矩阵和所述当前机械臂的前一个机械臂的姿态变换矩阵,计算所述当前机械臂的姿态变换矩阵;
基于所述当前机械臂的姿态变换矩阵,对所述当前机械臂对应的部分三维模型进行更新。
6.根据权利要求5所述的方法,其特征在于,所述各关节还包括左手指和右手指,所述基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新,包括:
获取所述关节角度信息中的所述左手指的左手指数据和所述右手指的右手指数据,以及所述水平姿态信息中的手爪开合角度数据;
基于所述左手指数据和所述手爪开合角度数据或者所述右手指数据和所述手爪开合角度数据,生成所述左手指的姿态矩阵或所述右手指的姿态矩阵;
基于所述左手指的姿态矩阵或所述右手指的姿态矩阵以及所述左手指或所述右手指的前一个机械臂的姿态变换矩阵,计算所述左手指的姿态变换矩阵或所述右手指的姿态变换矩阵;
基于所述左手指的姿态变换矩阵或所述右手指的姿态变换矩阵,对所述左手指或所述右手指对应的部分三维模型进行更新。
7.根据权利要求6所述的方法,其特征在于,所述各关节还包括左后摆臂和右后摆臂,所述基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新,包括:
获取所述关节角度信息中的所述左后摆臂的左后摆臂数据和所述左前摆臂的右后摆臂数据,以及所述水平姿态信息中的后摆臂角度数据;
基于所述左后摆臂数据、所述右后摆臂数据和所述后摆臂角度数据,生成后摆臂的摆动姿态矩阵;
基于所述后摆臂的摆动姿态矩阵和所述底盘的姿态变换矩阵,计算所述后摆臂的姿态变换矩阵;
基于所述后摆臂的姿态变换矩阵,对所述后摆臂对应的部分三维模型进行更新。
8.一种机器人模型构建装置,其特征在于,包括:
接收模块,被配置为接收目标机器人发送的关节角度信息和水平姿态信息;
更新模块,被配置为基于所述关节角度信息和所述水平姿态信息,对所述目标机器人的三维模型进行更新;
展示模块,被配置为在控制界面中展示更新后的三维模型。
9.一种电子设备,其特征在于,包括:
至少一个处理器;
用于存储所述至少一个处理器可执行指令的存储器;
其中,所述至少一个处理器用于执行所述指令,以实现如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311262490.8A CN117274546A (zh) | 2023-09-27 | 2023-09-27 | 三维模型展示方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311262490.8A CN117274546A (zh) | 2023-09-27 | 2023-09-27 | 三维模型展示方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117274546A true CN117274546A (zh) | 2023-12-22 |
Family
ID=89207777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311262490.8A Pending CN117274546A (zh) | 2023-09-27 | 2023-09-27 | 三维模型展示方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117274546A (zh) |
-
2023
- 2023-09-27 CN CN202311262490.8A patent/CN117274546A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874119B (zh) | 跟踪臂移动以生成计算机系统的输入的系统和方法 | |
CN103529944A (zh) | 一种基于Kinect的人体动作识别方法 | |
CA2842441C (en) | Creating ergonomic manikin postures and controlling computer-aided design environments using natural user interfaces | |
CN113119098A (zh) | 机械臂控制方法、机械臂控制装置及终端设备 | |
CN114227677A (zh) | 工业机器人喷涂作业规划方法、装置、设备以及存储介质 | |
CN113119104B (zh) | 机械臂控制方法、机械臂控制装置、计算设备及系统 | |
EP4332904A1 (en) | Image processing method and apparatus, electronic device, and storage medium | |
CN115847422A (zh) | 一种用于遥操作的姿态识别方法、装置及系统 | |
CN114692425B (zh) | 数字孪生技术的焊接机器人仿真方法、系统、设备及介质 | |
CN111113429B (zh) | 一种动作模仿方法、动作模仿装置及终端设备 | |
CN112580582A (zh) | 动作学习方法、装置、介质及电子设备 | |
CN112720479B (zh) | 一种机器人姿态控制方法、装置及机器人 | |
CN110096134B (zh) | 一种vr手柄射线抖动矫正方法、装置、终端和介质 | |
CN117274546A (zh) | 三维模型展示方法、装置、电子设备及存储介质 | |
CN109333527B (zh) | 一种与机器人的交互方法、装置、电子设备及存储介质 | |
CN111382701A (zh) | 动作捕捉方法、装置、电子设备及计算机可读存储介质 | |
CN113703704B (zh) | 界面显示方法、头戴式显示设备和计算机可读介质 | |
Adiprawita et al. | Service oriented architecture in robotic as a platform for cloud robotic (Case study: human gesture based teleoperation for upper part of humanoid robot) | |
CN112025704B (zh) | 基于内存型数据库的实时分布式机器人控制方法及系统 | |
CN114740854A (zh) | 一种机器人避障控制方法和装置 | |
US10906178B2 (en) | Systems, devices, and methods for distributed graphical models in robotics | |
CN112894794A (zh) | 人体手臂动作模仿方法、装置、终端设备及存储介质 | |
CN113515201B (zh) | 光标位置更新方法、装置和电子设备 | |
CN117226847B (zh) | 一种遥操作设备的控制方法及系统 | |
US8854485B1 (en) | Methods and systems for providing functionality of an interface to include an artificial horizon |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |