30分钟速通ROS团结Webots仿真实战

打印 上一主题 下一主题

主题 841|帖子 841|积分 2533

写在前面:
本文是ROS团结Webots仿真实战教程,不包含ROS环境安装设置教程,ROS环境安装设置教程可以参考1.2.4 安装 ROS · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
另本文所用版本如下:
  1. ubuntu版本:20.04
  2. webots版本:2021a`
  3. ros版本:noetic
复制代码
一、 前期准备

   1.安装ubuntu,版本:20.04
  2.设置ros环境,版本:noetic
  二、 创建工作空间

1. 创建工作空间

  1. mkdir -p ~/cankin_ws/src
复制代码
之后进入src文件夹下面,将其初始化为ROS工作空间:
  1. cd ~/cankin_ws/src
  2. catkin_init_workspace
复制代码
2.编译工作空间

编译操作必要在工作空间的根目录下实验,以是我们必要cd到工作空间的根目录下面对其进行编译
  1. cd ..
  2. catkin_make
复制代码
假如没有报错的话,就说明安装乐成了。之后在我们的src目录下面就会生成两个文件夹build和devel。build文件内里是编译过程当中产生的中心文件;devel内里是编译过程当中产生的一些可实验文件和一些环境变量设置的脚本。
3.设置环境变量

记事本打开设置文件
  1. sudo gedit ~/.bashrc
复制代码
在设置文件最末尾加上:
  1. source /opt/ros/noetic/setup.bash
  2. source ~/catkin_ws/devel/setup.bash
  3. export WEBOTS_HOME=/usr/local/webots
  4. export ROS_HOSTNAME=localhost
  5. export ROS_MASTER_URI=http://localhost:11311
复制代码
然后点击右上角生存,最后退出。利用以下下令使其在当前终端中收效:
  1. source ~/.bashrc
复制代码
4.检查环境变量

新打开一个终端,输入以下下令检查环境变量:
  1. echo $ROS_PACKAGE_PATH
复制代码
三、ROS团结webots

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

github
webots2021a下载链接

利用下面下令解压安装软件
  1. dpkg -i webots_2021a_amd64.deb
复制代码
2.安装webots_ros

  1. sudo apt install ros-noetic-webots-ros
复制代码
安装完后必要再去GitHub下一个案例包webots_ros,
这里webots2021a对应的是4.0.1版本。下载链接

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

3. 测试

完成上述步骤后,再工作空间根目录,即catkin_ws下打开一个终端,实验下面下令
  1. catkin_make
  2. roslaunch keyboard_teleop.launch
复制代码
一切顺利的话,你将看到下面的结果,可以利用键盘↑ ↓ ← →控制小车移动

   注意:上图中,我实验的下令是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下,此时的目录结果应该如下图所示:

1.2 安装功能包

然后参考文档说明安装相关的功能包即可。
   ⚠️注意:源码中包含了多种建图算法和导航算法的案例,其中cartographer建图算法相关功能包的安装比力麻烦,本人也没有安装乐成。以是建议跳过安装cartographer功能包的步骤,利用其他建图算法,本人利用的是gmapping及时建图算法和teb导航算法。
  

1.3 更换webots场景

将自己的webots场景文件更换原来的webots_map.wbt(更换后定名改成webots_map.wbt)。目录见下图。

完成上面步骤后就可以开始建图和导航了。
2. 建图

利用gmapping算法作为建图算法,teb算法作为导航算法进行导航建图。利用其他算法同理。
新建两个终端分别运行下面下令
  1. roslaunch webots_demo slam_teb_gmapping.launch
  2. rosrun webots_demo velocity_keyboard_v2
复制代码
利用键盘 ↑ ↓ ← →控制机器人小车移动扫描整个地图,从而建立一张地图。扫描过程比力吃电脑设置,必要耐烦一点。这里原理是激光雷达扫描,感兴趣的可以了解一下。

扫描完毕后运行下面下令生存地图。
  1. rosrun map_server map_saver -f map
复制代码
地图文件会生存到根目录下,将其复制粘贴到下图中的目录下。

完成上面步骤就可以关掉上面两个终端了
3. 导航

在已有地图上导航,利用amcl定位算法,base算法作为导航算法进行已知地图导航。
新建两个终端分别运行下面下令
  1. roslaunch webots_demo amcl_demo.launch
  2. 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博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表