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

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<