ROS进阶学习的过程

文章目录

    • 使用技巧
  • 环境的安装与配置
  • 初探与摸索
  • 针对于开发、应用中 ROS功能包的使用

使用技巧

使用catkin_make 编译workspace下的指定package

catkin_make -DCATKIN_WHITELIST_PACKAGES=“benchmark_publisher; package2”
注意中间用分号,然后不要留空格

环境的安装与配置

这里有第一次按照书上的方法进行安装的步骤,也有后面学习中遇到的问题,需要对ROS进行重新安装配置的过程。
(补充ROS 安装软件包依赖出错 解决方案的帖子)]

ROS使用教程-关于安装
初次在ubuntu14上安装ros-indigo的过程,
虽然ROS 用从2010年的B版本,一路发展,B/C/D/E/F/G/H/I/J/K/L版本,但是网上和书上很多推荐indigo版本的,稳定性好,支持的软件包也比较多,但是同时也要注意一个问题, Indigo版本的EOL data到2019年结束了(ubuntu Trusty版本EOL data ),所以在熟练掌握ROS和Linux使用后,要尝试往高版本的ROS和Linux学习发展。ROS distribution

Pixhawk软件仿真飞行测试
ROS indigo 下 gazebo6 安装与测试
在我学习用ros的Mavros包来调试Pixhawk飞控是,使用gazebo仿真软件时,这时ROS好像出现了与gazebo不匹配的情况,最终通过查阅资料,好像是ROS-indigo默认的full安装会默认安装gazebo2, 所以不能全部安装,要自己独立安装自己需要的包;同时ros-indigo 好像也与gazebo7不太兼容,最好安装gazebo6

初探与摸索

这里包含我在入门时,对ROS基本操作,以及一些概念的慢慢深入理解,还有在操作过程中慢慢积累的一些操作技巧。

ROS系统初探
比如随着慢慢深入的理解,我慢慢懂得了,为什么ROS明明是Linux上的一个软件,或者说软件框架,那为什么能把ROS称之为OS,或者说机器人操作系统呢?

我们说一个简单的操作系统,比如ucos,不考虑文件系统和驱动等等,那么他只有一组线程(进程)管理的代码,其实最早linux发布的时候也只是一个kernel,主要的功能还是进程管理、内存管理。

ROS的核心其实进程管理的工具(只不过底层的API是直接调用linux的函数而不是自己做的),因为每个进程在ROS中是一个节点,我们可以很直观的看到进程之间的通信(msg,service),所以理解ROS node就知道为什么ros中具备的其他的功能,因为大部分功能都是围绕这个ros node来的。我们写出来的代码在ros中回编译成一个个节点,运行的时候也是以节点的形式出现。

所以从这个角度上讲,ROS把自己叫做一个操作系统还是没有问题的。

ROS调试方法
在学习ROS时,有各种各样的软件包供我们使用,我们可以通过ROS-wiki上软件包的说明,了解软件的功能和使用,但是最终我们还是要把他们为我们的ROS所用,所以怎么来最开始尝试使用这些软件包,我们应该有一个大致的调试方法。

[ROS 的话题发布与订阅该如何编写]

ROS launch文件的作用和编写

针对于开发、应用中 ROS功能包的使用

##ROS对摄像头和图像处理

1、利用uvc_camera package ROS下获取USB免驱动高速摄像头图像数据

仅仅会用还不行,想深入学习,看看GitHub上 uvc_camera package的源码,它实际上是利用v4l2来获取图像,然后通过处理发布成ros中的图像话题,并且他可以处理普通的摄像头,也可以处理双目深度相机。

2、ros+Gstreamer
gstcam是github上一个开元的ros软件包,它巧妙地将gstream流媒体框架引入ROS系统。通过利用 gstreamer 实现一个标准的ROS API接口.比如捕获usb uav camera 的图像,然后转化成 ros中 sensor_msgs/Image类型的image话题,发布到ros中,供其他节点使用。

3、ROS&OpenCV进行摄像头数据的采集与订阅发布

4、web_video_server功能包的使用 实现把话题传到网络
web_video_server功能包的主要功能是,在ROS系统中,比如某些话题发布了图像、视频的话题,通过这个功能包可以订阅这些话题,然后对图像压缩,通过网络传输出去,这样我们就可以通过网络的方式获取到这些图像和话题

你可能感兴趣的:(ROS机器人系统)