环境配置:Ubuntu18.04 ROS Melodic安装

2024-02-06 15:20

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

前言

不同版本的Ubuntu与ROS存在对应关系。

ROS作为目前最受欢迎的机器人操作系统,其核心代码采用C++编写,并以BSD许可发布。ROS起源于2007年,是由斯坦福大学与机器人技术公司Willow Garage合作的Switchyard项目。2012年,ROS团队从Willow Garage独立出来,成立了一家非营利组织——开源机器人基金会(Open Source Robotics Foundation, OSRF),并于2013年将ROS移交给该基金会管理。

自2010年3月推出第一个发行版Box Turtle以来,ROS以每年1~2个版本的频率发布多个版本。作为次级操作系统,ROS官方推荐在Ubuntu操作系统上运行,并与Ubuntu发布节奏同步,偶数年发布维护周期为5年的长期演进版本,奇数年发布维护周期为2年的普通版本。然而,在2019年并未发布新版本。ROS已发布的历史版本如表1-1所示。

在这里插入图片描述

1 设置安装源

为了安装ROS Melodic,首先需要在Ubuntu 18.04 LTS上添加安装源到source.list,方法如下:

国外的:

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

在这里插入图片描述
国内的:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

清华的:

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'

2 添加秘钥

2.1 添加秘钥

添加秘钥到本地的trusted数据库中并加以验证,方法如下:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

若密钥服务器hkp://ha.pool.sks-keyservers.net:80无法添加成功,则可以尝试hkp://pgp.mit.edu:80或者hkp://keyserver.ubuntu.com:80。

在这里插入图片描述

2.2 安装公钥

在更新之前,需要安装公钥,否则无法验证签名,这一步也是原书没有的,需要朋友们注意,命令如下:

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

在这里插入图片描述

3 安装

sudo apt-get update

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

sudo apt-get install ros-melodic-rqt*

在这里插入图片描述
在这里插入图片描述

4 初始化rosdep

这一步或多或少因为在国内都会出现网络问题,参考以下文章:

Ubuntu 18.04 安装 ROS Melodic 中 sudo rosdep init 和 rosdep update 一定能成功的方法

尝试直接科学上网测试也不行,最终不知道怎么的多试了几次就ok了。
在这里插入图片描述
在这里插入图片描述
当显示rosdep update就基本成功了,接下来:
在这里插入图片描述
这个错误就是网络问题造成的,理论上换成手机热点就可以。但还是要多试几次。

在这里插入图片描述

💡 当执行sudo rosdep init,反馈没有该指令。我在网上查找的一个方法是:在终端输入rosdep init,终端提示安装"sudo apt install python-rosdep2 " ,按照提示安装后,确实可以执行sudo rosdep init。但是sudo apt install python-rosdep2会导致之前sudo apt-get install ros-melodic-desktop-full安装的包部分丢失(这是后面才意识到的问题),执行楼主所有步骤后,发现没有roscore这个指令,所以还要重新执行sudo apt-get install ros-melodic-desktop-full,就有roscore指令了。

在这里插入图片描述
在这里插入图片描述
添加右侧的文件夹,然后改动rosdep中的文件链接地址为本地,然后改动init的py文件为本地即可。

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/**init**.py

5 安装rosinstall

sudo apt-get install python-rosinstall

在这里插入图片描述

这一步并没有成功,但似乎也没有影响到后面的进展?

6 加载环境设置文件

source /opt/ros/melodic/setup.bash

在这里插入图片描述

7 创建并初始化工作目录

ROS使用一个名为catkin的ROS专用构建系统。为了使用它,用户需要创建并初始化

catkin工作目录,如下所示。除非用户创建新的工作目录,否则此设置只需设置一次。

mkdir -p ~/catkin_ws/srccd ~/catkin_ws/srccatkin_init_workspace

目前,只有src目录和CMakeLists.txt文件在catkin工作目录中,使用catkin_make命令来构建

cd ~/catkin_ws/catkin_make

在这里插入图片描述

8 设置环境变量(略过)

sudo apt install net-tools

在这里插入图片描述

gedit ~/.bashrc

这里操作过程中直接跳到了下一步,并没有用,需要注意!

# Set ROS melodic
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash# Set ROS Network
#ifconfig查看你的电脑ip地址
export ROS_HOSTNAME=192.168.89.135
export ROS_MASTER_URI=http://${ROS_HOSTNAME}:11311# Set ROS alias command 快捷指令
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'

在这里插入图片描述

💡 当执行sudo rosdep init,反馈没有该指令。我在网上查找的一个方法是:在终端输入rosdep init,终端提示安装"sudo apt install python-rosdep2 " ,按照提示安装后,确实可以执行sudo rosdep init。但是sudo apt install python-rosdep2会导致之前sudo apt-get install ros-melodic-desktop-full安装的包部分丢失(这是后面才意识到的问题),执行楼主所有步骤后,发现没有roscore这个指令,所以还要重新执行sudo apt-get install ros-melodic-desktop-full,就有roscore指令了。

在这里插入图片描述

在这里插入图片描述

9 配置ROS环境变量

第八步的操作确实是有点迷(第八步确实有用,在roscore没反应的时候,需要重新执行一次最开始的sudo apt-get install ros-melodic-desktop-full),所以就直接跳过了,这里的操作也可以直接用。

默认情况下,ROS_HOME的路径为"~/.ros",该目录保存着日志文件和测试结果文件。另外,第一次启动ROS时,需要进行环境变量配置,命令如下:

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

这两条指令相当于Windows系统中设置环境变量path,即在终端可以自由使用ROS系统指令,这里强调是系统指令,而不是自己创建的包或者节点,后者是需要使能相应的工作空间,具体可以参考:ROS工作空间。

查看环境变量是否设置正确,命令如下:

env | grep ROS

笔者查看环境变量结果如下:

ROS_ETC_DIR=/opt/ros/melodic/etc/ros
ROS_ROOT=/opt/ros/melodic/share/ros
ROS_VERSION=1
ROS_PYTHON_VERSION=2
ROS_PACKAGE_PATH=/opt/ros/melodic/share
ROS_DISTRO=melodic

至此,ROS的核心程序包安装完毕。

然后按下图执行命令:

在这里插入图片描述

10 启动运行小海龟例子

1.第一个终端运行如下命令

roscore

在这里插入图片描述

2.打开第二个终端,也可以利用 Ctrl+Shift+T 快捷键打开一个新的终端,运行如下命令,这时你会看见一只静止的小海龟

rosrun turtlesim turtlesim_node

在这里插入图片描述

3.如果希望小海龟能够移动,打开第三个终端,利用Ctrl+Shift+T快捷键再打开一个新的终端,启动turtlesim的键盘控制节点turtle_teleop_key,运行如下命令

rosrun turtlesim turtle_teleop_key

在这里插入图片描述

在这里插入图片描述

11 小结

时至今日,已经不再用上述如此复杂的方式来配置环境,但是希望这个过程可以给有需要的朋友一点启发和帮助。

Reference

ubuntu18.04安装ROS Melodic(最详细配置)

Ubuntu 20.04安装Ros Noetic及Ubuntu 18.04安装ROS Melodic(两版本详细填坑)

Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)

这篇关于环境配置:Ubuntu18.04 ROS Melodic安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

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