初识ROS

2018-02-28
 这段时间想要利用Xtion Pro输出人体骨骼,公司的项目前段时间也开始准备这方面的工作了。就想要尝试Chaos84/skeleton_tracker,看看效果,但是这个项目是运行在ROS上的。没办法,按照步骤做下去呗。
  我的机器是Ubuntu 16,Openni2 例子程序是可以运行的,但是Nite2示例程序却报错DeviceOpen using default: no devices found。搜索了一下,试了各种解决办法,依然报错。最后偶然看到了一篇讨论,才解决这个问题。似乎是Nite2依赖于libudev.so.0,但是Ubuntu16上只有libudev.so.1,所以需要创建一个软链接。
  我偶然地安装了ROS Kinect,这是正确的ROS版本。如果使用Ubuntu14,则需要使用Indigo版本。安装还是非常方便的。我还担心是ROS版本不对导致程序无法运行,折腾了好一会儿。看这架势不对,我觉得有必要对ROS有一个全面的了解。
  ROS是给机器人做的操作系统,构建在Linux之上。“ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。”(百科)“ROS的核心是节点(node)。节点是一小段用Python或C++写成的程序,用来执行某个相对简单的任务或进程。多个节点之间互相传递信息(message),并可以独立控制启动或终止。某一节点可以面向其它节点针对特定标题(topic)发布信息或提供服务(service)。”这个概念就比较像Erlang语言里的概念了。“此外,节点还可以用来定义一个或多个服务(service)。ROS中服务的作用是在接收到来自其它节点的请求时回复该节点或执行某项任务。”这个就像是微服务了。概念上是很简单的。
   roslaunch 报错信息让人有点晕,生成了一堆log文件,我从这些信息里看不出来哪里出问题了,感觉这样不太好。本来想要弄一本ROS的书,在网上搜索了一下,看了看书籍目录,发觉讲解的东西很少。而且关键问题是我也不做机器人方面的工作,看这些东西无甚帮助。还是作罢。这个项目最终还是没有跑起来,我也思考明白了,我不一定要实时的骨骼运动,自己导入一个做好的就可以了。相反,布料模拟和渲染还更重要
一些,要把这上面花时间。
如果有任何意见,欢迎留言讨论。


[ 主页 ]
COMMENTS
POST A COMMENT

(optional)



(optional)