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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

六个案例搞懂mysql间隙锁

《六个案例搞懂mysql间隙锁》MySQL中的间隙是指索引中两个索引键之间的空间,间隙锁用于防止范围查询期间的幻读,本文主要介绍了六个案例搞懂mysql间隙锁,具有一定的参考价值,感兴趣的可以了解一下... 目录概念解释间隙锁详解间隙锁触发条件间隙锁加锁规则案例演示案例一:唯一索引等值锁定存在的数据案例二:

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3