webots和ros2笔记07-建国(turtlebot3)

本文介绍如何在Webots中使用TurtleBot3Burger与cartographer进行SLAM任务。通过安装配置turtlebot3_cartographer软件包并运行特定命令,实现机器人的环境建图。调试过程中遇到一些bug,但官方已修复。

在前篇王者https://zhangrelay.blog.youkuaiyun.com/article/details/112772586章节中,使用turtlebot进行导航任务。

如何更好导航,涉及知识点很多,但是让机器人在自己的环境中实现导航任务的前提是建国¥_¥(建立环境地图-机器人仿真环境自我认知的王国)。

这就是大红大紫的!!!

SLAM!

SLAM!!

SLAM!!!

 


调试过程并不复杂,{入城-新建-称王-建国}四部曲走一遍这个案例很容易理解,并且直接可以跑。

SLAM考古派喜欢从gmapping开始搞起,仿真爽不行,实际环境常炸毛!

这里官方推荐cartographer。毕竟谷歌大厂开源,品质保证!

在本教程中,展示如何将SLAM与Webots模拟的TurtleBot3 Burger一起使用。Webots使用标准的ROS2接口,该接口可以与TurtleBot3 SLAM软件包一起使用,而无需进行修改。

配置

先要安装turtlebot3_cartographerROS2的软件包,参考官网,此处略。

ubuntu:

  • sudo apt install ros-foxy-turtlebot3-cartographer

windows:

运行

两步:

  1. ros2 launch webots_ros2_turtlebot robot_launch.py
  2. ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=true

其实吧,可能需要多尝试几次,为啥???

因为这个cartographer:

buggy!

buggy!!

buggy!!!

(。・∀・)ノ゙嗨,有bug不正常嘛……没啥大惊小怪的,仿真除了多费点电,没啥损失啊!!!

(官方最新功能包已经修复了bug!)

调试时候发现这个灯很有趣,酷酷酷

玩偏了……………………

竟然一次成功了……效果如下:

全部主题如下:

全部节点如下:

启动键盘遥控节点:

  • ros2 run turtlebot3_teleop teleop_keyboard

看看建图效果???


 

Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting &#39;ros-noetic-turtlebot3-gazebo-dbgsym&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-fake-dbgsym&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-autorace-core&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-gazebo&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-example&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-fake&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-autorace-msgs&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-slam-dbgsym&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-autorace-driving&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-description&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-autorace-detect&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-bringup-dbgsym&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-msgs&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-bringup&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-navigation&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-simulations&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-slam&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-autorace-camera&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-autorace-2020&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Note, selecting &#39;ros-noetic-turtlebot3-teleop&#39; for glob &#39;ros-noetic-turtlebot3*&#39; Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: libboost-mpi-python-dev : Depends: libboost-mpi-python1.71-dev but it is not going to be installed libc6-dev : Breaks: libassimp-dev (<= 5.2.4~ds0-1) but 5.0.1~ds0-1build1 is to be installed Breaks: libfltk1.3-dev (<= 1.3.8-4+b1) but 1.3.4-10build1 is to be installed Breaks: libnetcdf-dev (<= 1:4.9.0-3) but 1:4.7.3-1 is to be installed libgrilo-0.3-0 : Breaks: grilo-plugins-0.3-base (< 0.3.16-1.1~) but 0.3.11-1ubuntu1 is to be installed ros-noetic-dynamic-reconfigure : Depends: ros-noetic-rosservice but it is not going to be installed ros-noetic-tf : Depends: ros-noetic-roswtf but it is not going to be installed ros-noetic-turtlebot3-autorace-camera : Depends: python-enum34 but it is not installable Depends: python3-opencv but it is not going to be installed Depends: ros-noetic-cv-bridge but it is not going to be installed ros-noetic-turtlebot3-autorace-core : Depends: python-enum34 but it is not installable ros-noetic-turtlebot3-autorace-detect : Depends: python-enum34 but it is not installable Depends: python3-opencv but it is not going to be installed Depends: ros-noetic-cv-bridge but it is not going to be installed ros-noetic-turtlebot3-autorace-driving : Depends: python-enum34 but it is not installable ros-noetic-turtlebot3-navigation : Depends: ros-noetic-amcl but it is not going to be installed Depends: ros-noetic-move-base but it is not going to be installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
05-27
### ROS Noetic 中 TurtleBot3 的依赖问题解决方案 在 ROS Noetic 下安装 `ros-noetic-turtlebot3` 及其相关依赖时,可能会遇到未满足的依赖项(unmet dependencies)。以下是针对这些特定依赖项的解决方法: #### 1. 更新系统包管理器索引 确保系统的软件源是最新的。运行以下命令来更新 APT 缓存并升级现有包: ```bash sudo apt update && sudo apt upgrade -y ``` #### 2. 安装缺失的依赖项 对于提到的具体依赖项,逐一分析如下: - **libboost-mpi-python-dev**: 这是一个 Boost 库的相关开发文件,用于支持 MPI Python 集成。可以通过以下命令安装[^1]: ```bash sudo apt install libboost-mpi-python-dev ``` - **libc6-dev**: C 标准库的开发者版本,通常已经预装于大多数 Linux 发行版中。如果缺少该组件,则可以执行以下操作[^2]: ```bash sudo apt install libc6-dev ``` - **libassimp-dev**: Open Asset Import Library (Assimp) 是一个开源的模型导入库。它提供了多种三维图形格式的支持。通过以下方式安装[^3]: ```bash sudo apt install libassimp-dev ``` - **grilo-plugins-0.3-base**: Grilo Plugins 提供多媒体内容检索功能的基础插件集合。此模块可能并非严格必要,但如果需要可尝试安装[^4]: ```bash sudo apt install grilo-plugins-0.3-base ``` - **python-enum34**: 此为 Python 枚举类型的兼容性扩展,在较新版本的 Python 中已内置枚举类。因此仅需确认当前环境是否仍需额外安装旧版支持工具[^5]: ```bash pip install enum34 --user ``` - **python3-opencv & ros-noetic-cv-bridge**: OpenCV 绑定以及 CV Bridge 转换工具链是计算机视觉应用的核心部分。分别采用标准仓库路径完成部署工作流程[^6][^7]: ```bash sudo apt install python3-opencv ros-noetic-cv-bridge ``` #### 3. 解决整体依赖冲突 当单独处理各单项失败后,考虑全局范围内的修复策略。利用 `apt-get` 或者更高级别的工具如 Synaptic Package Manager 来自动解析复杂关系网中的矛盾点。 例如强制重新计算最佳匹配方案的方法之一就是启用 `-f` 参数选项来进行自我修正模式下的重试过程[^8]: ```bash sudo apt-get -f install ``` 或者借助专门设计用来优化大型项目的辅助脚本程序——`rosdep` 工具来自动生成所需列表并向用户提供指导建议信息[^9]: ```bash sudo apt install python3-rosdep sudo rosdep init rosdep update cd ~/catkin_ws/ rosdep install --from-paths src --ignore-src -r -y ``` 以上步骤应当能够有效缓解乃至彻底消除因缺乏某些关键外部资源而导致的功能障碍现象。 ---
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhangrelay

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值