采用的是虚拟机(VMware Workstation)安装的Linux(Ubuntu16.04 ,64bit)node
首先,简单介绍一下:
ROS(Robot Operating System)是一个机器人软件平台,它能为异质计算机集群提供相似操做系统的功能。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而创建的交换庭(switchyard)项目。ROS提供一些标准操做系统服务,例如硬件抽象,底层设备控制,经常使用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不一样节点的进程能接受,发布,聚合各类信息(例如传感,控制,状态,规划等等)。目前ROS主要支持Ubuntu。python
接下来就是正式进入安装了!web
首先,更新一下镜像源(具体缘由,不说好!):shell
sudo gedit /etc/apt/sources.list
替换为:ubuntu
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial universe deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties deb http://archive.canonical.com/ubuntu xenial partner deb-src http://archive.canonical.com/ubuntu xenial partner deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
保存并退出:
打开系统设置->点击“软件和升级”->点击“其余软件”->点击左下角“添加”按钮:bash
deb http://ros.exbot.net/rospackage/ros/ubuntu/ xenial main
更新一下:网络
sudo apt-get update
设置Ubuntu的sources.list:架构
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
添加key:svg
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
更新package(建议在安装全部软件前都要执行这两个命令):ui
sudo apt-get update sudo apt-get upgrade
更新任务进行中:
最后出现问题:
按提示进行:
sudo apt-get update--fix-missing
准备工做作得差很少了;安装ROS kinetic完整版(时间有点久,下载慢,解压还好):
sudo apt-get install ros-kinetic-desktop-full
安装完成后,初始化ROS(出现问题,网络缘由):
rosdep init
按提示继续:
rosdep uodate
初始化环境,不然每次启动都须要source一次
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc
安装额外依赖包:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
启动ROSmaster,相似于给ROS操做系统开机(Ctrl+c退出):
启动turtlesim并监听turtlesim_node发来的消息(注意: 要在开一个终端):
rosrun turtlesim turtlesim_node
出现小乌龟(三只头的乌龟,有点迷!),则安装成功。
到此,安装就基本完成了,但还有一些相关环境的配置须要继续说明一下。
配置工做目录与运行环境:
在根目录下建立工做空间/catkin_ws,并建立src目录,为这个空间设置配置文件(这时候会自动新建一个CMakeLists.txt文件):
cd /opt/ros/kinetic/ mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace
将ros用户本身的工程目录配置到bash里:
sudo gedit ~/.bashrc
在其最后一行加入:
export ROS_PACKAGE_PATH=~/catkin_ws:$ROS_PACKAGE_PATH
编译工程:
cd ~/catkin_ws/ catkin_make
将catkin_make加入到shell里:
source devel/setup.bash echo $ROS_PACKAGE_PATH
ROS下的一个简单hello world程序;
参考连接:http://www.javashuo.com/article/p-ysgowjgm-db.html
在catkin_ws/src下建立项目beginner_tutorials:
catkin_create_pkg beginner_tutorials
进入项目目录,再新建src包:
cd beginner_tutorials/ mkdir src
在beginner_tutorials/src文件夹中建立hello.cpp文件,并修改文件内容:
cd .. touch hello.cpp sudo gedit hello.cpp
hello.cpp的代码:
#include<ros/ros.h> int main(int argc,char **argv){ ros::init(argc,argv,"hello_ros"); ros::NodeHandle nh; ROS_INFO_STREAM("helloworld,ROS!"); }
修改CMakeLists.txt文件(项目配置文件),退回到cd beginner_tutorials/文件夹中,修改CMakeLists.txt文件:
sudo gedit CMakeLists.txt
修改内容以下:
cmake_minimum_required(VERSION 2.8.3) project(beginner_tutorials) #添加须要的依赖库 roscpp find_package(catkin REQUIRED COMPONENTS roscpp) include_directories( ${catkin_INCLUDE_DIRS} ) #声明想要的可执行文件的文件名,以及所须要的源列表,若是有多个源列表,空格列在此处 add_executable(hello src/hello.cpp) #告诉Cmake当连接此可执行文件时须要连接哪些库 target_link_libraries(hello ${catkin_LIBRARIES})
修改package.xml文件:
sudo gedit package.xml
此处只需在 <buildtool_depend>catkin</buildtool_depend>后面添加这两句便可:
<build_depend>roscpp</build_depend> <exec_depend>roscpp</exec_depend>
回到编译工做区:
cd .. cd ~/catkin_ws catkin_make
能够发现,在catkin_ws/devel/lib/beginner_tutorials/目录下会生成hello可执行文件:
打开ROS:
roscore
打开另一个终端:
source devel/setup.bash rosrun beginner_tutorials hello
1处出现错误是由于没有先运行:source devel/setup.bash;致使路径出现问题,改正回来,就能成功运行!