关于ros2、webots的应用总结

2023-05-16

关于ros2、webots的应用总结

一、资源简介
(1)版本要求
ubuntu20.04.1
ros2 foxy
(2)资源链接
webots官网:
http://www.cyberbotics.com/
webots_ros2网址: https://github.com/cyberbotics/webots_ros2/tree/master/webots_ros2_examples
(3)工具安装
(4)安装路经
webots安装路经:
/usr/local/webots
webots_ros2安装路经:
/opt/ros/foxy/share/
(5)启动webots
打开终端:输入命令webots
示意图如下所示: 在这里插入图片描述 在这里插入图片描述

二、启动导航功能
打开终端1:
参考https://github.com/cyberbotics/webots_ros2/wiki/Example-TurtleBot3-Burger

    export TURTLEBOT3_MODEL=burger
    source /opt/ros/foxy/setup.bash 
    source /root/app/ros2ex/out/install/setup.bash
    ros2 launch webots_ros2_core robot_launch.py executable:=webots_differential_drive_node node_parameters:=$(ros2 pkg prefix webots_ros2_examples --share)/resource/turtlebot3_burger.yaml
    world:=$(ros2 pkg prefix webots_ros2_examples --share)/worlds/turtlebot3_burger_example.wbt

示意图如下所示:
在这里插入图片描述
打开终端2:
键盘控制小车运动。

  export TURTLEBOT3_MODEL=burger
  source /opt/ros/foxy/setup.bash 
  source /root/app/ros2ex/out/install/setup.bash
  ros2 run turtlebot3_teleop teleop_keyboard

打开终端3:
利用cartographer建图。
参考https://github.com/cyberbotics/webots_ros2/wiki/SLAM-with-TurtleBot3

  export TURTLEBOT3_MODEL=burger
  source /opt/ros/foxy/setup.bash 
  source /root/app/ros2ex/out/install/setup.bash
  ros2 launch turtlebot3_cartographer cartographer.launch.py \
use_sim_time:=true

示意图如下所示:
在这里插入图片描述

打开终端4:
参考https://github.com/cyberbotics/webots_ros2/wiki/Navigate-TurtleBot3

    export TURTLEBOT3_MODEL=burger
    source /opt/ros/foxy/setup.bash 
    source /root/app/ros2ex/out/install/setup.bash
    ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=true map:=$(ros2 pkg prefix webots_ros2_turtlebot --share)/resource/turtlebot3_burger_example_map.yaml

示意图如下所示:在这里插入图片描述
三、搭建仿真小车
(1)四轮小车组件制作步骤
a.打开终端,输入命令webots,启动webots界面。
b.Wizards->New Project Directory新建工程。
c.新建四轮小车模型,加上camera、红外测距、2D激光雷达传感器,激光雷达调用的是webots中的RobotisLds01组件。
请参考https://www.guyuehome.com/15557
d.仿照TurtleBot3Burger_enu.proto的代码,将工程里worlds/.wbt文件中的四轮小车代码拷贝到txt文档中,并将txt文档后缀名改为.proto,同时命名为zhuyFourWheelsRobot.proto,该文件就是四轮机器人组件,可以被.wbt文件直接调用。
e.小车组件坐标系
在这里插入图片描述

(2)室内环境搭建
仿照turtlebot3_burger_example.wbt的代码,构建zhuy.wbt。
(3)参数文件配置
仿照turtlebot3_burger.yaml的代码,构建zhuy_turtlebot3_burger.yaml。
其中,

  wheel_distance: 0.076
  wheel_radius: 0.03

很关键,必须按照四轮小车的实际参数设置,否则,导航效果很差,出现路经经常变动和定位错误的问题。
(4)工程链接和文件放置
a.工程链接:https://github.com/zhuyrobot/webotsfourwheelrobot.git
b.文件zhuy.wbt放在/opt/ros/foxy/share/webots_ros2_examples/worlds路经下。
c.文件zhuyFourWheelsRobot.proto放在/opt/ros/foxy/share/webots_ros2_examples/protos路经下。
d.文件zhuy_turtlebot3_burger.yaml放在/opt/ros/foxy/share/webots_ros2_examples/resource路经下。
(5)启动导航功能
打开终端1:

    export TURTLEBOT3_MODEL=burger
    source /opt/ros/foxy/setup.bash 
    source /root/app/ros2ex/out/install/setup.bash
    ros2 launch webots_ros2_core robot_launch.py executable:=webots_differential_drive_node node_parameters:=$(ros2 pkg prefix webots_ros2_examples --share)/resource/zhuy_turtlebot3_burger.yaml world:=$(ros2 pkg prefix webots_ros2_examples --share)/worlds/zhuy.wbt

在这里插入图片描述
打开终端2:

    export TURTLEBOT3_MODEL=burger
    source /opt/ros/foxy/setup.bash 
    source /root/app/ros2ex/out/install/setup.bash
    ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=true map:=$(ros2 pkg prefix webots_ros2_turtlebot --share)/resource/turtlebot3_burger_example_map.yaml

在这里插入图片描述在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于ros2、webots的应用总结 的相关文章

  • 安装树莓派的系统到SD卡

    安装树莓派的系统到 SD卡 准备工作 1 一张 16G 以上的 SD 卡 xff0c 最好是高速卡 xff0c 推荐 Class4 以上的卡 xff0c 因为卡得速度直接影响树莓派的运行速度 2 格式化SD卡工具 xff0c 建议使用工具
  • 串口测试例程

    串口分为RS232和TTL xff0c 所以在测试前请先确认自己的串口类型进行测试 下面以海思的一个RS232串口为例说明一下具体的测试过程 xff0c 串口测试代码参考的为讯为提供的 xff0c 在其基础上做的调整 1 确定接口 xff0
  • C语言中的字符串初始化

    1 C语言没有字符串类型 xff0c 通过字符数组模拟 xff0c C语言字符串 xff0c 以字符 0 数字0 2 数组指定长度后 xff0c 后面没有赋值的元素 xff0c 自动补0 char buf 100 61 39 a 39 39
  • 自动收取蚂蚁森林能量雨

    首先 xff0c 说明一下 这是一个非常迂回且效果不佳的方法 xff0c 小弟不才 xff0c 安卓以及苹果手机上的脚本没啥研究 xff0c PC的按键精灵略懂 xff0c 因此才有一下脚本 觉得有用拿去参考 xff0c 大佬勿喷 我一直都
  • AD中画圆弧形板框的方法

    在实际的板框设计中 xff0c 有时为了生产需要 xff0c 不得不需要将PCB板设计成四角需要倒角的形式 xff0c 经过实际的摸索 xff0c 现在得出一种画圆形板框的小技巧 现在需要将板框设计成3 5mm半径样式 xff08 1 xf
  • AD中板内挖空的方法

    一 先使用禁止布线层将板框确定 使用的快捷键 xff1a D gt S gt D 二 再绘制一个挖空区域 使用的快捷键 xff1a T gt V gt B 三 挖空后的效果
  • STL初识

    STL的诞生 长久以来 xff0c 软件界一直希望建立一种可重复利用的东西 C 43 43 的面向对象和泛型编程思想 xff0c 目的就是复用性的提升 大多情况下 xff0c 数据结构和算法都未能有一套标准 导致被迫从事大量重复工作 为了建
  • 删除U盘中的System Volume Information 文件夹的方法

    在使用U盘测试ARM板的时候 xff0c 会发现System Volume Information这个文件夹阴魂不散 xff0c 总是存在 xff0c 在Windows下是看不见的 xff0c 即便将文件的查看属性设置为显示隐藏文件 在使用
  • Linux命令发送Http的get或post请求

    get请求 curl命令模拟get请求 xff1a 1 使用curl命令 xff1a curl span class hljs string 34 http www baidu com 34 span 如果这里的URL指向的是一个文件或者一
  • 深度学习之----多任务学习

    介绍 在机器学习 xff08 ML xff09 中 xff0c 通常的关注点是对特定度量进行优化 xff0c 度量有很多种 xff0c 例如特定基准或商业 KPI 的分数 为了做到这一点 xff0c 我们通常训练一个模型或模型组合来执行目标
  • PID控制原理(全干货)

    主要内容 xff1a 1 常用的控制算法与PID控制算法的异同点 xff1b 2 PID控制算法的理论分析 3 基于单片机的PID算法实现 4 PID算法的工程应用的一些注意事项 5 演示板电路分析 6 PID算法C语言实现 基于ARM C
  • ESP32 手册+文档整理

    ESP32 一些手册和批注 Arduino IDE 这个板子是带了LoRa的版本 xff0c 国外还有一个TTGo 有类似的ESP32 43 LoRa这种组合 如果不需要LoRa xff0c 可以考虑ESP32 DevKit 或者PicoK
  • 【TVM帮助文档学习】TVM语言参考

    本文翻译自Language Reference tvm 0 9 dev0 documentation 本文档提供TVM的嵌入式语言和IRs的参考 Relay介绍 Relay 是一种函数式的 可微的编程语言 它是一种面对机器学习领域的具有良好
  • 【TVM帮助文档学习】通过示例分析TVM代码流程

    本文翻译自TVM Codebase Walkthrough by Example tvm 0 9 dev0 documentation 了解TVM代码颇具挑战性 xff0c 它的各组件之间的交互非常隐晦 在本指南中 xff0c 我们将通过一
  • Linux设置nacos自启动(centos7)

    1 编写服务脚本 vim lib systemd system nacos service 将下列内容添加进入 span class token punctuation span Unit span class token punctuat
  • 图像处理——Haar特征

    Haar特征最初是用来进行人脸特征的表示的 xff0c 最近重新看了SURF算法 xff0c 发现在生成特征点描述子的时候也有用到Haar特征 查看了一些博文 xff0c 自己整理一些 xff0c 方便以后复习 Haar特征分为三类 xff
  • TVM运行时系统

    本文翻译自TVM Runtime System tvm 0 9 dev0 documentation TVM的编译器栈开发和部署支持多种编程语言 在本文中 xff0c 我们将解释TVM运行时的关键元素 我们需要满足一些有趣的需求 部署 从p
  • 彻底解决anaconda虚拟环境中pip是全局pip 下载包自动到base环境而非虚拟环境的问题 No module named _abc报错解决

    删除系统变量中的 PYTHONHOME C ProgramData Anaconda3 同时需要将虚拟环境的Lib site package的路径添加至系统变量Path中 xff0c 否则还是会报没有 abc模块的错误
  • C++基础语法

    C语言作为程序化的开发语言 xff0c 适合处理较小规模的程序 xff0c 相对于大规模程序 xff0c C语言并不合适 xff0c 所以提出了C 43 43 语言 C 43 43 对C语言的加强主要表现在 1 命名空间 2 函数重载与运算
  • 什么是DOM对象?如何获取DOM对象?

    今天的web前端培训环节 xff0c 我们讲解一下DOM对象 DOM对象本质上是浏览器根据html标签生成的 JS对象 xff0c 它的所有的标签属性都可以在这个 JS对象上面找到 xff0c 修改这个对象的属性会自动映射到标签身上 DOM

随机推荐

  • 2021电赛F题数字识别和巡线部分

    文章之前12月发了一次 xff0c 但是我后来申请的免毕设后 xff0c 用到了一些文字 xff0c 所以删了这篇文章 xff0c 但是还是查重了 xff0c 于是我把一些程序讲解先删了 xff0c 等毕设结束后再编辑加上 这次电赛我没有准
  • STM32CubeMX的使用,配置DMA串口

    这次记录下最近调用的外设 DMA以前用得很少 xff0c 只通过ADC采集使用 xff0c 开启后就直接读那个数组就可以了 我对dma的理解就是不占用cpu xff0c 数据传输速度快 xff0c 可以直接从外设和内存间相互读取 目前的工作
  • Freertos利用队列传递变量值

    记录部分代码 void CreateTask xTaskCreate LED Task 34 LED 34 30 NULL 0 amp LED Handle xTaskCreate OLED Task 34 OLED 34 150 NULL
  • CubeMX调用DSP库

    踩坑记录 先下载库 下载安装完记得勾选 生成工程 把Cube库中对应型号文件夹中的DSP头文件复制到自己工程目录下 Middlewares ST ARM DSP Inc 编译 xff0c 此时会报错 xff0c 定位 复制对应系列芯片至 再
  • FreeRTOS 事件组

    实现功能 xff0c 当任务A B完成后执行串口任务 不同任务用不同的位表示 configUSE 16 BIT TICKS 61 1 bitx 0 7 xff1b configUSE 16 BIT TICKS设置为0 xff0c bitx
  • STM32 硬件SPI应用 WK2124串口扩展芯片

    根据官方实例代码修改而成 xff0c 具体寄存器参数请参考手册 全双工模式 xff0c 8位数据 xff0c 有效位为最高位 预分频结果最终在芯片工作范围内即可 SPI模式0 CS片选信号是自己用软件设定 仅列出读写寄存器修改 xff0c
  • Mapreduce单词计数的例子

    WordCount类 package org apache hadoop examples span class hljs comment 著名源文件存放的地方 span import java io IOException import
  • LCD12864驱动显示程序

    这里是用的并行写法 xff0c 后续会更新串行 并行缺点就是太占用io口了 xff0c 我其实更喜欢用串行 不过不是比赛要求都不怎么用了 lcd12864 c include 34 lcd12864 h 34 uchar code num
  • HC-SR501人体红外感应模块程序

    当感应到时 xff0c 输出一个高电平 这里我对io口进行了配置 xff0c 要不然读不到高电平 建议大家以后养成习惯 xff0c 对io口进行配置 xff0c stm32中会用到 在这里我额外提下 xff0c 一般在stm32中 浮空输入
  • HX711称重模块程序

    以上部分截自于厂家数据手册 include lt STC12C5A60S2 H gt include 34 lcd12864 h 34 unsigned long HX711 Buffer 61 0 unsigned long Weight
  • SYN6288中文语音合成 程序

    用到串口2 xff0c 因为串口1的话会影响下载 xff0c 需每次拔插线 include lt STC12C5A60S2 H gt include lt stdio h gt include lt math h gt include lt
  • STC单片机超声波程序

    SR05 xff0c 这款只能用定时器计算 include lt intrins h gt include 34 12864 h 34 include lt stdio h gt sbit RX 61 P1 6 sbit TX 61 P1
  • VTK学习-坐标系统

    写在前面 xff1a 这篇博客简要根据书本内容简要介绍一些VTK中要用到的坐标系统与空间变换 这一部分与计算机图形学结合更加紧密 想起之前也 被迫 研究过一段时间的计算机图形学中三维显示部分 xff0c 现在简单学一学 xff0c 提示一下
  • python出现进程已结束,退出代码为-1066598274 (0xC06D007E)的含义

    python出现进程已结束 xff0c 退出代码为 1066598274 0xC06D007E 的含义为你当前使用的某个包与其他相关的包版本之间发生冲突 解决方法 xff1a 卸载正在使用的当前包与相关包 重新安装一遍即可解决
  • lxc

    LXC为Linux Container的简写 Linux Container容器是一种内核 虚拟化技术 xff0c 可以提供轻量级的虚拟化 xff0c 以便隔离进程和资源 xff0c 而且不需要提供指令解释机制以及全虚拟化的其他复杂性 相当
  • 关于ros2、turtlebot3和nav2的应用总结

    关于ros2 turtlebot3和nav2的应用总结 一 资源简介 1 版本要求 ros2 foxy turtlebot3 waffle nav2 0 4 1 gazebo gazebo ros pkgs 3 5 0 zip 2 资源链接
  • motion_primitive_library导航源码阅读笔记

    一 motion primitive library导航源码阅读笔记 二 路径规划文献 Search based Motion Planning for Quadrotors using Linear Quadratic Minimum T
  • Linux下安装cmake步骤详解(图文)

    1 查看Linux位数 getconf LONG BIT 2 获cmake源码包 这里我先新建一个文件夹来存放cmake mkdir app cd app wget https cmake org files v3 3 cmake 3 3
  • cartographer代码流程整理

    代码解析地址 https zhuanlan zhihu com p 48010119 一 代码目录结构 1 cartographer ros 2 cartographer 二 测试命令 2D xff1a roslaunch cartogra
  • 关于ros2、webots的应用总结

    关于ros2 webots的应用总结 一 资源简介 1 版本要求 ubuntu20 04 1 ros2 foxy 2 资源链接 webots官网 xff1a http www cyberbotics com webots ros2网址 xf