ROS小车学习记录
ROS小车
学习ROS小车相关的ROS基础教程,以及相关进阶课程,本系列文章作为学习过程的记录。
一、ROS的介绍
ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。在某些方面ROS相当于一种“机器人框架(robot frameworks)”类似的“机器人框架”有:Player,YARP,Orocos,CARMEN,Orca,MOOS和 Microsoft Robotics Studio。
ROS 运行时的“蓝图”是一种基于ROS通信基础结构的松耦合点对点进程网络。ROS实现了几种不同的通信方式,包括基于同步RPC样式通信的服务(services)机制,基于异步流媒体数据的话题(topics)机制以及用于数据存储的参数服务器(Parameter Server)。想更加深入的解释这些概念,请参见概念综述。
ROS并不是一个实时的框架,但ROS可以嵌入实时程序。Willow Garage的PR2机器人使用了一种叫做pr2_etherCAT的系统来实时发送或接收ROS消息。ROS也可以与Orocos实时工具包无缝集成。
二、ROS安装
我们要知道Ubuntu系统不同的版本是有对应的ROS版本,选择自己相应的ROS版本进行安装
(1)ROS安装
ROS Kinetic 只 支持Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) 和Jessie (Debian 8) 的debian包。
- 添加 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'
- 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 更新源
sudo apt-get update
- 安装ROS
桌面完整版: (推荐) : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知
sudo apt-get install ros-kinetic-desktop-full
桌面版安装: 包含ROS、rqt、rviz以及通用机器人函数库。
sudo apt-get install ros-kinetic-desktop
基础版安装: (简版) 包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具。
sudo apt-get install ros-kinetic-ros-base
(2)ROS环境配置
- 初始化 rosdep
sudo rosdep init
rosdep update
- 环境配置
把我们所用的环境加载到当前的用户当中,区分不同用户的权限
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 安装功能包的依赖
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
(3)检查是否安装成功
在Ubuntu系统中启动终端输入subl .bashrc
查看是否存在以下内容
三、管理环境
确保你已经正确配置了脚本环境。一个检查的好方法是确保你已经设置了像ROS_ROOT和ROS_PACKAGE_PATH这样的环境变量
(1)检查是否配置好环境
在终端输入
printenv | grep ROS
查看ROS相关的配置环境
(2)创建ROS工作空间
在用户目录下创建一个ROS功能包,用于我们写代码,方便以后调用相关的代码
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
编译完成后会在catkin_ws
目录下产生build
和devel
文件
要将功能包添加到环境当中,告诉系统在这里新建了ROS的功能包
source devel/setup.bash
打开.bashrc
文件
在终端输入
subl .bashrc
加入
source /home/ubuntu/catkin_ws/devel/setup.bash
如图所示
保存之后,执行source .bashrc
告诉终端我们创建了ROS的功能包
source .bashrc
四、可能出现的问题
安装过程中运行出现的问题
运行 sudo rosdep init
问题一
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
解决方法:
cd /etc
sudo gedit hosts
打开hosts文件 在最后添加
151.101.84.133 raw.githubusercontent.com
再次运行sudo rosdep init
问题二
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
解决方法:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
再次运行sudo rosdep init
问题三
在没有连接小车时,在Ubuntu系统中启动ROS失败提示
在终端输入roscore
提示
解决办法:
在终端输入
subl .bashrc
将.bashrc文件中远程连接部分注释掉,如图
更改为
重启终端 输入roscore
出现如图即为安装成功
问题四
如果查看配置环境发现错误或者roscore无法启动并且已经注释了远程连接 在终端执行
source /opt/ros/kinetic/setup.bash