ROS联合Webots之舵轮篇-搭建舵轮底盘

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

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较链,并且添加Jointparameterssolid末端实物,因为有两个电机所以需要添加两个串行的铰链。搭建好的舵轮模型如下图所示:
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
评论 20
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值