文档详情

基于ROS平台的移动机器人的设计与运动仿真.doc

发布:2018-12-13约7.01千字共9页下载文档
文本预览下载声明
基于ROS 平台的移动机器人的设计与运动仿真 陈勇林基金项目:2016年国家级大学生创新 基金项目:2016年国家级大学生创新创业训练计划项目“ROS辅助机械视觉与运动规划” (项目编号:201612616100)。 作者简介:陈勇林(1996-),男,重庆人,在校本科生,机械电子工程专业。 (重庆大学城市科技学院 电气信息学院,重庆 永川 402167) 摘要:ROS究竟是如何工作的呢?ROS中每一套算法是独立的一个包,包与包之间的数据交换主要采用TCP/IP协议(对用户隐藏,用户需要发布或订阅主题以提供或取得数据),采用这种形式是由于ROS的算法包是由全世界不同的个人,学校或实验室贡献的,这样做可以降低耦合性,如果一个node崩溃不会影响到其他。基于ROS这个平台,有助于提高开发设计的效率及降低成本。本论文主要阐述了基于ROS平台移动机器人设计的基本原理和方法,并对移动机器人进行了运动仿真,得到其运动轨迹和控制方法,为后续项目的进一步研究打下了一定的基础。 关键词:ROS 移动机器人 设计 仿真 0 引言 ROS被称为机器人操作系统[2],其实ROS充当的是通信中间件的角色,即在已有操作系统的基础上搭建了一整套针对机器人系统的实现框架。ROS还提供一组实用工具和软件库,用于维护、构建、编写和执行可用于多个计算平台的软件代码。   值得一提的是,ROS的设计者考虑到各开发者使用的开发语言不同,因此ROS的开发语言独立,支持C++, HYPERLINK /base/python \o Python知识库 \t /mountzf/article/details/_blank Python等多种开发语言。因此,除了官方提供的功能包之外,ROS还聚合了全世界开发者实现的大量开源功能包,如思岚科技(SLAMTEC)就发布了针对其自主研发的激光雷达RPLIDAR的ROS功能包rplidar_ros。这些开源功能包与ROS一起构成了强大的开源生态环境。   ROS的系统结构设计也颇有特色,ROS运行时是由多个松耦合的进程组成,每个进程ROS称之为节点(Node),所有节点可以运行在一个处理器上,也可以分布式运行在多个处理器上。在实际使用时,这种松耦合的结构设计可以让开发者根据机器人所需功能灵活添加各个功能模块。 1 理论分析 1.1 控制电机转动 电机的控制我们分为两部分,一部分为电机转动方向的控制,另一个为电机转速的控制。电机转动的方向我们用两个MCU引脚来控制,假如PIN_A=1,PIN_B=0 时,电机正转;PIN_A=0,PIN_B=1 时,电机反转;PIN_A=0,PIN_B=0 时,电机停止。电机速度的控制则需要一个PWM输出引脚,我们通过控制输出不同的PWM值来控制电机转动的速度。 1.2 PID控制 如果我们想控制小车以一米每秒的速度做直线运动,但由于地面的阻力的影响,会造成左右轮速度与我们想控制的速度不同,所以不会沿直线运动,这时我们就需要加入PID控制,PID控制的思想就是我实时的把轮子真正的速度采集回来和控制的速度对比,差则补,多则减。这样基本就可以实现理想控制。针对该小车的PID算法如附录A所示。 1.3 小车转弯控制 图1 小车转弯控制计算分析 一般我们要是想控制小车以多少的速度前进或者后退,我们只需要PID控制两个轮子的速度一致就可以基本做到。但如果要想控制小车以多少的角速度转弯,我们需要做一定的计算,如图1所示。 1.4 参数测量与计算 编码器用于计算轮子的移动距离。有两个问题需要解决: (1)高精度编码器太敏感,稍微抖动,会产生大量的不准确的值; (2)计数器的溢出。 可以根据实际小车的尺寸算出所需数据。小车的各项参数如下:前后轮轴距2K=168 mm;左右轮距离2L=266 mm;车轮直径r=130 mm;电动机减速比1:30。 假设小车转向的角速度ω为5 rad/s,转向半径R为100 mm。由上面的公式便可得出各个轮子的转速:n1=n3=18.3 m/s;n2=n4=116.1 m/s。 1.5 ROS平台与底盘通信协议[5] (1)ROS底盘串口 ROS平台与小车底盘的通信一般是通过串口或者CAN总线。我这里采用的是串口,以下为我自定义的通信数据格式。 1)底盘串口部分 串口接收:小车左右轮速度,单位:mm/s(所有数据都为float型,float型占4字节),10字节 :[右轮速度4字节][左轮速度4字节][结束符\r\n2字节]。 串口发送:里程计x, y坐标、线速度、角速度和方向角,单位依次为:mm, mm, mm/s, rad/s, rad(所有数据都为float型,float型占4字节),21字节 :[x坐标4字节][y坐标4字节][方向角4字节][线速度4字节][角速度4字节][结束符
显示全部
相似文档