总算搞通ROS的服务节点订阅发布消息主题了。可以实现那几个东西。记录一下吧。
首先要一个工作空间。
在当前系统用户的home目录下的.bashrc文件中添加source /opt/ros/jade/setup.bash,才能运行ros相关的命令。
开始创建一个catkin工作空间
$ mkdir -p ~/catkin_lljws/src $ cd ~/catkin_lljws/srcp参数可以创建多级父级目录,这里同时创建了catkin_ws文件夹和src文件夹。里面什么都没有,但是也可以build它
$ cd ~/catkin_ws/ $ catkin_make这个时候记得要source一下devel中的setup.bash,否则不会将当前工作空间设置在ROS工作环境的最顶层。
$ source devel/setup.bash或者直接将这个放到.bashrc文件中去。
下一步创建一个软件包
首先切换到catkin工作空间中的src目录下:
$ cd ~/catkin_lljws/src
使用catkin_create_pkg命令,这个程序包依赖于std_msgs、roscpp和rospy:
$ catkin_create_pkg llj_package std_msgs rospy roscpp这些依赖包随后保存在 package.xml文件中。自定义 package.xml:
描述标签<description>,维护者标签maintainer,许可标签license,依赖项标签depend,在本例中,因为在编译和运行时我们需要用到所有指定的依赖包,因此还需要将每一个依赖包分别添加到run_depend标签中。
编译软件包,直接和之前一样build即可。
node节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。
message消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。
topic话题,节点可以发布消息到话题,也可以订阅话题以接收消息。
master节点管理器,ROS名称服务 (比如帮助节点找到彼此)。
rosout节点用于收集和记录节点调试输出信息,所以它总是在运行的。
节点与节点之间通过话题相互通信。
话题之间的通信是通过在节点之间发送ROS消息实现的。