• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

基于ROS搭建简易软件框架实现ROV水下目标跟踪(六)–电机模型文件

人工智能 iwande 1940次浏览 0个评论

推进器电机模型文件的内容只有一个:推进器推力与PWM波的映射关系。当我们推算得到某时刻该推进器需要提供的推力时,我们需要根据映射关系计算出出对应的PWM波下发给下层以实现控制。不同类型的推进器推力与PWM波的映射关系是不同的,这个有的产品可能会给出,没有的话可能需要自行测定。   在demo中,模型文件的路径为cabin_controllers/cfg/thruster_force_vs_pwm.yaml。该文件反映的是bluerovotics的T200推进器推力与PWM波的映射关系。因为俄亥俄州大学水下机器人队伍的项目使用的也是这款推进器,故我直接使用了他们的参数。在此,我对文件参数做简要解析。   对于T200推进器的电机,其输入的pwm波的区间应为[1100,1900]。当然为了保护电机,后续在程序中不会设置这么大的区间,这点可以根据实际需求设置。当输入的PWM波为1500时,电机不转动;当输入的PWM波大于于1500时,电机正转;当输入的PWM波小于1500时,电机反转。   我们还需要注意推进器的桨叶。正桨(cw)和反桨(ccw)在电机转动时提供的推力方向是相反的。文件中TYPE0代表ccw,TYPE1代表cw。   一般来说推进器推力与PWM波的映射关系可以认为是线性关系,即y=a*x+b。x为推力(N),y为对应pwm波(常数),a为斜率(N^-1),b为常数。   根据推力的情况,映射关系分为三个区段,分别为Deadband,Startup以及Primary。区段通过文件中MIN_THRUST以及STARTUP_THRUST划分。   以下均以TYPE0参数为例。POS表示电机正转,NEG表示电机反转。   1、Deadband区段 当 |推力| < MIN_THRUST时,对应的PWM波均为NEUTRAL_PWM(pwm_controller.cpp中设定)。 demo中,当推力的区间为(-0.2N,0.2N)时,对应的PWM波为1500,推进器不转动,一定程度上改善了噪声的干扰。   2、Startup区段 当MIN_THRUST<= |推力| <=STARTUP_THRUST时,对应的PWM波为:SU_xxx_THRUST.SLOPE * 推力 + SU_xxx_THRUST.YINT。 demo中,当推力的区间为[0.2N,1.5N]时,电机正转,对应的PWM波为:22.5*推力+1523。 当推力区间为[-1.5N,-0.2N]时,电机反转,对应的PWM波为:28.6*推力+1480。 此阶段电机快速启动。   3、Primary区段 当 |推力| > STARTUP_THRUST时,对应的PWM波为:xxx_THRUST.SLOPE*推力+xxx_THRUST.YINT。 demo中,当推力区间为(1.5N,+00)时,电机正转,对应的PWM波为:6.66*推力+1552。 当推力区间为(-00,-1.5N时),电机反转,对应的PWM波为:8.54*推力+1444 。 此阶段电机平稳转动。当然PWM波的值不能超过电机安全的区间,这是后续程序中需要注意的。 我们也可以根据实际情况调整MIN_THRUST和STARTUP_THRUST提高性能   草图如下:  
基于ROS搭建简易软件框架实现ROV水下目标跟踪(六)--电机模型文件   机械模型文件使得我们能自由设计配置水下平台各模块,如传感器、推进器等,电机模型文件使得我们能实现电机的自由选型。如此,我们在结构设计获得极大自由度的同时,软件架构也能通过仅修改文件参数非常方便的配合平台的改动。   机械模型文件与电机模型文件对后续框架里基础运动模块的理解还是比较关键的,所以再对模块进行进一步解析时,介绍了这两个文件的结构内容。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明基于ROS搭建简易软件框架实现ROV水下目标跟踪(六)–电机模型文件
喜欢 (0)

您必须 登录 才能发表评论!

加载中……