机缘巧合,接触到了一个开源的项目ROS,只需要根据一口君的操作,就可以很容易搭建一个具有3d效果的开发环境,非常有意思,和大家分享下。

0、什么是ROS


ROS(Robot Operating System,下文简称“ROS”)是用于编写机器人软件程序的一种具有高度灵活性的软件架构,是一个开源的元操作系统。ROS的原型源自斯坦福大学的STanford Artificial Intelligence Robot (STAIR) 和 Personal Robotics (PR)项目。

它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。

ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体 。

1. ROS安装

ROS Kinetic 只 支持Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) 和Jessie (Debian 8) 的debian包。

ubuntu 16.04安装,请参考文章《linux环境搭建-ubuntu16.04安装

1.1 配置Ubuntu软件仓库

配置你的Ubuntu软件仓库(repositories)以允许使用“restricted”“universe”和“multiverse”存储库。你可以根据Ubuntu软件仓库指南来完成这项工作。

1.2 设置sources.list

设置电脑以安装来自packages.ros.org的软件。

打开终端,输入以下命令:

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

若下载速度缓慢,推荐就近选择一个镜像源替换上面的命令。例如,Tsinghua University为:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

如果依旧遇到连接问题,请尝试为Ubuntu apt换源(非ROS网站)。

1.3 设置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80 为 hkp://pgp.mit.edu:80 。

你也可以使用curl命令替换apt-key命令,这在使用代理服务器的情况下比较有用:

curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -

1.4 安装

首先,确保你的Debian软件包索引是最新的:

sudo apt-get update

在ROS中,有很多不同的库和工具。我们提供了默认的配置来开始。你也可以单独安装ROS包。

如果以下步骤出现问题,可以使用以下存储库,而不是上面提到的那些ros-shadow-fixed

桌面完整版: (推荐) : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知

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

实际操作可能会出错,多试几次即可。

1.5 初始化 rosdep

在开始使用ROS之前你还需要初始化rosdep。rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。

sudo rosdep init

但是初始化经常会失败,
解决方法:

sudo su
sudo gedit /etc/hosts

在hosts中添加以下内容并保存,在执行完后继续rosdep update

199.232.28.133 raw.githubusercontent.com
151.101.228.133 raw.github.com

在此执行 sudo rosdep init

1.6 更新 rosdep

该步骤可以不执行,如果需要更新rosdep ,可以执行以下命令:

rosdep update

但是由于服务器不稳定,通常需要多试几次,

或者直接直接下载对应的更新文件UAV_ROS.tar,拷贝到ubuntu中,

然后拷贝到/etc/ros/rosdep/下

cd ~/ros
sudo cp * /etc/ros/rosdep/

2. 编译

1. 下载demo的解压包hw_1,并解压

tar zxvf hw_1.tar

2. 创建工作空间

Ctrl+alt+t,打开终端,复制并逐条运行以下命令

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

之后将 hw_1/src 中的三个文件夹复制到/catkin_ws/src 路径下:

cp ~/hw_1/src/*  ~/catkin_ws/src -r
cd ~/catkin_ws/src

继续在终端执行命令:

catkin_init_workspace
cd ~/catkin_ws/
catkin_make


成功!

声明环境变量:

source devel/setup.bash

3. 打开 rviz

在终端执行命令

roscore

ctrl+shift+t,打开新一页终端,执行以下命令

rviz

显示出 rviz 初始页面


最终界面如下:

4. 打开 rviz 配置文件

鼠标放在左上方,点击添加配置文件(open Config),


配置文件路径为:

~/catkin_ws/src/grid_path_searcher/launch/rviz_config/demo.rviz

点击open,进入下面对话框:

点击save后,显示如下画面,此时因为还未运行程序,所以地图没有初始化,看不到点云三维地
图。


5. 运行程序,载入地图

ctrl+shift+t,打开新一页终端,执行以下命令

cd ~/catkin_ws
source devel/setup.bash
roslaunch grid_path_searcher demo.launch

画面切到 rivz,可以看到,程序自动载入了点云地图


成功!

文中提到的安装包UAV_ROS.tar 、hw_1.tar,关注公众号:一口Linux,后台回复ros,即可获得。

Linux下简单几步安装AI开发环境-ROS(超有意思)的更多相关文章

  1. linux 下 ifcfg-eth0 配置/CentOS_minimal安装和开发环境部署

    CentOS_minimal安装和开发环境部署:http://www.th7.cn/system/lin/201305/39002.shtml 网络接口配置文件 [root@localhost ~]# ...

  2. 不用rustup,Windows下gnu版Rust安装与开发环境配置

    写在前面 本文介绍了在不使用rustup的情况下,在Windows上安装gnu版的Rust,并配置开发环境(VSCode + rust-analyzer,CLion + IntelliJ Rust)的 ...

  3. Linux下C ,C ++, Qt开发环境

    目录 Linux发行版的选择 安装常用的开发工具(这里针对C/C++/Qt) 安装openGL 中文输入法 安装sublime text 安装vscode apt-get常用命令 Qt环境 Qt常见问 ...

  4. linux下怎么安装Go开发环境?linux部署golang

    linux下怎么安装Go开发环境?linux部署golang  0.请自行安装SSH远程工具 1.  SSH远程登录你的linux服务器 2.   yum install mercurial安装 me ...

  5. 【Linux开发】Linux下jpeglib库的安装详解

    Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...

  6. ElasticSearch概述及Linux下的单机ElasticSearch安装

    原文链接:http://blog.csdn.net/w12345_ww/article/details/52182264 这两天在项目中要涉及到ElasticSearch的使用,就上网去搜索了一些这方 ...

  7. linux下常见的包安装方式

    linux下常见的包安装方式 一.总结 一句话总结: rpm包安装 tar.gz源代码包安装 yum方式安装rpm包 bin文件安装 1.yum是什么? 安装所有依赖的软件包 Yum(全称为 Yell ...

  8. 【最详细最完整】在Linux 下如何打包免安装的QT程序?

    在Linux 下如何打包免安装的QT程序? 版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! ...

  9. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

  10. linux下.run文件的安装与卸载

    linux下.run文件的安装与卸载   .run文件的安装很简单,只需要为该文件增加可执行属性,即可执行安装 以 virtualbox 的安装文件 virtualbox-3.1.6-59338-Li ...

随机推荐

  1. [代码]C语言进行md5,SHA256,SHA512加密

    前言 原本在学puppet,它的user资源需要设置hash后的散列值,结果-我把加密算法,shadow文件,密码破解搞了个遍- 环境 CentOS7 gcc编译器 /etc/shadow文件解析 文 ...

  2. Spark Structured Streaming(一)基础

    1. 流处理的场景 我们在定义流处理时,会认为它处理的是对无止境的数据集的增量处理.不过对于这个定义来说,很难去与一些实际场景关联起来.在我们讨论流处理的优点与缺点时,先介绍一下流处理的常用场景. 通 ...

  3. HTTP事务理解

    借图: 首先三次握手理解: TCP三次握手好比两个对话, 第一次握手:甲给乙一直发送信息,乙没有回应,甲不知道乙有没有收到信息 第二次握手:乙收到信息,然后再给甲回信息,此时甲知道乙收到信息,但乙不知 ...

  4. Spring手动获取bean的四种方式

    一.实现BeanFactoryPostProcessor接口 @Component public class SpringUtil implements BeanFactoryPostProcesso ...

  5. axios和AJAX的区别

    axios和ajax的区别 Axios和Ajax都是用于处理网络请求和与服务器进行通信的技术,但它们之间存在一些关键的区别:12 一.技术基础:Ajax(Asynchronous JavaScript ...

  6. uBrand | 更适合个人创业者,小公司的AI品牌创建平台

    在跟一些辞职创业的朋友聊品牌,这个问题大家不约而同地都会提到:"我不会设计也没有资金请专业的设计师,有没有低成本打造品牌的方法呢?" 正好这段时间赶上AI的风潮,从众多AI工具中刚 ...

  7. 使用了条件三元运算符来判断 this.temp.id 是否存在且 mt_qty 是否已被赋值

    mt_qty: (this.temp.id && this.temp.mt_qty) ? this.temp.mt_qty : event.wo_wip,在这个修正后的代码中,使用了条 ...

  8. vue中封装api数据层访问层

    api封装的是通过封装get/post/jsonp等请求,使得页面无需直接访问后代而是调用相关方法直接获取相关的后代数据,避免过多的数据处理逻辑,将重点放在数据渲染上. 1,准备阶段 a,首先创建ap ...

  9. 开源照片管理神器 PhotoPrism 安装和使用教程

    如今我们每个人都积累了海量的照片和视频,做自媒体的 UP 主们积累的照片和视频数量可能更多.面对这么多的照片和视频,我们该如何管理呢? 之前我一直用谷歌相册,因为它有很多优势,比如无限空间,支持智能整 ...

  10. C#中使用 record 的好处 因为好用所以推荐~

    一晃距C# 9发布已经4年了,对于record关键字想必大家都不陌生了,不过呢发现还是有很多同学不屑于使用这个语法糖,确实,本质上record就是class的封装,能用 record 书写的类,那10 ...