Webots搭建麦克纳姆轮底盘教程
ubuntu版本:20.04
webots版本:2021a
ros版本:noetic
0.前言
之前笔者出过ROS联合webots开发教程,在教程中使用的是双轮差动底盘模型,今天笔者将带给笔者舵轮底盘的搭建教程。
注意:如果初学Webots搭建机器人,建议先从ROS联合webots实战案例(二)在webots中搭建机器人学起,这里面讲的比较详细。
1.真实模型
舵轮的其中一种结构如下图所示,但是不一定就只有这一种结构,还有很多结构能达到舵轮的要求。

从图中可以看到,舵轮由两个电机组成,一个电机控制车轮的转向,另一个电机控制车轮的速度,因为可以控制车轮360度转向,所以也可以称舵轮为全向轮。
2.仿真搭建
- 创建一个机器人节点
Tree:Base nodes->Robot
- 在Robot节点下创建一个长方体作为车身,车身的
shape为[0.5,0.07,0.3]
Robot:Base nodes->solid
solid:Base nodes->Shape
- 为solid添加碰撞体积,和shape一样大
solid->boundingObject Box
- 在
Robot节点下添加一个HingeJoint较链,并且添加Jointparameters和solid末端实物,因为有两个电机所以需要添加两个串行的铰链。搭建好的舵轮模型如下图所示:
Robot->HingeJoint->Jointparameters|solid|motor

红色电机最好使用位置电机,紫色轮子使用旋转电机。
- 已经设置好了其中一个舵轮,其余三个舵轮都可以复制过去,然后设置电机的
Jointparameters!!!
注意:当要让机器人落地时,确保所有solid节点的碰撞体积和重力都已经设置好了,不然一运行就功亏一篑。
最终搭建效果:

3.编写ROS控制程序
-
设置Webots机器人控制器为ROS,并且设置如下控制器参数:

-
ROS控制器程序
#include <signal.h>
#include <std_msgs/String.h>
#include "ros/ros.h"
#include <webots_ros/set_float.h>
#include <webots_ros/set_int.h>
#include <webots_ros/Int32Stamped.h>
using namespace std;
#define TIME_STEP 32 //时钟
#define N

本文介绍了如何在Webots中搭建麦克纳姆轮底盘,包括选用的硬件结构、Webots的建模过程,以及如何编写ROS控制程序实现对底盘的运动控制。教程适合已对ROS和Webots有一定基础的读者,提供了详细的步骤和代码示例,帮助读者理解全向轮的工作原理并实现机器人控制。
最低0.47元/天 解锁文章
6921





