Ubuntu18.04下安装ROS日志及小海龟示例教程

2023-11-22 01:10

本文主要是介绍Ubuntu18.04下安装ROS日志及小海龟示例教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


文章目录

  • 一、什么是ROS?
  • 二、ROS系统安装
  • 小海龟示例
  • 总结


一、什么是ROS?

ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。

详细资料参考:ROSwiki

  • ROS架构设计:
    1、os层:依托linux操作系统,
    2、中间层:基于TCPROS/UDPROS的通信系统,通过发布/订阅,客户端/服务端等模式,实现多种通信机制的数据传输。 Nodelet数据传输方式 数据库。
    3、应用层:需要运行一个管理者Master,负责管理整个系统的正常运行;

从系统实现的角度来看,ROS也可以分为三个层次:文件系统,计算图和开源社区

在这里插入图片描述

二、ROS系统安装

一键安装教程:鱼香ROS

- 以下是手动安装步骤

1. 添加ROS软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

在这里插入图片描述

2. 添加密钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

在这里插入图片描述

3. 安装ROS

需要根据Ubuntu的版本选择合适的ROS版本。否则会出现Unable to locate package ros-kinetic-desktop-full的错误。ROS的版本主要有Melodic(18)、Lunar(20)、Kinetic(16)版本,根据linux系统不同选择合适的版本,报错也就解决了。安装时间比较长。

sudo apt update
sudo apt-get install ros-melodic-desktop-full

安装完成截图,安装过程耗时30min
在这里插入图片描述

4. 初始化ROSdep

sudo rosdep init
rosdep update

报错信息:
在这里插入图片描述
解决办法:

sudo apt install python-rosdep

rosdep是ros的一个功能包
在这里插入图片描述
接下来更新rosdep的时候,会提示请初始化rosdep,出现报错信息:
在这里插入图片描述
解决办法:rosdep更新失败解决办法
参考以上文章,我的解决办法:

  • sudo apt install python-pip

  • pip -v

  • . sudo pip install rosdepc

在这里插入图片描述

  • sudo rosdepc init
    会有奇迹与魔法出现的哦~
    在这里插入图片描述
  • 背负着全Ubuntu的使命敲下:rosdepc update
    在这里插入图片描述

5. 设置环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. 安装rosinstall

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

小海龟示例

  1. 启动ROS Master
    roscore
    在这里插入图片描述
    报错:IOError: [Errno 13] Permission denied: ‘/home/ros/.ros/roscore-11311.pid’

这个问题是由于该路径下ros文件权限造成的。

输入以下命令修改权限:

sudo chmod 777 -R ~/.ros/
修改完成后再次输入roscore就ok了
在这里插入图片描述
rosmaster启动成功。

  1. 启动小海龟仿真器
    新打开一个终端,输入:
    rosrun turtlesim turtlesim_node

  2. 启动海龟控制节点
    新打开一个终端,输入:rosrun turtlesim turtle_teleop_key
    可以用键盘上的方向键控制小海龟的移动方向。
    在这里插入图片描述
    注意:如果你无法通过方向键改变小海龟的方向的话,你需要点击输入命令:rosrun turtlesim turtle_teleop_key的窗口才能唤醒小海龟,而不是点击小海龟的窗口唤醒小海龟。


总结

安装ROS的过程会产生很多与教程文章不同的问题,还好都可以根据报错信息去解决,只要静下心就可以成功。
小海龟的移动非常真实,它需要用前后键才能走动,左右键只能改变它的方向,这与平常玩的赛车游戏经验略有不同,同时也能感受它在现实移动的魅力,缺点是小海龟左右移动的偏角太大了,无法精确地控制。

参考文章:https://blog.csdn.net/qq_43279579/article/details/114291635
ROS安装与验证

这篇关于Ubuntu18.04下安装ROS日志及小海龟示例教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外