Turtlebot3模拟仿真(参考书《ROS机器人开发实用案例分析》卡罗尔·费尔柴尔德, 托马斯·L.哈曼 机械工业出版社, 2020年4月)

本文主要是介绍Turtlebot3模拟仿真(参考书《ROS机器人开发实用案例分析》卡罗尔·费尔柴尔德, 托马斯·L.哈曼 机械工业出版社, 2020年4月),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.下载turtlebot3模拟软件(注意替换为自己的ROS版本)

sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation

2.下载编译功能包到catkin_ws/src目录下(无法访问尝试切热点)

创建工作空间

mkdir -p catkin_ws/src

cd ~/catkin_ws/src

git clone ​​​​​​​https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git

git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git

git clone https://github.com/ROBOTIS-GIT/turtlebot3.git

cd ~/catkin_ws

catkin_make

说明:turtlebot3,turtlebot3msgs,turtlebot3simulations目录位于工作空间的src目录下。turtlebot3_simulations目录下包含了turtlebot3_fake功能包,用于在Rviz下对Turtlebot3进行模拟。turtlebot3_simulations目录下包含了turtlebot3_gazebo功能包,用于在Gazebo中对Turtlebot3模拟

3.设置环境变量

export ROSCORE_URI=http://localhost:11311

export ROS_HOSTNAME=localhost

4.Rviz启动turtlebot3模拟软件

选择模型

export TURTLEBOT3_MODEL=burger

设置环境变量

source devel/setup.bash

启动模拟环境

roslaunch turtlebot3_fake turtlebot3_fake.launch

说明:该语句启动了3个节点ros_state_publisher,rviz以及turtlebot3_fake_node

快捷键Ctrl+alt+T新建终端(第2个终端),用于键盘控制turtlebot(每新开一个终端都要重新输入一遍前三句话)

cd catkin_ws

export TURTLEBOT3_MODEL=burger

source devel/setup.bash

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

 注意把终端窗口放在rviz窗口上面,用WASD键控制(类似于turtle)

5.Gazebo启动Turtlebot3模拟软件

可以把之前的2个终端都关掉了,或者留1个终端(输入Ctrl+C终止,觉得太乱输入clear清除代码,这样做不需要重新设置环境变量)

(1)选择模型、设置环境变量

cd catkin_ws

export TURTLEBOT3_MODEL=burger

source devel/setup.bash

启动空模拟环境(终端1)

roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch

在Gazebo界面左上角file-Quit并在终端按下Ctrl+C,若关闭终端需要重新设置TURTLEBOT3_MODEL模型

启动一个包含多物体的场景(还是在终端1操作,也可以在VSCode环境下跑,这里就不再赘述)

roslaunch turtlebot3_gazebo turtlebot3_world.launch

新建终端控制burger的移动(类似于rviz的步骤)(终端2)

cd catkin_ws

source devel/setup.bash

export TURTLEBOT3_MODEL=burger

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

(2)自主导航,Ctrl+C终止键盘控制进程,关闭终端窗口,打开新界面窗口(终端2)(终端1保留,其实就是多物体的环境保留,把操作机器人移动的终端关掉)

cd catkin_ws

source devel/setup.bash

export TURTLEBOT3_MODEL=burger

roslaunch turtlebot3_gazebo turtlebot3_simulation.launch

(3)Rviz将以Turtlebot3为中心进行可视化显示(终端3)

新建终端,设置模型,启动launch文件

cd catkin_ws

source devel/setup.bash

export TURTLEBOT3_MODEL=burger

roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

说明:3个终端分别运行:环境,gazebo中自主导航的机器人,rviz雷达显示——每个终端都要设置环境变量source devel/setup.bash和设置模型export TURTLEBOT3_MODEL=burger

这篇关于Turtlebot3模拟仿真(参考书《ROS机器人开发实用案例分析》卡罗尔·费尔柴尔德, 托马斯·L.哈曼 机械工业出版社, 2020年4月)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810597

相关文章

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件