Ubuntu 的 ROS2 操作系统turtlebot3环境搭建

引言

在这里插入图片描述


学习目标

在这里插入图片描述


学习内容

1 PC 设置

注意:本文内容对应的是远程PC(桌面或笔记本电脑),用于控制TurtleBot3。 请勿将此指令应用到TurtleBot3机器人上。

1.1 兼容性注意事项
  • 说明:本说明已在安装了 Ubuntu 22.04 和 ROS2 Humble 版本的 Linux 系统上进行测试。
  • 安装前请详细参考 ———>专栏: Linux系统之Ubuntu系统安装 。
  • 安装前请详细参考 ———>专栏: Turtlebot3 PC端ROS环境搭建与仿真。
1.2 下载和安装 Ubuntu 系统

1.2.1 下载适用于 PC 的 Ubuntu 22.04 LTS 镜像。

  • 🕐见专栏:Linux系统之Ubuntu系统安装之 1-磁盘建立空闲分区。
  • 🕑见专栏:Linux系统之Ubuntu系统安装之 2-Ubuntu/Windows系统启动盘制作。

1.2.2 按照 安装 Ubuntu 的说明在 PC 上安装 Ubuntu 桌面版。

  • 见专栏:Linux系统之Ubuntu系统安装之 3-Ubuntu系统详细安装教程。

2 安装 ROS2 Humble

2.1 在终端中依次输入以下命令来安装 ROS2 Humble
# 更新包索引
sudo apt update

# 升级现有包
sudo apt upgrade

# 安装 ROS2 Humble
sudo apt install ros-humble-desktop

# 安装 ROS2 的开发工具
sudo apt install ros-humble-ros-base

2.2 专栏参考教程

如果2.1安装步骤失败,请参考下列教程:

专栏:Turtlebot3 PC端ROS环境搭建与仿真之 Ubuntu 的 ROS 2 操作系统安装与测试。


3 安装依赖的 ROS2 包

# 安装 TurtleBot3 需要的 ROS2 依赖包
sudo apt install ros-humble-joy ros-humble-teleop-twist-joy \
ros-humble-teleop-twist-keyboard ros-humble-laser-proc \
ros-humble-rgbd-launch ros-humble-rosserial-arduino \
ros-humble-rosserial-python ros-humble-rosserial-client \
ros-humble-rosserial-msgs ros-humble-amcl ros-humble-map-server \
ros-humble-move-base ros-humble-urdf ros-humble-xacro \
ros-humble-compressed-image-transport ros-humble-rqt* ros-humble-rviz \
ros-humble-gmapping ros-humble-navigation ros-humble-interactive-markers


4 安装 TurtleBot3 包

4.1 通过Debian包安装TurtleBot3
# 安装 Dynamixel SDK 和 TurtleBot3 包
sudo apt install ros-humble-dynamixel-sdk
sudo apt install ros-humble-turtlebot3-msgs
sudo apt install ros-humble-turtlebot3

4.2 通过源代码构建(推荐)
# 移除现有包
sudo apt remove ros-humble-dynamixel-sdk
sudo apt remove ros-humble-turtlebot3-msgs
sudo apt remove ros-humble-turtlebot3

# 创建工作空间并克隆源码
mkdir -p ~/turtlebot3_ws/src
cd ~/turtlebot3_ws/src/
git clone -b humble-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
git clone -b humble-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone -b humble-devel https://github.com/ROBOTIS-GIT/turtlebot3.git

# 编译工作空间
cd ~/turtlebot3_ws
colcon build --symlink-install

# 添加工作空间环境到 .bashrc
gedit 'source ~/turtlebot3_ws/install/setup.bash' >> ~/.bashrc
source ~/.bashrc


5 网络配置

5.1 查找分配的IP地址

连接PC到WiFi设备,并使用以下命令查找分配的IP地址:

# 获取IP地址
ifconfig

参考图例如下图所示:
在这里插入图片描述

5.2 更新 ROS2 的IP设置

打开.bashrc文件,并根据上面获取的IP地址更新ROS的IP设置。

# 打开.bashrc文件
gedit ~/.bashrc

# 将localhost地址替换为获取的IP地址
# 在文件末尾添加以下内容
export ROS_MASTER_URI=http://<Your_PC_IP>:11311
export ROS_HOSTNAME=<Your_PC_IP>

参考图例如下图所示:

在这里插入图片描述

5.3 更新.bashrc配置
# 重新加载.bashrc
source ~/.bashrc


小结

  • 本文详细介绍了在 Ubuntu 系统上为 TurtleBot3 配置 ROS Noetic 环境的步骤,包含系统安装、依赖包安装和网络配置。
  • 通过本文的逐步操作,用户能够在 PC 端搭建稳定的 ROS 环境,有效控制 TurtleBot3 并为后续的机器人开发和算法调试打好基础,确保设备间的连接和 ROS 设置顺利完成。

欢迎大家评论留言!!!


友情提示:

  • 专栏:Turtlebot3 PC端ROS环境搭建与仿真
  • 下一节:Ubuntu 的 ROS 操作系统 turtlebot3 环境测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[CKS] Create/Read/Mount a Secret in K8S

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于读取、创建以及挂载secret的题目。 ​ 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[C…

HCIP-快速生成树RSTP

一、RSTP是什么 STP&#xff08;Spanning Tree Protocol &#xff09;是生成树协议的英文缩写。该协议可应用于环路网络&#xff0c;通过一定的算法实现路径冗余&#xff0c;同时将环路网络修剪成无环路的树型网络&#xff0c;从而避免报文在环路网络中的增生和无限循环。 RS…

如何在CentOS 7上搭建SMB服务

如何在CentOS 7上搭建SMB服务 因项目测试需求&#xff0c;需要自行搭建SMB服务&#xff0c;**SMB&#xff08;Server Message Block&#xff09;**协议是一种常用的文件共享方式&#xff0c;它可以让不同操作系统之间共享文件、打印机等资源。本文将带你一步步搭建一个简单的S…

Elasticsearch中什么是倒排索引?

倒排索引&#xff08;Inverted Index&#xff09;是一种索引数据结构&#xff0c;它在信息检索系统中被广泛使用&#xff0c;特别是在全文搜索引擎中。倒排索引允许系统快速检索包含给定单词的文档列表。它是文档内容&#xff08;如文本&#xff09;与其存储位置之间的映射&…

部署DNS域名解析服务

部署DNS域名解析服务 一.DNS介绍 域名 Domain Name&#xff0c;简称域名、网域&#xff0c;是由一串用点分隔的名字组成的 Intermet 上某一台计算机或计算机组的名称&#xff0c;用于在数据传输时标识计算机的电子方位。具有独一无二&#xff0c;不可重复的特性。 DNS 域名…

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件

Springboot 使用EasyExcel导出含图片并设置样式的Excel文件 Excel导出系列目录&#xff1a;★★★★尤其注意&#xff1a;引入依赖创建导出模板类逻辑处理controllerservice 导出效果总结 Excel导出系列目录&#xff1a; 【Springboot 使用EasyExcel导出Excel文件】 【Springb…

ubuntu18.04 安装与卸载NCCL conda环境安装PaddlePaddle

cuda版本11.2 说明PaddlePaddle需要安装NCCL 1、Log in | NVIDIA Developer 登录官网 找到对应版本 官方提供了多种安装方式&#xff0c;本文使用Local installers (x86)本地安装 点击对应的版本下载如&#xff1a; nccl-local-repo-ubuntu1804-2.8.4-cuda11.2_1.0-1_amd6…

FPGA实现以太网(二)、初始化和配置PHY芯片

系列文章目录 FPGA实现以太网&#xff08;一&#xff09;、以太网基础知识 文章目录 系列文章目录一、MDIO协议介绍二、PHY芯片管脚以及结构框图三、MDIO帧时序介绍3.1 MDIO帧格式3.2 MDIO写时序3.3 MDIO读时序 四、PHY芯片常用寄存器描述4.1 基本模式控制寄存器&#xff08;0…

leetcode day10 动态规划篇 64+139

64 最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 m grid.lengthn grid[i].length1 < m, n < 2000 < grid[i][j]…

【系统面试篇】其他相关题目——虚拟内存、局部性原理、分页、分块、页面置换算法

目录 一、相关问题 1. 什么是虚拟内存&#xff1f;为什么需要虚拟内存&#xff1f; &#xff08;1&#xff09;内存扩展 &#xff08;2&#xff09;内存隔离 &#xff08;3&#xff09;物理内存管理 &#xff08;4&#xff09;页面交换 &#xff08;5&#xff09;内存映…

【论文复现】ChatGPT多模态命名实体识别

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ChatGPT ChatGPT辅助细化知识增强&#xff01;1. 研究背景2. 模型结构和代码3. 任务流程第一阶段&#xff1a;辅助精炼知识启发式生成第二阶段…

深度学习之循环神经网络(RNN)

1 为什么需要RNN&#xff1f; ​ 时间序列数据是指在不同时间点上收集到的数据&#xff0c;这类数据反映了某一事物、现象等随时间的变化状态或程度。一般的神经网络&#xff0c;在训练数据足够、算法模型优越的情况下&#xff0c;给定特定的x&#xff0c;就能得到期望y。其一…

【从零开始的LeetCode-算法】3238. 求出胜利玩家的数目

给你一个整数 n &#xff0c;表示在一个游戏中的玩家数目。同时给你一个二维整数数组 pick &#xff0c;其中 pick[i] [xi, yi] 表示玩家 xi 获得了一个颜色为 yi 的球。 如果玩家 i 获得的球中任何一种颜色球的数目 严格大于 i 个&#xff0c;那么我们说玩家 i 是胜利玩家。…

GIT的基本使用与进阶

GIT的简单入门 一.什么是git&#xff1f; Git 是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件更改、管理代码版本以及协作开发。它主要由 Linus Torvalds 于 2005 年创建&#xff0c;最初是为 Linux 内核开发而设计的。如今&#xff0c;Git 已经成为现代软件开发中…

ReactPress:功能全面的开源发布平台

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 此项目是用于构建博客网站的&#xff0c;包含前台展示、管理后台和后端。 此项目是基于 React antd NestJS NextJS MySQL 的&#xff0c;项目已经开源&#xff0c;项目地址在 …

C++初阶——vector

一、什么是vector vector是表示可变大小的数组的序列容器&#xff0c;就像数组一样&#xff0c;vector也采用连续空间来存储元素。也就是说它的访问和数组一样高效&#xff0c;但是它的大小是动态可变的&#xff0c;并且它的大小会被容器自动处理。 二、vector的构造 常用的构…

sql专题 之 where和join on

文章目录 前言where介绍使用过滤结果集关联两个表 连接外连接内连接自然连接 使用inner join和直接使用where关联两个表的区别总结 前言 从数据库查询数据时&#xff0c;一张表不足以查询到我们想要的数据&#xff0c;更多的时候我们需要联表查询。 联表查询我们一般会使用连接…

服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器中有一组由4块SAS硬盘组建的RAID5阵列&#xff0c;上层安装linux操作系统统。分区结构&#xff1a;boot分区LVM卷swap分区&#xff08;按照顺序&#xff09;&#xff0c;LVM卷中划分了一个reiserfs文件系统作为根分区。 服务器故障…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于稳态信息和条件分布自适应的风电场阻抗智能辨识和稳定性评估》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

vue反向代理配置及宝塔配置

vue生产环境和开发环境 反向代理 正向代理 宝塔面板配置 本地小皮面板---NginxApache解决方案_小皮面板反向代理-CSDN博客 上面这个链接供大家参考&#xff0c;我这里面提取vue配置反向代理格式 在vite.config.js页面写入 server: {proxy: {"/api": {target: "…