ROS联合webots实战案例(五)导航功能包入门1

本文是ROS导航功能包入门教程,需已安装ROS并具备相关知识。介绍了ROS导航框架,讲解在webots中加入GPS和IMU测量或估计机器人姿态,使用激光雷达识别障碍物,用tf软件库创建变换,还说明了各检测元件使能及数据类型获取等内容。

导航功能包入门1

注意:

  • 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识

为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
加群链接

webots版本:2020b rev1
ros版本:melodic

在前面几章中分别介绍了在webots中如何创建自己的机器人、添加传感器以及使用手柄或键盘驱动它在仿真环境中移动。在本章中,你会学习到ROS系统最强大的特性之一,它能够让你的机器人自主导航和运动。

1. ROS导航框架

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9L0hkBb-1610549321728)(1.jpg)]

在图中,能够看到白色、灰色和虚线三种框。白框表示其中的这些功能包集已经在ROS中集成了,并且它们提供的多种节点能够为机器人实现自主导航。

2. 测量或估计机器人姿态

在webots中可以直接使用GPS进行定位。并且利用IMU传感器获取惯性信息来补偿位置和方向值。

姿态(位置+方向):在ROS中,机器人的位置(position:x,y,z)和方向(orientation:x,y,z,w)被定义为姿态。

2.1 在webots中加入GPS和IMU

  1. 打开webots

  2. 在Robot->children下添加如下两个设备
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AlSmLtQ4-1610549321731)(2.jpg)]

  3. 保存并刷新场景

  4. 在控制台下输入以下命令查看是否同步到webots

$ rosservice list

可以看到已经同步上来了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBhiDwlq-1610549321733)(3.jpg)]

3. 识别障碍物

这里我们使用了激光雷达,在上一节已经带大家配置、调试好了。
在webots中包含了市面上常见的传感器。有距离传感器和视觉传感器等多种传感器。其中距离传感器有基于雷达的距离传感器(常用的是LDS、LRF和LiDAR)、超声波传感器和红外距离传感器等,而视觉传感器包括立体相机、单镜相机、360度相机,以及经常用作深度摄像头的Kinect也都用于识别障碍物。

4. 创建变换

导航包需要知道传感器、轮子和关节的位置。
在这里我们使用tf软件库来完成这部分工作。它会管理坐标变换树。

4.1 创建广播机构

  1. 让我们创建一个代码测试测试一下。在webots_demo/src文件夹下创建一个robot_broadcaster.cpp
  2. 为了不重复造轮子,直接把webots_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 NMOTORS 2       //电机数量
#define MAX_SPEED 2.0   //电机最大速度
 
ros:
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

锡城筱凯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值