layabout4233629 / layabout

用来写写自己学习的技术心得,如果对您有帮助,别忘了加“星”
1 stars 0 forks source link

在ubuntu上安装ROS #4

Open layabout4233629 opened 4 years ago

layabout4233629 commented 4 years ago

版本选择

ROS发布日期 ROS版本 对应Ubutnu版本
2016.3 ROS Kinetic Kame Ubuntu 16.04 (Xenial) / Ubuntu 15.10 (Wily)
2015.3 ROS Jade Turtle Ubuntu 15.04 (Wily) / Ubuntu LTS 14.04 (Trusty)
2014.7 [ROS Indigo Igloo]() Ubuntu 14.04 (Trusty)
2013.9 ROS Hydro Medusa Ubuntu 12.04 LTS (Precise)
2012.12 ROS Groovy Galapagos Ubuntu 12.04 (Precise

开始安装

软件中心配置

首先打开软件和更新对话框,具体可以在 Ubuntu 最左上角的搜索按钮中搜索。 打开后按照下图进行配置(确保你的"restricted", "universe," 和 "multiverse."前是打上勾的):

查看Ubuntu版本

cat /etc/issue

添加源

1.加入sources.list 14.04版本:

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

一旦添加了正确的软件源,操作系统就知道去哪里下载程序,并根据命令自动安装软件。

获取秘钥

: wget http://packages.ros.org/ros.key -O - | sudo apt-key add -  

更新软件源

sudo apt-get update  

首先确认你的Debian的软件包索引是最新的。Debian计划是一个致力于创建一个自由操作系统的合作组织。我们所创建的这个操作系统名为 Debian。Debian系统目前采用Linux内核或者FreeBSD内核。

问题描述: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) 原因解析: 在上一次下载资源时,由于网络问题,下载失败。当换一个较好一点网络环境之后,下载失败报错。 原因在于,上一次不正常的关闭下载,导致资源被锁不可用,删除异常的资源,重新下载即可。

解决方案: 运行以下命令,删除资源:

sudo rm  /var/cache/apt/archives/lock
sudo rm  /var/lib/dpkg/lock

之后重新使用命令:sudo apt-get update,可以重新正常下载。

安装 ROS

··· sudo apt-get install ros-indigo-desktop-full ···

由于ros的软件包很大,一般都在1.5G以上,因此安装比较慢,请耐心等待。下载完开始安装后,需要选择YES开始安装,其他选项均按照默认的选择。

在ROS中有许多不同的函数库和工具,建议是完全安装,也可以根据自己的要求分别安装。完全安装时的工具包括ROS、rqt、可视化环境rviz、通用机器人库robot-generic libraries、2D(如stage)和3D(如Gazebo)仿真环境2D/3D simulators、导航功能包集navigation and 2D/3D(移动、定位、地图绘制、机械臂控制)、感知库perception(如视觉、激光雷达、RGB-D摄像头等)。

初始化ROS

··· [$]: sudo rosdep init
[$]:rosdep update
···

安装rosinstall

··· sudo apt-get install python-rosinstall ···

rosinstall命令是一个使用的非常频繁的命令,使用这个命令可以轻松的下载许多ROS软件包。

环境变量

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

使环境变量设置立即生效

··· source ~/.bashrc ···

配置你的ROS环境

注意:当你用像apt这样的软件包安装管理器安装ROS,那么这些软件包用户是没有权利的去编辑的,当创建一个ROS package和处理一个ROS package时,你应该始终选择一个你有权限工作的目录作为工作目录。

测试ROS

1) 在Terminal中输入下述命令。该命令是初始化ROS环境,全局参数,以及每个节点注册等工作。 ··· $ roscore ···

2) 再打开一个Terminal,输入命令。开启一个小乌龟界面。(可能与图中小乌龟不同) ··· $ rosrun turtlesim turtlesim_node ···

3) 再打开一个Terminal,输入命令。接受键盘输入,控制小乌龟移动。键盘按下上下左右按键,可看到控制小乌龟移动。 ··· $ rosrun turtlesim turtle_teleop_key ··· 4) 再打开一个Terminal,输入下诉命令,可以看到当前ROS Nodes 以及Topic等图形展示。 ··· $ rosrun rqt_graph rqt_graph ···

创建工作空间

管理环境

确认可以使用ROS指令 export | grep ROS

创建工作空间

    我们所创建功能包package,应该全部放到一个叫做工作空间(workspace)的目录中 。你可以把目录存储在你账号的任何位置例如,我所创建的工作空间的是路径/home,同时你可以用任何你喜欢的名字命名你的工作空间,我的工作空间名为 test,现在请使用标准的mkdir命令行去创建一个工作空间。我首先建立一个工作空间,名字为test,

此处创建的工作空间还需要在工作区目录中创建一个叫做 src 的子目录。这个子目录将用于存放功能包的源代码。而 代码中的 “-p” ,这时mkdir命令会自动创建所有不存在的目录。

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

即使这个工作空间是空的(在'src'目录中没有任何软件包,只有一个CMakeLists.txt链接文件),你依然可以编译它: cd ~/catkin_ws/ $ catkin_make 如果你查看一下当前目录应该能看到'build'和'devel'这两个文件夹。在'devel'文件夹里面你可以看到几个setup.sh文件。source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层,想了解更多请参考catkin文档。接下来首先source一下新生成的setup.sh文件:

ROS文件系统介绍

Packages: 软件包,是ROS应用程序代码的组织单元,每个软件包都可以包含程序库、可执行文件、脚本或者其它手动创建的东西。 Manifest (package.xml): 清单,是对于'软件包'相关信息的描述,用于定义软件包相关元信息之间的依赖关系,这些信息包括版本、维护者和许可协议等。

创建ROS程序包

一个catkin程序包由什么组成?

一个程序包要想称为catkin程序包必须符合以下要求: 该程序包必须包含catkin compliant package.xml文件 这个package.xml文件提供有关程序包的元信息。 程序包必须包含一个catkin 版本的CMakeLists.txt文件,而Catkin metapackages中必须包含一个对CMakeList.txt文件的引用。 每个目录下只能有一个程序包。 这意味着在同一个目录下不能有嵌套的或者多个程序包存在。 最简单的程序包也许看起来就像这样: my_package/ CMakeLists.txt package.xml

在catkin工作空间中的程序包

开发catkin程序包的一个推荐方法是使用catkin工作空间,但是你也可以单独开发(standalone)catkin 软件包。一个简单的工作空间也许看起来像这样: workspace_folder/ -- WORKSPACE src/ -- SOURCE SPACE CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin package_1/ CMakeLists.txt -- CMakeLists.txt file for package_1 package.xml -- Package manifest for package_1 ... package_n/ CMakeLists.txt -- CMakeLists.txt file for package_n package.xml -- Package manifest for package_n 在继续本教程之前请先按照创建catkin工作空间教程创建一个空白的catkin工作空间。

查看工作空间:

··· printenv | grep ROS

ROS_ROOT=/opt/ros/indigo/share/ros ROS_PACKAGE_PATH=/opt/ros/indigo/share:/opt/ros/indigo/stacks ROS_MASTER_URI=http://localhost:11311 ROSLISP_PACKAGE_DIRECTORIES= ROS_DISTRO=indigo ROS_ETC_DIR=/opt/ros/indigo/etc/ros ···

安装查看指令

本教程中我们将会用到ros-tutorials程序包,请先安装: $ sudo apt-get install ros--ros-tutorials 将 替换成你所安装的版本(比如Jade、Indigo、hydro、groovy、fuerte等)。

http://www.liuxiao.org/2015/10/ros-%E5%9C%A8-ubuntu-14-04-%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%AE%89%E8%A3%85-ros-indigo/

安装roboware-studio

主页上提供了roboware-studio_1.2.0-1524709819_amd64版本下载,方便不能翻墙的童鞋(有3个part,别漏了)