1,ROS
根据W. S. Newsman 在“A Systematic Approach to Learning Robot
Programming With ROS”中提到。
ROS (robot operating system),这一机器人操作系统是一系列开源软件库和开源工具,它可以帮助我们搭建起自己的机器人应用平台。如今,ROS平台被广泛的用于移动机器人,飞行器,双目相机,机械臂和其他领域。ROS的目的是为了搭建起一个融合不同研究结果,算法实现和代码复用的通用的机器人初始平台。
ROS有以下几个主要的特征:分布式架构,多语言支持,足够好的稳定性以及开源。
根据上面的优势,我选择了ROS作为机械臂抓取平台。与此同时,ROS对于OpenCV以及PCL具有很好的兼容性,它们可以在图像处理中发挥巨大作用。比如可以实现物体的识别和位姿估计。RVIZ作为ROS中的可视化平台,可以生动的展现三维信息,比如,可以通过TF树展示机械臂,相机以及目标物体的坐标变换。
2,通讯机制
ROS的通讯主要包含三种方式:Topic(话题),Service(服务),以及Action通讯
在介绍通讯之前,非常重要的一点是了解ROS的数据结构。
Messages(消息)在整个ROS系统中扮演关键的作用。消息在通讯中是传递信息的关键媒介。其中消息的类型有很多种,比如在KinectV2中/KinectV2/ rgb/Image_raw话题的消息 是sensor_msgs/ Image.同样在位姿估计中,我们经常会看到话题发布的geometry_msgs/Pose。