Ubuntu18.04 虚拟机配置 ROS Melodic 详细步骤

2024-01-29 14:48

本文主要是介绍Ubuntu18.04 虚拟机配置 ROS Melodic 详细步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、ROS 简介
    • 1.1 什么是 ROS?
    • 1.2 ROS 产生、发展和壮大的原因和意义
  • 二、ROS 安装及其应用实例
    • 2.1 配置 Ubuntu 软件库
    • 2.2 安装 ROS Melodic
    • 2.3 初始化 rosdep
    • 2.4 运行小乌龟实例
  • 三、总结
  • 四、参考资料

本文内容:

  • 什么是ROS? ROS产生、发展和壮大的原因和意义?
  • Ubuntu18系统中,安装对应版本的ROS软件;
    熟悉ROS基本命令;
    运行小海龟 demo 例子,通过键盘控制小海龟运动。

一、ROS 简介

1.1 什么是 ROS?

  • ROS机器人操作系统(Robot Operating System)的英文缩写;ROS 是用于编写机器人软件程序的一种具有高度灵活性的软件架构;ROS 的原型源自斯坦福大学的 STanford Artificial Intelligence Robot (STAIR)Personal Robotics (PR) 项目。

  • ROS 是用于编写机器人软件程序的一种具有高度灵活性的软件架构。它包含了大量工具软件、库代码和约定协议,旨在简化跨机器人平台创建复杂、鲁棒的机器人行为这一过程的难度与复杂度。

1.2 ROS 产生、发展和壮大的原因和意义

  • ROS 的发展逐渐的趋于成熟,近年来也逐步是面对着 Ubuntu 的更新而更新,这说明 ROS 已经初步进入一种稳定的发展状态,每年进行一次更新的频率同时还保留着长期支持的版本,这使得 ROS 在稳步的前进发展同时,也有着开拓创新的方向。
  • 目前越来越多的机器人、无人机甚至无人车都开始采用 ROS 作为开发平台,尽管 ROS 在实用方面目前还存在一些限制,但前途非常光明。

说明:这里我就简单的描述了一下 ROS 这一基本概念及其意义,网上有很多关于 ROS 的相关介绍,这里我就没必要再啰嗦了。

二、ROS 安装及其应用实例

说明:安装环境为 Ubuntu 18.04.5

2.1 配置 Ubuntu 软件库

  • 首先在【应用中心】中找到【软件和更新】并打开。
    在这里插入图片描述
  • 勾选上所有的选项,并将下载源设置成中国的服务器。
    在这里插入图片描述
  • 点击关闭后,弹窗点击【重新载入】,更新缓存。
    在这里插入图片描述
  • 设置国内的软件源:打开终端并执行以下命令。
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

在这里插入图片描述

  • 设置最新的密匙。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

在这里插入图片描述

  • 更新软件库。
sudo apt-get update

在这里插入图片描述

2.2 安装 ROS Melodic

  • 终端运行下面的命令。
sudo apt-get install ros-melodic-desktop-full

在这里插入图片描述

  • ERROE 出现了问题了,可以使用下面的命令强制解锁。
sudo rm /var/lib/dpkg/lock-frontend
  • 然后重新下载就可以了。
    在这里插入图片描述
  • 安装 python-rosdep ,避免后面出现sudo rosdep:找不到命令提示
sudo apt install python-rosdep

在这里插入图片描述

说明:这里不要安装 python-rosdep2 ,否则会把前面下载的都卸载掉,之前下载版本 2 的就遇到这个问题。

2.3 初始化 rosdep

  • 使用命令:
sudo rosdep init

在这里插入图片描述

说明:如果 sudo rosdeo init 失败了,如下:
1、使用虚拟机安装的 ros:网络设置为桥接模式,因为被墙了;
2、如果还是错误:请参考博客:https://blog.csdn.net/u013468614/article/details/102917569

  • 更新 rosdep(更新过程中会出现 ERROR,多执行几次该命令即可,因为网络不好,或者参考博客:https://blog.csdn.net/qq_32705211/article/details/108439067,我是将超时值设为5000的,才能更新成功)
rosdep update

在这里插入图片描述

  • 添加 ros 环境变量。
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

在这里插入图片描述

  • 安装 rosinstall.
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

在这里插入图片描述

2.4 运行小乌龟实例

  • 打开第一个终端,执行以下命令。
roscore

在这里插入图片描述

  • 打开第二个终端,执行以下命令。
rosrun turtlesim turtlesim_node

在这里插入图片描述

  • 这时出现了一个小乌龟。
  • 打开第三个终端,执行下面的命令后,就可以用方向键控制小乌龟移动了。
 rosrun turtlesim turtle_teleop_key

在这里插入图片描述

三、总结

  • 经过一两个小时的折腾,终于搞定了,期间通过别人的博客边学边做,遇到了不少的问题,最后看一篇博客:https://blog.csdn.net/qq_44830040/article/details/106049992,就很快做出来了,这篇博客写得很到位,很详细,各个坑都点出来了,特此贴出链接,共同学习。

四、参考资料

[1] ros(机器人操作系统)_百度百科
[2] ROS入门
[3] Linux出现"无法获得锁 /var/lib/dpkg/lock-frontend - open"的解决方案
[4] 安装ROS时执行到sudo rosdep init时出现sudo: rosdep:找不到命令提示
[5] Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)

这篇关于Ubuntu18.04 虚拟机配置 ROS Melodic 详细步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte