catkin
初涉ROS,最熟悉的就是小乌龟,但是小乌龟与键盘之间是如何建立链接的,消息机制是怎么样,节点的创建和调用,服务等等,这些开发过程中耳熟能详的词语在ROS是怎么实现的。还是先简单将小乌龟调用以及世界坐标跟踪的先和大家说说。
首先,调用一个节点,先以小乌龟为例,第一步少不了运行运行roscore 以启动一个master,这边需要注意的是roscore只能运行一次,
节点这个词在linux中听的比较多,设备节点,在ROS中也同样有一个节点rosnode,rosnode 的方法比较少,只有几个 rosnode ping 用于尝试与节点建立连接以获取节点运行状态。 rosnode list 用于获取节点列表如果未运行别的节点,默认会有一个rosout节点,运行别的节点后,会在节点列表中进行显示,大家可以尝试rosrun turtlesim turtlesim_node 再运行 后会多出一个/turtlesim节点。 rosnode info 查看节点信息,包括节点的发布和订阅内容,
Publication(发布) Subscriptions(订阅) 以及Services(服务)。node 同步消息通讯一般使用的service,同时node可以订阅消息内容以便达到对节点的控制。
以上是对节点的一些简单说明 ,对于catkin_ws ,在刚开始接触时,正式用此方法去新建节点。以下就简单聊聊catkin_ws。 安装 catkin_ws第一需要安装catkin依赖库,在ubuntu 14.04环境下,运行sudo apt-get install Python-catkin-pkg 安装catkin依赖库,然后在根目录下创建catkin_ws 和/catkin_ws/src工作空间用于后续节点开发,为确认工作空间被脚本给覆盖到,需要ROS_PACKAGE_PATH将新建的空间目标覆盖到,具体命令为echo ROS_PACKAGE_PATH +文件路径,运行catkin_init_workspace 系统会自动建立CMakeLists等编译必须文件,目录结构如下所示.
功能包创建: 走完以上的流程以后,接下来就是简单创建功能包了,需要用的命令是: source /devel/setup.bash 同时将进入src后运行catkin_create_pkg hello_world std_msg rospy roscpp 此时产生的是一个空的功能包,里头并不包含任何功能代码,因此需要编写功能代码并且进行验证,下一节我们会编写一个简单程序进行说明