美文网首页Ros机器人·学ROS
ROS学习笔记与爬坑

ROS学习笔记与爬坑

作者: DarknessYami | 来源:发表于2019-02-05 12:38 被阅读1次

    目录

    前言

    1.ros-indigo安装

    2.建立ROS工作空间

    3.ROS中基本概念

    4.基本的调试工具和命令

    5.硬件设备


    前言

    由于竞赛的需要,非常有幸接触到ROS,这里对于ROS不多介绍,国内关于ROS教程还算比较多的,但是大多数都是转载那么几篇文章,其中遇到的坑会非常多,而且你需要有一定的英文阅读能力,在接触ROS越久你就会越有这样的感受。在接触ROS的同时,还学习了很多老外的一些SLAM项目,在测试期间,我就测试了Gmapping,hector-slam,cartographer,orb-slam2等等。经过最后的实验研究,我还是觉得ROS是一个相当不稳定的系统,它需要非常精确的设备才能提供一个比较良好的运行环境,但是随着时间的推移,误差仍然会不断地加大,所以我认为在普通的实验还好,在真正的工业产品上ROS1应该是达不到这个要求,ROS2我没有具体研究过。

    1.ros-indigo安装

    环境是Ubuntu14.04

    安装教程官网是最详细的:http://wiki.ros.org/indigo/Installation/Ubuntu

    • 安装爬坑指南(一):1.2 Setup your sources.list 中,不要执行它下面给出的命令,点击1.2中左下角黄色背景的Mirrors镜像,选择1.1.2 USTC,执行Command下的命令,之后跳过1.2节。这样可以极大加速ROS的下载与更新速度。
    • 安装爬坑指南(二):1.5 在执行rosdep update的时候极有可能出错,因为ROS的网站在国内的访问速度实在是太慢了,可以选择的解决办法是:1.多尝试几次这条命令,偶尔还是可以成功的。2.尝试着用手机热点的网络,切换不同的运营商,有时候还真的好使。3.在终端中开启代理。

    ROS的安装还算简单的,如果英文能力不怎么好的,可以看下其他博客的一些介绍。

    2.建立ROS工作空间

    打开终端

    #在用户的根目录下创建catkin_ws的目录,并在catkin_ws下创建src目录,src主要用来存放用户的各种ROS程序包
    mkdir -p ~/catkin_ws/src
    #切换到src目录
    cd ~/catkin_ws/src
    #初始化工作空间
    catkin_init_workspace
    #切换到catkin_ws目录
    cd ~/catkin_ws/
    #编译ROS工作空间,每次修改ROS程序包都要重新执行这条语句。
    catkin_make
    #将ROS工作空间加入到环境变量中
    echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc
    
    • 工作空间爬坑指南(一):
      [rospack] Error: package 'tf' not found
      [rospack] Error: package 'navigation' not found
      但是tf和navigation我是确认已经安装了的,却一直报错,让我头疼了好一段时间。
      主要的原因是你工作空间可能带有与ROS自带包冲突的包,我伙伴就是另外下了一个tf和navigation的包到src下,重新编译之后这些包就会覆盖ROS自带的包。解决办法就是找到这些冲突的包,把它删掉,然后把catkin_ws下的devel,build下所有已经编译好的包(包括子目录的包)删掉,重新catkin_make就可。

    这样ROS环境基本搭建完毕了。

    3.ROS中基本概念

    1. tf变换:ROS中允许为每一个传感器或者设备自身增加一个坐标系,由于现实世界中,传感器往往不会是同一个位置的,因此每个坐标系之间又会存在一定的变换关系(比如这个坐标轴相对于另外一个坐标轴的位置),如何去解决在运动的过程中坐标系的变换,就是tf做的事情。
      在ROS中,我们一般定义以下几个坐标系:
      base_link:一般为物体的中心
      base_footprint:一般为小车的轮子坐标系
      odom:里程计坐标系
      当一个小型产品完成后,它的tf树大概会是这样的:
      image
    1. ROS节点:一个节点就是一个可执行文件,用来与其他节点进行通信。
    2. ROS话题:节点可以发布消息到话题,也可以订阅话题以接收消息。

    4.基本的调试工具和命令

    善用ROS下的rqt工具有助于事倍功半

    sudo apt-get install ros-indigo-rqt
    
    1. rosrun rqt_graph rqt_graph:可以显示节点之间的关系图,可让让你更加清楚节点之间的联系。
    2. rosrun rqt_reconfigure rqt_reconfigure:可以在不重启节点的情况下动态改变节点的参数,非常方便调试。
    3. rosrun rqt_plot rqt_plot:数据可视化,可以观察某一数据的变化情况,我经常用来观察小车的速度。
    4. rosrun rqt_console rqt_console:用来查看节点的Log信息。
    5. rosrun tf view_frames:查看tf变换关系,运行这条命令会在用户的根目录下生成一个frames.pdf文件。

    5.硬件设备

    网上关于仿真的教程真的是看到吐了,所以我打算从真机上出发,从硬件的选择到最后ROS的搭建写一个笔记。

    1. vnh5019电机驱动:主要是兼容ros_arduino_bridge,之后的文章我会介绍这个包。
    2. 带编码器霍尔马达:老师给我们选购的产品,霍尔马达注定了这个就只是实验产品。
    3. arduino2560:连接电机,超声波传感器等硬件设备。
    4. 摄像头以及传感器:从kinect V1到realsense R200,激光雷达的实验我以后会做个总结。

    我们最后搭建的成果如下:

    image

    先介绍到这里,如果有不对的请见谅!

    相关文章

      网友评论

        本文标题:ROS学习笔记与爬坑

        本文链接:https://www.haomeiwen.com/subject/ercvsqtx.html