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

相关文章

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

SpringBoot请求参数传递与接收示例详解

《SpringBoot请求参数传递与接收示例详解》本文给大家介绍SpringBoot请求参数传递与接收示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录I. 基础参数传递i.查询参数(Query Parameters)ii.路径参数(Path Va

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队