以马达节制器ROS1驱动顺序完成机械人操作体系
栏目:行业动态 发布时间:2025-01-21 13:37
[db:摘要]...
呆板人操纵体系(ROS)驱动顺序是基于ADI产物而开辟,因而可直接在ROS生态体系中应用这些产物。本文概述怎样在利用、产物跟体系(比方自立导航、保险气泡舆图跟数据收罗呆板人)中应用跟整合这些驱动顺序;以及如斯将怎样有助于敏捷评价新技巧,并防止呈现与第三方产物的互操纵性成绩。在本文探究的全部产物中,将重点存眷用于ADITrinamic马达把持器的ROS驱动顺序,该驱动顺序是用于嵌入式活动把持的完全板级模块,融会ADITrinamic活动把持专业常识,以及ADI的模仿技巧跟电源计划技巧。什么是ROS?ROS是呆板人旁边件,包括一组软件库跟强盛的开辟东西(从驱动顺序到进步算法),可作为呆板人体系或利用的开辟基本。ROS波及多范畴(比方花费性电子、产业、汽车等),支撑多个平台(Linux、Windows、MacOS跟一些嵌入式平台),并且100%开源。得益于来自寰球技巧社群的公用资本,ROS可取得丰盛的支撑,进而辅助用户简化其计划跟利用。技巧任务道理ROS始于2007年,已成为自驾车、产业呆板人、飞翔器等范畴备受欢送的呆板人开辟原型制造平台。经由一直开展,该技巧当初曾经有两个版本:ROS1跟ROS2。ROS1跟ROS2体系必需彼此断绝,但经由过程ROS桥,这两个体系之间可停止通信跟交流数据。 本文援用地点:表一:ROS1跟ROS2的重要差别要素ROS1ROS2通信协定XMLRPC   + TCPROSDDS构建ROS 主把持器 + 散布式完整散布式构建体系Catkin (基于cmake)colcon/ament(基于cmake)构建输出ros_ws/develros_ws/install参数全局参数效劳器   静态从新设置每节点参数宣布XMLPython (+XML、YAML 替换言语)下令roslaunch、rosrun、rostopic等ros2   launch、 ros2 run、 ros2 topic等平台重要是ubuntuLinux、MacOS、 WindowsROS声援的平台ROS Noetic是ROS1的终极版本,将于2025年5月停止支撑,而ROS2自2020年6月推出以来则一直转动更新刊行版。ROS基础观点图一表现了ROS的一些基础观点,包含功效包、节点、主题、效劳跟新闻。图一:ROS基础数据流。注:对ROS1跟ROS2而言,下文探讨的ROS基础观点类似。功效包ROS功效包是ROS顺序或节点的重要构造体系。这是ROS中最中心的构建/宣布项。创立ROS功效包时,请务必设定公用的ROS任务空间。该任务空间被称为catkin任务空间,此中catkin是ROS的官方构建体系。节点ROS节点是在ROS中创立的可履行顺序。它们是履行特定义务的过程。ROS节点可应用ROS客户端库(如Python客户端库rospy跟C++ 客户端库roscpp)彼此通信。节点能够订阅跟/或宣布主题,也能够供给或应用效劳。主题ROS主题是ROS节点天生(或许宣布,以ROS术语而言)的数据信道。在ROS中,宣布者节点是主题的播送者,而订阅者节点是主题的收听者。在图二中,generic_motor_control的节点是播送者。/cmd_vel是velocity_ publisher宣布的主题。这表现,velocity_publisher供给基于马达把持(或下令速率)的速率信息。图二:宣布者-订阅者而ros_application的节点是收听者,velocity_subscriber订阅主题/cmd_vel。这表现,velocity_subscriber存取或应用velocity_publisher供给的速率信息。新闻主题是数据信道,而新闻是数据,采取与ROS兼容、实用于差别传感器的格局。以下是实用于ROS新闻格局的示例传感器:‧ 飞时测距(ToF)拍照机:sensor_msgs/Image、sensor_msgs/PointCloud‧ 惯性丈量单位(IMU)传感器:sensor_msgs/Imu‧ 马达把持:geometry_msgs/Twist‧ 车轮编码器:geometry_msgs/TwistStamped、geometry_msgs/TwistWithCovarianceStampeROS主题透过发送新闻(主题宣布者)或接受新闻(主题订阅者)停止通信,而且必需采取婚配的数据范例。比方,在图二中,来自velocity_publisher节点的速率信息(下令速率)盼望被velocity_subscriber节点存取/应用。假如主题宣布者velocity_publisher应用数据范例geometry_msgs/Twist,则主题订阅者velocity_subscriber也应应用雷同的数据范例。效劳宣布者-订阅者通信形式是开放式形式,不实用于散布式体系中平日须要的复兴交互。效劳支撑节点透过发送恳求跟接受呼应停止通信。宣布者-订阅者通信形式应用.srv档,在这些档中,指定了恳求跟呼应的新闻范例等效劳描写。效劳是双向同步通信形式,此中包括客户端跟效劳器。效劳器节点供给效劳,而客户端节点发送恳求并等候效劳器节点做出回应。比方,在图三中,server_node供给效劳SetVelocity.srv以变动下令速率vel。该效劳接收float32格局的速率值,并以字符串格局前往状况;假如设置了恳求的速率,则为 success ;不然,为 FAIL 。图三:应用效劳示例client_node发送恳求,将下令速率设定为2.5 mbps。server_node收到恳求后,破即发送 success 呼应。将处理计划整合至ROS生态体系ADI是ROS-Industrial同盟的正式成员,ROS-Industrial是一个开源名目,旨在将ROS软件的进步功效扩大到与产业相干的硬件与利用中。作为该技巧社群的一份子,ADI最初的目的是针对产业范畴开辟公用模块。ADI针对差别的公用模块开辟了ROS驱动顺序。为了展现所开辟的驱动顺序并应用ROS的功效,ADI也开辟了ADI自立挪动呆板人(ADAM)作为外部自立挪动平台(拜见图四)。图四:ADAMADAM:ADI自立挪动呆板人ADAM由ROS供给支撑,并搭载ROS支撑的差别组件。该平台展现了ADI的ROS驱动顺序怎样整合到挪动呆板人利用中,特殊是自立导航利用。图五所示为存在差别模块的ADAM的简化硬件图。该ADAM重要衔接以下组件:‧ ADIS16470或IMU传感器采取精细陀螺仪、减速度计、磁力计跟压力传感器的多轴组合,这些组件重要用作检测回馈,用 于改良地位/偏向预算。‧ ADBMS6948是一款多单位电池监控器,可丈量多达16个串联衔接的电芯,在全部温度范畴内存在较高的丈量精度。‧ EVAL-ADTF3175D-NXZ或 CMOS ToF供给杰出的高辨别率,与深度运算跟处置、激光驱动器、电源治理以及存在参考韧体/软件的开辟东西相反相成,可带来更多上风。‧ ADI Trinamic马达把持器是用于嵌入式活动把持的完全板级处理计划,融会ADI Trinamic活动把持专业常识,以及ADI的仿真工艺技巧跟电源计划技巧。1图五:ADAM硬件图图六所示为ADAM的简化ROS架构,该ADAM应用ROS驱动顺序跟自立导航所需的多个利用/算法节点。IMU数据(/imu/data_raw)跟ADI Trinamic马达把持器回馈(/tmc_info)用作姿势预算的输入,从而失掉呆板人的里程丈量成果(/odom)。激光雷达数据(/scan) 是用于天生舆图的同步定位与舆图绘制(SLAM)算法的重要输入;ToF数据(/image_raw) 还可用作其余SLAM算法的输入。而后,move_base节点 将等候用户收回任何目的姿势,并向ADI Trinamic马达把持器发送速率指令(/cmd_vel),使呆板人可能挪动。图六:ADAM导航客栈的简化ROS架构。ADI Trinamic马达把持器ROS驱动顺序ADI Trinamic马达把持器(TMC)是用于嵌入式活动把持的完全板级处理计划,融会ADI Trinamic活动把持专业常识,以及ADI的模仿技巧跟电源计划技巧。声援单轴/多轴步进马达、无刷直流马达(BLDC)等各种马达,可用接口包含 CAN、 EtherCAT、RS-232、RS-485 跟USB,支撑的协定涵盖Trinamic活动把持言语(TMCL)、CANopen、 over EtherCAT (CoE)、 CANopen 或 Modbus。名为TMCL-IDE的IDE可帮助用户开辟利用并对这些模块轻松从新编程。该IDE应用TMCL实现自力操纵,或应用尺度化CANopen协定,容许用户设定参数、及时针对材料停止可视化处置,并开辟/调试自力利用。因为TMC使新型聪明履行器成为可能,而且跟着ROS而日益遍及,尤其是在呆板人范畴中,咱们针对这些模块开辟了额定的支撑,如ROS驱动顺序,进而进一步扩大制作业跟产业主动化的用例。详细来说,估计这些ROS驱动顺序将可能把持马达的速率、地位或扭矩,以及监控马达把持器跟马达信息。TMC ROS驱动顺序与TMCL-IDE供给的功效类似,但其可能让支撑ROS的体系节点轻松应用这些TMC,无需装置任何其余驱动顺序。停止本文宣布之时,该驱动顺序仅支撑CAN接口(特殊是SocketCAN),其余接口正在开辟中,很快也将供给支撑。此处列出现在支撑的ADI Trinamic马达把持器模块(TMCM)。软件架构图七所示为adi_tmcl的简化软件架构。图七:adi_tmcl的简化软件架构如图七所示,因为adi_tmcl应用年夜少数Linux体系默许支撑的SocketCAN 驱动顺序,以是不须要任何额定的驱动顺序。别的,adi_tmcl存在本人的TMCL协定剖析器,因此可能懂得用户恳求的合乎TMCL的发送/接受指令。作为最后一层,tmcl_ros_node以宣布者、订阅者跟效劳的情势在ROS体系上供给直接接口。每种情势均供给特定的功效,这些功效可抉择应用一组参数停止设置。论断应用ADI Trinamic马达把持器可实现新型聪明履行器。跟着ROS日益遍及,尤其是在呆板人范畴,针对这些模块开辟额定支撑,如ROS驱动顺序,旨在进一步扩大制作业跟产业主动化用例。本文展现ROS怎样扩大组件,其带来的上风为供给附加代价,比方扩大产业利用;透过ROS通信框架,与第三方产物可轻松实现互操纵;供给更普遍的选项,便利客户在其体系当选用产物;疾速评价新技巧并破即开端应用。(本文作者为ADI软件体系工程师Krizelle Paulene Apostol,资深软件体系工程师Jamila Macagba及软件体系计划工程司理Maggie Maralit)