当前位置: 首页 > news >正文

木叶飞舞之【机器人ROS2】篇章_第二节、turtlebot3安装

没有真实小车的情况下,利用gazebo的仿真,操作小乌龟来学习ros2。废话不多说,直接上命令。

Install Gazebo

sudo apt install ros-humble-gazebo-*

Install Cartographer

假如前一节未安装源码版本的cartographer,那就安装apt版本的。

sudo apt install ros-humble-cartographer
sudo apt install ros-humble-cartographer-ros

Install Navigation2

sudo apt install ros-humble-navigation2
sudo apt install ros-humble-nav2-bringup

Install TurBot3 Packages

source ~/.bashrc
sudo apt install ros-humble-dynamixel-sdk
sudo apt install ros-humble-turtlebot3-msgs
sudo apt install ros-humble-turtlebot3
sudo apt install ros-humble-turtlebot3-gazebo

Install Teleop

sudo apt-get install ros-humble-teleop-twist-keyboard

打开终端,启动机器人gazebo

ros2 launch turtlebot3_gazebo turtlebot3_house.launch.py

另开终端,再启动cartographer启动节点

ros2 launch turtlebot3_cartographer cartographer.launch.py 

另开终端,启动键盘启动节点,控制机器人

ros2 run teleop_twist_keyboard teleop_twist_keyboard

另开终端,结束构图,停止接受新数据

ros2 service call /finish_trajectory cartographer_ros_msgs/srv/FinishTrajectory "{trajectory_id: 0}"

序列化保存其当前状态

ros2 service call /write_state cartographer_ros_msgs/srv/WriteState "{filename: '/home/develop/bags/mymap.pbstream'}"

将pbstream转化为pgm和yaml,在cartographer_pbstream_to_ros_map目录下执行

cd /opt/ros/humble/lib/cartographer_ros
./cartographer_pbstream_to_ros_map -map_filestem=${HOME}/bags/mymap -pbstream_filename=${HOME}/bags/mymap.pbstream -resolution=0.05

相关文章:

木叶飞舞之【机器人ROS2】篇章_第二节、turtlebot3安装

没有真实小车的情况下,利用gazebo的仿真,操作小乌龟来学习ros2。废话不多说,直接上命令。 Install Gazebo sudo apt install ros-humble-gazebo-*Install Cartographer 假如前一节未安装源码版本的cartographer,那就安装apt版本…...

【论文阅读】自动驾驶安全的研究现状与挑战

文章目录 摘要1.引言1.1.自动驾驶安全1.2.攻击面1.3.内容和路线图 2.自动驾驶技术2.1.组成2.2.技术 3.传感器安全3.1.照相机3.2.GNSS(全球导航系统)/IMU(惯性测量单元)3.3.超声波传感器3.4.毫米波雷达3.5.激光雷达3.6.多传感器交叉…...

标签打印小工具 选择图片打印,按实际尺寸打印。可旋转图片

您可以尝试使用以下标签打印工具: 柯尼卡美能达标签打印机:功能齐全、易于使用的打印机,支持各种标签尺寸和类型。 赛门铁克标签打印机:高速打印、可靠性强的打印机,支持多种操作系统和软件。 齐柏林标签打印机&…...

什么是深拷贝和浅拷贝?

面试回答 在计算机内存中,每个对象都有一个地址,这个地址指向对象在内存中存储的位置。当我们使用变量引用一个对象时,实际上是将该对象的地址赋值给变量。因此,如果我们将一个对象复制到另一个变量中国,实际上是将对象…...

安装docker服务及docker基本操作

一、docker安装(yum安装) 基于centos7 1.添加docker-ce 源信息 安装依赖包(yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要device-mapper-persistent-data 和 lvm2) yum install yum-…...

【项目经验】:项目中下拉框数据太多造成页面卡顿(二)

一.项目需求 下拉框下拉列表数据是由后端返回的,而且他会变化,所以数据不是写死的而且数据量大。上一篇博客http://t.csdn.cn/sSNTa我们是用的数据懒加载的方式,这次我们使用远程搜索的方式解决这个问题。 二.用到的组件方法介绍 filterabl…...

Prompt本质解密及Evaluation实战(一)

一、基于evaluation的prompt使用解析 基于大模型的应用评估与传统应用程序的评估不太一样,特别是基于GPT系列或者生成式语言模型,因为模型生成的内容与传统意义上所说的内容或者标签不太一样。 以下是借用了ChatGPT官方的evaluation指南提出的对结果的具…...

linux 在系统已有python2版本下安装python3

方法一:使用包管理器安装 更新包索引: sudo apt update 安装Python3: sudo apt install python3 安装Python3的pip(如果你需要): sudo apt install python3-pip 验证Python 2和3的安装: pyt…...

IO多路转接 ——— select、poll、epoll

select初识 select是系统提供的一个多路转接接口。 select系统调用可以让我们的程序同时监视多个文件描述符的上的事件是否就绪。 select的核心工作就是等,当监视的多个文件描述符中有一个或多个事件就绪时,select才会成功返回并将对应文件描述符的就绪…...

FPGA原理与结构——FIFO IP核原理学习

一、FIFO概述 1、FIFO的定义 FIFO是英文First-In-First-Out的缩写,是一种先入先出的数据缓冲器,与一般的存储器的区别在于没有地址线, 使用起来简单,缺点是只能顺序读写数据,其数据地址由内部读写指针自动加1完成&…...

【Linux操作系统】Linux中的信号回收:管理子进程的关键步骤

在Linux中,我们可以通过捕获SIGCHLD信号来实现对子进程的回收。当一个子进程终止时,内核会向其父进程发送SIGCHLD信号。父进程可以通过注册信号处理函数,并在处理函数中调用wait()或waitpid()函数来回收已终止的子进程。 文章目录 借助信号捕…...

Spark大数据分析与实战笔记(第一章 Scala语言基础-1)

文章目录 章节概要1.1 初识Scala1.1.1 Scala的概述1.1.2 Scala的下载安装1.1.3 在IDEA开发工具中下载安装Scala插件1.1.4 开发第一个Scala程序 章节概要 Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术…...

R语言03-R语言中的矩阵

概念 在R语言中,矩阵(Matrix)是一个二维的数据结构,由行和列组成,其中所有元素必须具有相同的数据类型。矩阵可以用于存储数值型数据,常用于线性代数运算、统计计算以及数据处理等领域。 代码示例 # 创建…...

“深入理解JVM:探索Java虚拟机的工作原理与优化技巧“

标题:深入理解JVM:探索Java虚拟机的工作原理与优化技巧 摘要:本文将深入探索Java虚拟机(JVM)的工作原理及优化技巧。我们将介绍JVM的架构和组成部分,解释JVM是如何将Java字节码转换为可执行代码的。我们还…...

SQL注入原理

SQL、SQL注入是什么? 结构化查询语言(Structured Query Language,SQL),是一种特殊的编程语言,用于数据库的标准数据查询。1986 年10 月美国国家标准协会对SQL 进行了规范后,以此作为关系型数据库系统的标准语言。1987 …...

PIL.Image和base64,格式互转

将PIL.Image转base64 ##PIL转base64 import base64 from io import BytesIOdef pil_base64(image):img_buffer BytesIO()image.save(img_buffer, formatJPEG)byte_data img_buffer.getvalue()base64_str base64.b64encode(byte_data)return base64_str将base64转PIL.Image …...

vue父子组件传值(v-model)

父组件使用v-model传值给子组件 <template><!-- 按钮 --> <el-button click"addMenu(new)">打开弹框</el-button><!-- 自定义组件,下面这两种写法都可以&#x1f447; --> <MediaDialog :name"name" v-model:visible&qu…...

Java接口详解

接口 接口的概念 在现实生活中&#xff0c;接口的例子比比皆是&#xff0c;比如&#xff1a;笔记本上的USB口&#xff0c;电源插座等。 电脑的USB口上&#xff0c;可以插&#xff1a;U盘&#xff0c;鼠标&#xff0c;键盘等所有符合USB协议的设备 电源插座插孔上&#xff0c;…...

Windows共享文件夹,用户密码访问

Windows共享文件夹&#xff0c;用户密码访问 小白教程&#xff0c;一看就会&#xff0c;一做就成。 1.先创建一个用户 计算机右键----管理----本地用户和组----点击用户进去---右键新建用户 这里以kk为例 2.找到你想共享的文件夹 3.共享-想共享的文件夹---右键---属性---共…...

Mac更新node

查看本机node版本 node -v 删除node相关内存 sudo npm cache clean -f 安装n sudo npm install n -g 更新node版本 sudo n stable // 把当前系统的 Node 更新成最新的 “稳定版本” sudo n lts // 长期支持版 sudo n latest // 最新版 sudo n 18.17.1 // 指定安装版本 可以顺便…...

Vite+React+TypeScript构建个人作品集网站:从技术选型到GitHub Pages自动化部署

1. 项目概述&#xff1a;一个现代开发者如何构建自己的技术名片最近刚把自己的个人作品集网站重构上线&#xff0c;地址是https://yucco-k.github.io。这不仅仅是一个展示作品的静态页面&#xff0c;更是一个我用来实践和整合现代前端技术栈的“游乐场”。对于开发者而言&#…...

别再只用memcpy了!手把手教你用memcpy_s写出更安全的C语言代码(附VS2022实战)

从memcpy到memcpy_s&#xff1a;现代C语言安全编程实战指南 在Visual Studio 2022的编译输出窗口中&#xff0c;那个刺眼的C4996警告已经成为许多C语言开发者的"老朋友"。当看到"error C4996: memcpy: This function or variable may be unsafe"时&#xf…...

非确定有限自动机—计算机等级考试—软件设计师考前备忘录—东方仙盟

1. 先明确&#xff1a;圆圈里的数字是什么&#xff1f;圆圈里的 0,1,2,3,4,5 是状态编号&#xff0c;不是输入符号&#xff0c;也不是要识别的字符串内容。比如 状态0 是起始状态&#xff0c;状态5 是终止&#xff08;接受&#xff09;状态。箭头边上的 0,1,ε 才是输入符号&am…...

告别编译噩梦:在Ubuntu 22.04上为你的C++项目搞定Abseil依赖的三种方法

告别编译噩梦&#xff1a;在Ubuntu 22.04上为你的C项目搞定Abseil依赖的三种方法 在C项目的开发过程中&#xff0c;依赖管理一直是开发者面临的一大挑战。特别是对于现代C项目而言&#xff0c;如何高效、可靠地引入和管理第三方库&#xff0c;往往决定了项目的开发效率和最终质…...

应急通信无人机中继部署与覆盖率优化【附仿真】

✨ 长期致力于应急通信、无人机、中继部署、通信覆盖率、无人机部署数目研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;视距概率信道建模与高度部署&a…...

ATPG技术革新:从传统测试到单元感知与智能并行

1. 从“可靠的老黄牛”到“敏捷的赛马”&#xff1a;ATPG技术为何必须革新在芯片设计这个行当里干了十几年&#xff0c;Automatic Test Pattern Generation&#xff0c;也就是我们常说的ATPG&#xff0c;一直是个让人又爱又恨的角色。爱它&#xff0c;是因为它就像产线上那位最…...

ExplorerPatcher:彻底改造你的Windows界面体验,打造个性化高效工作环境

ExplorerPatcher&#xff1a;彻底改造你的Windows界面体验&#xff0c;打造个性化高效工作环境 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher …...

告别LSMW!SAP S/4HANA数据迁移新宠:手把手激活Migration Cockpit (LTMC/LTMOM)服务

SAP S/4HANA数据迁移革命&#xff1a;Migration Cockpit全流程实战指南 在SAP生态系统中&#xff0c;数据迁移一直是项目实施过程中最关键的环节之一。传统LSMW工具虽然功能强大&#xff0c;但随着S/4HANA的推出&#xff0c;其局限性日益凸显。本文将带您深入探索SAP官方推荐的…...

编译原理实战:手把手教你化简DFA

1. 从零开始理解DFA化简 第一次接触DFA化简这个概念时&#xff0c;我盯着课本上那些复杂的箭头和状态图发了好一会儿呆。作为一个编译原理的初学者&#xff0c;最让我困惑的是&#xff1a;为什么已经有了能工作的DFA&#xff0c;还要费劲去化简它&#xff1f;直到在实际项目中遇…...

为Cursor AI Agent构建专用HTTP客户端:扩展智能体联网能力实战

1. 项目概述&#xff1a;一个为Cursor AI Agent定制的HTTP客户端 如果你和我一样&#xff0c;深度使用Cursor作为日常开发的主力工具&#xff0c;那你肯定对它的“Agent”功能又爱又恨。爱的是&#xff0c;它能理解你的意图&#xff0c;帮你生成代码、重构函数、甚至写测试&…...