30分钟速通ROS联合Webots仿真实战

写在前面:

本文是ROS联合Webots仿真实战教程,不包含ROS环境安装配置教程,ROS环境安装配置教程可以参考1.2.4 安装 ROS · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
另本文所用版本如下:

ubuntu版本:20.04
webots版本:2021a`
ros版本:noetic

一、 前期准备

1.安装ubuntu,版本:20.04

2.配置ros环境,版本:noetic

二、 创建工作空间

1. 创建工作空间

mkdir -p ~/cankin_ws/src

之后进入src文件夹下面,将其初始化为ROS工作空间:

cd ~/cankin_ws/src
catkin_init_workspace

2.编译工作空间

编译操作需要在工作空间的根目录下执行,所以我们需要cd到工作空间的根目录下面对其进行编译

cd ..

catkin_make

如果没有报错的话,就说明安装成功了。之后在我们的src目录下面就会生成两个文件夹build和devel。build文件里面是编译过程当中产生的中间文件;devel里面是编译过程当中产生的一些可执行文件和一些环境变量设置的脚本。

3.设置环境变量

记事本打开配置文件

sudo gedit ~/.bashrc

在配置文件最末尾加上:

source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
export WEBOTS_HOME=/usr/local/webots
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

然后点击右上角保存,最后退出。使用以下命令使其在当前终端中生效:

source ~/.bashrc

4.检查环境变量

新打开一个终端,输入以下命令检查环境变量:

echo $ROS_PACKAGE_PATH

三、ROS联合webots

1. 下载webots2021a(随便找个地方放就好了)

github
webots2021a下载链接

image.png
使用下面命令解压安装软件

dpkg -i webots_2021a_amd64.deb

2.安装webots_ros

sudo apt install ros-noetic-webots-ros

安装完后需要再去GitHub下一个案例包webots_ros
这里webots2021a对应的是4.0.1版本。下载链接

image.png
将下载的案例包放到之前创建的工作空间catkin_ws/src
此时的目录结果应该如下图所示:

image.pngimage.png

3. 测试

完成上述步骤后,再工作空间根目录,即catkin_ws下打开一个终端,执行下面命令

catkin_make
roslaunch keyboard_teleop.launch

一切顺利的话,你将看到下面的效果,可以使用键盘↑ ↓ ← →控制小车移动
image.png

注意:上图中,我执行的命令是roslaunch webots_ros keyboard_teleop.launch是因为我的src下有两个目录webots_ros和webots_demo,所以需要指定是哪个目录,webots_demo目录我们后面会讲

四、建图和导航

1. 准备工作

1.1 源神,启动!

建图和导航的源码地址:
https://github.com/JackyMao1999/webots_demo?tab=readme-ov-file

下载解压放到工作空间catkin_ws/src下,此时的目录结果应该如下图所示:

image.pngimage.png

1.2 安装功能包

然后参考文档说明安装相关的功能包即可。

⚠️注意:源码中包含了多种建图算法和导航算法的案例,其中cartographer建图算法相关功能包的安装比较麻烦,本人也没有安装成功。所以建议跳过安装cartographer功能包的步骤,使用其他建图算法,本人使用的是gmapping实时建图算法和teb导航算法。

image.png

1.3 更换webots场景

将自己的webots场景文件替换原来的webots_map.wbt(替换后命名改成webots_map.wbt)。目录见下图。
image.png
完成上面步骤后就可以开始建图和导航了。

2. 建图

使用gmapping算法作为建图算法,teb算法作为导航算法进行导航建图。使用其他算法同理。

新建两个终端分别运行下面命令

roslaunch webots_demo slam_teb_gmapping.launch
rosrun webots_demo velocity_keyboard_v2

使用键盘 ↑ ↓ ← →控制机器人小车移动扫描整个地图,从而建立一张地图。扫描过程比较吃电脑配置,需要耐心一点。这里原理是激光雷达扫描,感兴趣的可以了解一下。

download.png

扫描完毕后运行下面命令保存地图。

rosrun map_server map_saver -f map

地图文件会保存到根目录下,将其复制粘贴到下图中的目录下。
image.png
完成上面步骤就可以关掉上面两个终端了

3. 导航

在已有地图上导航,使用amcl定位算法,base算法作为导航算法进行已知地图导航。

新建两个终端分别运行下面命令

roslaunch webots_demo amcl_demo.launch
rosrun webots_demo demo_2dnav_move

运行完后可以看到如下场景:
在这里插入图片描述

图片来源:https://blog.csdn.net/xiaokai1999/article/details/112596640

设置目标点,运行结果如下:
在这里插入图片描述

图片来源:https://blog.csdn.net/xiaokai1999/article/details/112596640

参考文献:

[1] ROS联合webots实战案例目录_webots和ros noetic 联合-CSDN博客
[2] ROS联合webots实战案例(五)导航功能包入门2_ros navigation区域限定-CSDN博客
[3] ROS联合webots实战案例(一)安装配置webots_webots python ros-CSDN博客
[4] ROS工作空间搭建和功能包创建与编译_ros工作空间编译-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/751868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Github 2024-06-28 Java开源项目日报Top9

根据Github Trendings的统计,今日(2024-06-28统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目8非开发语言项目1HTML项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476 天协议类型:OtherStar数量:63556…

基于 Paimon 的袋鼠云实时湖仓入湖实战剖析

在当今数据驱动的时代,企业对数据的实施性能力提出了前所未有的高要求。为了应对这一挑战,构建高效、灵活且可扩展的实时湖仓成为数字化转型的关键。本文将深入探讨袋鼠云数栈如何通过三大核心实践——ChunJun 融合 Flink CDC、MySQL 一键入湖至 Paimon …

海思SS928/SD3403开发笔记4——u盘挂载

首先一定要将u盘格式化成fat32。 挂载 mkdir /mnt/usb mount /dev/sda1 /mnt/usb成功示意图: 取消挂载 umount /mnt/usb

Python生成图形验证码

文章目录 安装pillow基本用法生成代码 安装pillow pip install pillow 基本用法 特殊字体文字 如下所示,将下载下来的ttf字体文件放到py文件同一文件夹下 分享一个免费下载字体网站:http://www.webpagepublicity.com/free-fonts.html 我选的字体是Baj…

[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式4599张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4599 标注数量(xml文件个数):4599 标注数量(txt文件个数):4599 标注…

LearnOpenGL - Android OpenGL ES 3.0 使用 FBO 进行离屏渲染

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好,窗口LearnOpenGL 笔记 - 入门 04 你好,三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

千年织锦:中国古代包文化的辉煌历程与现代传承

追溯至远古,我们的祖先就开始利用自然界的恩赐——皮革、植物纤维等,制作出最原始的包袋。随着时间的推移,技艺的提升,包的材质逐渐丰富起来,从粗糙到精致,从简单到复杂,每一次材质的革新都是人…

【Django】网上蛋糕项目商城-首页

概念 本文在上一文章搭建完数据库,以及创建好项目之后,以及前端静态文件后,对项目的首页功能开发。 后端代码编写 这里我们使用pymysql模块对数据库进行操作,获取数据。因此需要在dos窗口使用以下指令下载该库文件 pip instal…

netconf_h3c_ac

# -*- coding:utf-8 -*- import xmltodict from ncclient import manageripACip地址, mmanager.connect(hostip,port830,username账号,password密码,hostkey_verifyFalse,device_params{name: h3c},allow_agentFalse,look_for_keysFalse,timeout30)data_xml <top xmlns&qu…

数据库管理系统(DBMS)

一.数据库管理系统 1.简介 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件&#xff0c;用于建立、使用和维护数据库&#xff0c;简称DBMS。它对数据库进行统一的管理和控制&#xff0c;以保证数据库的安全性和完整性。用户通过DBMS访问数据库中…

ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 参考&#xff1a; asp.net mvc框架之EF的使用 - black娃 - 博客园 https://www.cnblogs.com/fjiqiang/p/11131365.html 目录 数据库查询要求思路操作 razor使用项目发布要求实现 数据库查询 要求 从服务器的数据库中查…

springboot 集成阿里云 OSS

引入依赖 <!-- 阿里云oss依赖 --> <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.9.1</version> </dependency><?xml version"1.0" encoding"…

OWIN(.NET 开放 Web 接口)的幕后故事

在本文中&#xff0c;我们将了解 OWIN 是什么以及它的创建历史。本文将帮助那些想知道它背后的人。 我们将了解一群人如何为 .NET 社区带来宝贵的想法。同样重要的是&#xff0c;微软已经接受了 OWIN&#xff0c;而 ASP.NET Core 基本上就是建立在这个想法之上的。 简单来说&…

pppd 返回错误码 含义

错误码 00&#xff1a; pppd已经断开&#xff0c;或者已经成功建立连接后请求方又中 断了。 01&#xff1a; 发成了一个严重错误&#xff0c;例如系统调用失败或者访问非法内存。 02&#xff1a; 处理给定操作是检测到错误&#xff0c;例如使用两个互斥的操作。 03&#xff1a;…

live555的核心数据结构值之闭环双向链表

live555是采用单进程,单线程的服务器,能够同时支持多个客户端连接,并且有条不紊的进行媒体流的调度,很大一部分原因在于对数据结构的巧妙应用。 下面介绍live555核心的数据结构:闭环双向链表 什么是闭环双向链表? 描述: 一个节点保存有前一个节点的地址和后一个节点的…

2018年全国大学生数学建模竞赛A题高温服装设计(含word论文和源代码资源)

文章目录 一、部分题目二、部分论文三、部分Matlab源代码问题11 求解h1h22 已知h1h2求解温度分布 问题21 求解第二层最佳厚度 四、完整word版论文和源代码&#xff08;两种获取方式&#xff09; 一、部分题目 2018 年高教社杯全国大学生数学建模竞赛题目 A 题 高温作业专用服…

[数据集][目标检测]游泳者溺水检测数据集VOC+YOLO格式8275张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;8275 标注数量(xml文件个数)&#xff1a;8275 标注数量(txt文件个数)&#xff1a;8275 标注…

2024年度临沂市安全文化书画摄影展开幕

人海信息网山东讯 6月27日&#xff0c;2024年度临沂市安全文化书画摄影作品展&#xff0c;在临沂高新区隆重开幕。本次书画摄影展深入贯彻“以人为本&#xff0c;安全发展”的重要思想&#xff0c;立意高远&#xff0c;内涵丰富&#xff0c;思想深邃&#xff0c;承载着健康、幸…

风机过滤机组介绍

一、定义 FFU英文全称为&#xff08;Fan Filter Unit&#xff09;&#xff0c;中文专业用语为风机过滤机组。FFU广泛应用于洁净室、洁净工作台、洁净生产线、组装式洁净室和局部百级等应用场合。 二、FFU的组成 FFU主要由四部分组成&#xff1a; 1.箱体 其材质常用镀锌铝合…

Excel 宏录制与VBA编程 —— 12、文本字符串类型相关(转换、拆分、分割、连接、替换、查找、“Like“)

字符串分割&#xff0c;文末示例&#xff08;文末代码3附有源码&#xff09; 代码1 - 基础字符串 代码2 - 字符串拆分 代码3 - 字符串分割 Option ExplicitSub WorkbooksClear()Dim DataRange As RangeSet DataRange Range("C2:E12")DataRange.Clear End SubSub Wo…