挖掘机价钱网站,为您提供优质的二手小型挖掘机产品质量有保障,欢迎咨询!

挖掘机价钱网站

专注于小型挖掘机价钱,产品体积小,灵活,价格适中且经久耐用!

【神钢130轮式挖掘机多少钱】在ROS中通过Arduino实现对4WD轮式机器人的简单控制

作者:易秋      发布时间:2021-04-17      浏览量:0
一、运动学分析在用代码实现之前,最好简单

一、运动学分析

在用代码实现之前,最好简单理解相关原理。这种4WD轮机器人精确地说是采用所谓的滑动控制,是类似于差速控制的运动方式。

NOTE:。具体可以参考我的相关博文:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

参加考试,阿克曼(Ackerman)转向几何学原理,为了保证汽车的行驶稳定性,四轮差速转向汽车没有转向机构,很难保证这一点,而且汽车的转向很容易以汽车形心为质心,忽视路面状况变化等影响,四轮差速转向汽车的运动学模型如下图所示。

在这张图中,分别是前左后左前后左前后左前后左前后左前后左前后左前后左前后左前后左前后左后左前后左后左后左后左后左后左后左后左后左后左后左后左后左后左后右后左右后左右后左右后左右后左后左后左后左后左后左后左后左后左后左后左右后左后左后左后左后左后左后左后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右后左右根据上图,可以得出各速度和旋转角度的关系:

。电动机的角速是:(C)。在(C)中,针对电动机的减速比,针对轮子的半径。电机转速可根据,得到。

二、计算车轮转速

了解转向原理后,可以根据实际推车的尺寸计算必要的数据。我使用的推车参数如下:

三、代码实现

首先包括必要的顶级文件:

#includebos.h>#includebos/twist.h>

其中司机主导电动机驱动板(我使用的是L293D)的顶级文件,另外两个请参考ROS的wiki文件。

//settingeachmotorAF_DCMotorightFront(3)AF_DCMotorleftFront(4)AF_DCMotorleftBack(1)AF_DCMotorightBack(2)

设置各电机对应驱动板的接口。

/x轴方向的速度doublelin_velthellet=0.0/y轴方向的速度doubleang_vel=0.0;intcmd_ctrle=订单;//注册ROS节点ros:NodeHandlenh;//回调函数voidmotor_cb(constgeometry_mstry:Twistist&rostros:Nodenhenh;//回调函数voidmototor_cb(cbondmor_cbotr_cb(contcontr)_contgeotry_metr)_metry_metry_metry_metry_metry_metry_metry:Thet:Thetr:Twistry:Twististr:Twistististr:Twisthelisthelist&lelelelelel){lelin:Thelint;{linthelelinthelinthelinthelint;(Thelinthelinelelelinthelelelelelint;(The){fonthelintintonthelinthontontontonthe:";(tononthelinthelelintintinthe){fontintintintinthelinthelintintintinthont;主题){

voidsetup({。inh.initNode)?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????。??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

voidloop(。{。。。。。。。。。。。。。。。。。{。。。{。。。{。。。。。{。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(2)请告诉我/delay(1000)。关键是。关键是。关键是(116)。你好,先生,先生,先生,先生,先生,先生,先生,先生,先生,先生,先生,先生。(1000);电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影,电影我要求你,我要求你,我要求你,我要求你,我要求你,我要求你,我要求你,我要求你。

四、硬件连接

将马达驱动板L293D和Arduino板的相应接口(数字一一对应)通过杜邦线连接,具体的针脚连接方式如下:

如果想使用直流/步进马达,则不能稳定地控制直流/步进马达。

具体的接线图如下:

NOTE:当然,如果您的Arduino没有连接其他传感器,您可以直接将L293D骑在Arduino板上,即所有相应的引脚连接,该方法相对简单,但所有引脚都被占用。

五、测试您的代码

先在您的Arduino编译并上传写好的代码,然后运行下列命令,指定串口连接Arduino板。note:在运行节点之前忘记启动节点管理器。

rosrunrosserial_pythonserial_node.pyth/dev/ttyACM0。

最后一个参数取决于你在Arduino的IDE中选择的串口。这里使用ACM0。然后运行:

rosrunturtlesimturtle_teleop_key。

使用方向键可以自由控制机器人。

六、后记

七、参考资料

注:本文转移的CDN博客:本文转移的CDN博客:csdn.nethub_30605157/details/51297066