ROS 开发环境简介
首先考虑几个问题?
做实验的时候,如果想要把图像数据和处理之后的图像的数据保存下来,怎么办?你马上想到可以这样
imwrite("xx",xx);
可是这样,会加重图像读取线程的负担。另外 如果同时想记录传感器的数据,GPS的数据怎么办,你马上想到可以这样
ofstream fps("xx.txt")
又如果想要同时记录他们的采集的时间呢?这个怎么办呢?又如果想要从机器人上实时传输图像到PC上要查看,怎么办?你会想到几种方法。
- socket(TCP/IP)
- Remote Desktop+ Screen recorder
这样感觉还挺麻烦的有没有简单一点的方法,或者说有没有一种好用的tool帮我们完成这样一件事。这里我们介绍机器人中应用十分广泛的一种开发工具-ROS。
Why ROS?
- Powerful tools. (rqt, rosbag, roslaunch).
- Run a code in mutli robots
- Support SSH
- Support OpenCV
- Support Python
- Rich driver packages of robots.(Cameras, LINDA, sensors)
- Support many Robots.(DJI, PR2, turtle bot…)
- Open source
那么ROS是什么,为什么他明明只是一个linux中软件,却叫做OS。
ROS的核心
我们说一个简单的操作系统,比如ucos,不考虑文件系统和驱动等等,那么他只有一组线程(进程)管理的代码,其实最早linux发布的时候也只是一个kernel,主要的功能还是进程管理、内存管理。
ROS node
ROS的核心其实进程管理的工具