小鱼又来了,完成了上节课的Gazebo加载FishBot,但是机器人还是不会动,你一定很不开心吧,本节课小鱼就带你一起通过配置两轮差速控制插件,让我们的机器人动起来~
最终效果:
此处缺少一个动图,哪位鱼粉可以贡献一个
之前小鱼说过Gazebo是一个独立于ROS的软件,对外提供了丰富的API可以使用,gazebo的插件按照用途大致可以分为两种:
当然上面两类插件功能也可以写到一个插件里,两轮差速插件就是一个二合一加强版。
两轮差速插件用于控制机器人轮子关节的位置变化,同时该插件还会获取轮子的位置以及速度的信息的反馈,根据反馈的位置信息结合运动学模型即可计算出当前机器人的位姿(里程计)。
该插件的名称为:gazebo_ros_diff_drive
要想快速了解一个系统的功能,最直接的就是看系统的对外的输入和输出是什么?什么都不要说,看下图:
graph LR;
D[配置参数-轮距直径等]-->B
A[控制指令-cmdvel]-->B[gazebo_ros_diff_drive]
B-->C[里程计-odom]
B-->E[里程计tf-可选]
B-->F[轮子tf-可选]
上图就是对gazebo_ros_diff_drive的输入和输出信息的总结,可以很直观的看到该插件主要输入控制指令,主要输出里程计信息。接着小鱼带你分别认识一下输入和输出两个部分。
不知道你是否还记得在第七章中,小鱼对两轮差速底盘的运动学正的介绍,小鱼再带你一起回顾一下:
两轮差速运动学一共分为三个部分:
graph LR;
A[左轮速度]-->B[正运动学]-->C[机器人角速度]
D[右轮速度]-->B
B-->E[机器人线速度]
graph LR;
A[机器人线速度]-->C[运动学逆解]
B[机器人角速度]-->C
C-->D[左轮速度]
C-->E[右轮速度]
技术交流&&问题求助:
QQ交流群:139707339
版权保护:已加入“维权骑士”(rightknights.com)的版权保护计划