本发明涉及机器人技术领域,具体为基于urdf的车载机械臂建模与仿真方法。
背景技术:
随着计算机、微电子技术的快速发展,智能技术的开发也越来越快。机器人小车以发展迅猛的汽车电子技术为背景,涵盖了电子、计算机、机械、传感器等多个学科。同时,机器人技术的发展日新月异,多应用在考古、探测、国防等众多领域。
机器人小车是轮式机器人,最适合在那些人类无法工作的环境中工作,该技术可以应用于无人驾驶机动车、无人生产线、服务机器人等领域。
urdf是机器人模型的描述格式,它用来描述机器人的刚体外观、物理属性、关节类型等内容。本文采用urdf文件来进行机器人的建模,后期使用xacro文件对机器人模型进行优化,并添加摄像头、kinect激光雷达传感器使机器人小车看起来丰富多彩。本文采用arbotix结合rviz对机器人进行仿真,实现对机器人运动控制等功能的仿真。然而现有的机器人的缺点是成本高、误码率高、反应速度慢等问题,实用性差。因此,设计实用性强和反应速度快的基于urdf的车载机械臂建模与仿真方法是很有必要的。
技术实现要素:
本发明的目的在于提供基于urdf的车载机械臂建模与仿真方法,以解决上述背景技术中提出的问题。
为了解决上述技术问题,本发明提供如下技术方案:基于urdf的车载机械
臂的建模方法,包括步骤一,创建urdf模型;
步骤二,在rviz中显示模型;
步骤三,使用xacro优化urdf的模型;
步骤四,添加摄像头、kinect、激光雷达传感器模型。
根据上述技术方案,上述步骤一中,urdf是ros中一个描述机器人模型的一个文件,称为机器人的动力系统,帮助人们直接完成工作的主要部分,urdf由link、joint和robot标签,其中link称为连杆标签;joint它称为关节标签;robot包含了link标签和joint标签。
根据上述技术方案,上述步骤二中,将ros的程序图形化,使得创建好的模型显示化出来,首先检查mrobot_description/launch/mrobot_chassis这个文件代码,如没有错误就将它运行,会看到riz机器人模型。
根据上述技术方案,上述步骤三中,xacro文件可以直接重复使用一种宏定义模块,来表达相同的模型,工作时将xacro文件里的内容全部都转换成urdf文件,如果一切正常,就可以运行这个文件,并且在rviz中看到的机器人模型。
根据上述技术方案,还包括。
步骤一,安装arbotix;
步骤二,配置arbotix控制器;
步骤三,运行仿真环境。
根据上述技术方案,还包括
步骤四,在gazebo中显示机器人模型;
步骤五,控制机器人在gazebo仿真环境中运动;
步骤六,增加摄像头仿真;
步骤七,加kinect仿真;
步骤八,装载激光雷达仿真。
根据上述技术方案,上述步骤一中,arbotix是一款模拟器,它显示机器人运动以及topic数据,含有一个差速驱动机器人的模拟器。arbotix可以通过更新机器人的joint状态并时刻接收速度控制指令,将这两点进行分析,得出结论后就能够帮助我们完成在rviz中机器人的运动,arbotix功能包的源码必须要在特定的地方上去进行下载,下载成功后还要保存到我们的工作空间里面。
根据上述技术方案,上述步骤二中,上述的arbotix功能包正确安装完成后,下面就要对机器人的模型进行配置工作,以便以后运行仿真,只需要配置两个文件:一是创建一个launch文件,我们通常用它来启动arbotix节点;二是创建一个名为base_controller的差速控制器,它通常用来控制机器人模型的双轮差速运动。以上就是配置arbotix控制器,完成了配置,就可以进行仿真。
根据上述技术方案,上述步骤三中,首先把rviz+arbotix的仿真环境搭建完成,下一步就可以下命令控制机器人小车进行运动仿真,一切准备就绪,启动成功后,我们可以看见机器人小车已经完美的出现在了rviz中,使用cmd_vel话题,来查看信息,并点击键盘上的字母去控制小车的方向,通过键盘控制机器人小车的运动方向:i是向前、j是向左、<是向后、l是向右、k是停止、q/z是最大速度增加/减少10%、w/x是仅线性速度增加10%、e/c是仅加速度增加10%,从而实现对机器人的控制和监测。
根据上述技术方案,上述步骤四中,需要向模型添加一些gazebo的相关属性,要为每个必要的link标签、joint标签、robot标签里都要设置gazebo标签,并且也要保证每个link的inertia元素已经进行了合理的设置。
根据上述技术方案,让模型在gazebo环境中运动仿真起来需要做以下工作:
a)为link标签增加相应的gazebo相关属性,包含的属性仅有material;
b)为机器人添加传动装置,就可以通过手动控制机器人小车的两个轮子的速度以及完成前进、转向、倒退等动作;
c)添加gazebo控制器插件,gazebo插件可以根据插件的作用范围应用到urdf模型的每个标签上,需要使用<gazebo>标签作为封装。
根据上述技术方案,上述步骤五中,会根据物理属性去判断小车是前进还是后退,甚至遇到障碍物或者路不好的时候左右转弯,如果机器人在gazebo仿真环境中碰到障碍物时,也会判断机器人是反弹还是障碍物会被推动。
根据上述技术方案,上述步骤六中,我们为机器人模型增加了一个摄像头插件,这样就可以让机器人看到gazebo中的虚拟世界了,但是也需要对传感器的gazebo插件做适当的配置,带了摄像头的机器人模型文件在模型描述部分基本是没有变化的,只需要加入两个gazebo标签:第一个是gazebo标签,它用来设置摄像头模型在gazebo中的material属性,与机器人模型的配置相似,只需改变一下颜色;第二个是我们要设置摄像头插件的gazebo标签。我们经常使用scnsor标签来描述传感器的各种属性。
根据上述技术方案,上述步骤七中,为了获取更多丰富信息,可以装配一个kinect进入gazebo中,但此时还不能使模型在gazebo仿真环境中动起来,如果要运动仿真起来,我们还需要做些配置,如以下工作:
d)为kinect模型添加gazebo插件,选择的传感器类型是depth,camera标签中的参数与我们前面创建的摄像头机器人类似,在kinect的说明手册中我们可以找到需要的东西,比如分别率以及检测距离,同时需要设置发布的各种数据话题名以及参考坐标系等参数;
e)运行仿真环境。
根据上述技术方案,上述步骤八中,为模型添加gazebo插件,这里要添加ray型的激光雷达传感器,为了获取尽量贴近真是的仿真效果,需要根据实际参数配置ray中的雷达参数:360度检测范围、单圈360个采样点、5.5hz采样频率,最远6m检测范围。
与现有技术相比,本发明所达到的有益效果是:本发明,
(1)通过使用xacro优化模型,优化后的模型不仅可以让模型变得更加复杂还为模型增添了更多可编程的功能;
(2)通过在机器人模型中添加摄像头、添加kinect、添加激光雷达,还可以添加传感器模型,使得机器人看起来更加丰富多彩;
(3)通过将rviz仿真环境arbotix仿真环境结合起来,搭建了比较简单的仿真环境,现在可以控制机器人在里面运动;
(4)通过采用了一种ros_control的控制方法,并且结合在gazebo物理仿真环境,使得机器人可以自己根据情况进行运动;
(5)通过将仿真环境添加了摄像头、kinect、添加激光雷达。这样我们不仅可以随时控制机器人运动的物理状态,还能够获得运动仿真后的各种信息。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明的整体建模流程示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供技术方案:基于urdf的车载机械臂的建模方法,包括步骤一,创建urdf模型;
步骤二,在rviz中显示模型;
步骤三,使用xacro优化urdf的模型;
步骤四,添加摄像头、kinect、激光雷达传感器模型。
上述步骤一中,urdf是ros中一个描述机器人模型的一个文件,称为机器人的动力系统,帮助人们直接完成工作的主要部分,urdf由link、joint和robot标签,其中link称为连杆标签;joint它称为关节标签;robot包含了link标签和joint标签;
上述步骤二中,将ros的程序图形化,使得创建好的模型显示化出来,首先检查mrobot_description/launch/mrobot_chassis这个文件代码,如没有错误就将它运行,会看到riz机器人模型;
上述步骤三中,xacro文件可以直接重复使用一种宏定义模块,来表达相同的模型,工作时将xacro文件里的内容全部都转换成urdf文件,如果一切正常,就可以运行这个文件,并且在rviz中看到的机器人模型;
还包括
步骤一,安装arbotix;
步骤二,配置arbotix控制器;
步骤三,运行仿真环境;
步骤四,在gazebo中显示机器人模型;
步骤五,控制机器人在gazebo仿真环境中运动;
步骤六,增加摄像头仿真;
步骤七,加kinect仿真;
步骤八,装载激光雷达仿真;
上述步骤一中,arbotix是一款模拟器,它显示机器人运动以及topic数据,含有一个差速驱动机器人的模拟器。arbotix可以通过更新机器人的joint状态并时刻接收速度控制指令,将这两点进行分析,得出结论后就能够帮助我们完成在rviz中机器人的运动,arbotix功能包的源码必须要在特定的地方上去进行下载,下载成功后还要保存到我们的工作空间里面;
上述步骤二中,上述的arbotix功能包正确安装完成后,下面就要对机器人的模型进行配置工作,以便以后运行仿真,只需要配置两个文件:一是创建一个launch文件,我们通常用它来启动arbotix节点;二是创建一个名为base_controller的差速控制器,它通常用来控制机器人模型的双轮差速运动。以上就是配置arbotix控制器,完成了配置,就可以进行仿真;
上述步骤三中,首先把rviz+arbotix的仿真环境搭建完成,下一步就可以下命令控制机器人小车进行运动仿真,一切准备就绪,启动成功后,我们可以看见机器人小车已经完美的出现在了rviz中,使用cmd_vel话题,来查看信息,并点击键盘上的字母去控制小车的方向,通过键盘控制机器人小车的运动方向:i是向前、j是向左、<是向后、l是向右、k是停止、q/z是最大速度增加/减少10%、w/x是仅线性速度增加10%、e/c是仅加速度增加10%,从而实现对机器人的控制和监测;
上述步骤四中,需要向模型添加一些gazebo的相关属性,要为每个必要的link标签、joint标签、robot标签里都要设置gazebo标签,并且也要保证每个link的inertia元素已经进行了合理的设置;
让模型在gazebo环境中运动仿真起来需要做以下工作:
a)为link标签增加相应的gazebo相关属性,包含的属性仅有material;
b)为机器人添加传动装置,就可以通过手动控制机器人小车的两个轮子的速度以及完成前进、转向、倒退等动作;
c)添加gazebo控制器插件,gazebo插件可以根据插件的作用范围应用到urdf模型的每个标签上,需要使用<gazebo>标签作为封装;
上述步骤五中,会根据物理属性去判断小车是前进还是后退,甚至遇到障碍物或者路不好的时候左右转弯,如果机器人在gazebo仿真环境中碰到障碍物时,也会判断机器人是反弹还是障碍物会被推动;
上述步骤六中,我们为机器人模型增加了一个摄像头插件,这样就可以让机器人看到gazebo中的虚拟世界了,但是也需要对传感器的gazebo插件做适当的配置,带了摄像头的机器人模型文件在模型描述部分基本是没有变化的,只需要加入两个gazebo标签:第一个是gazebo标签,它用来设置摄像头模型在gazebo中的material属性,与机器人模型的配置相似,只需改变一下颜色;第二个是我们要设置摄像头插件的gazebo标签。我们经常使用scnsor标签来描述传感器的各种属性;
上述步骤七中,为了获取更多丰富信息,可以装配一个kinect进入gazebo中,但此时还不能使模型在gazebo仿真环境中动起来,如果要运动仿真起来,我们还需要做些配置,如以下工作:d)为kinect模型添加gazebo插件,选择的传感器类型是depth,camera标签中的参数与我们前面创建的摄像头机器人类似,在kinect的说明手册中我们可以找到需要的东西,比如分别率以及检测距离,同时需要设置发布的各种数据话题名以及参考坐标系等参数;e)运行仿真环境;
上述步骤八中,为模型添加gazebo插件,这里要添加ray型的激光雷达传感器,为了获取尽量贴近真是的仿真效果,需要根据实际参数配置ray中的雷达参数:360度检测范围、单圈360个采样点、5.5hz采样频率,最远6m检测范围。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。