• ROS节点与运行


    首先,先明确一下与节点相关术语的含义:

    Nodes:节点,一个节点即为一个可执行程序,它可以通过ROS与其他节点通信,另外,一个catkin程序包里可以有很多节点。

    Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题,是一个载体。

    Topics:话题,节点可以向话题发布消息或可以向话题订阅消息,像通信中转站一样。

    Master:节点管理器,ROS名称服务。

    rosout:相当于std::cout

    roscore:是在运行所有ROS程序前首先要运行的命令。

    运行ros节点的方法:

    一般有两种:

    第一种:使用rosrun,在设置完环境变量后,可以使用包名来直接运行一个包内的节点。

    用法:

    $rosrun  [package_name]  [node_name]

    注意:这种方法需要新打开一个终端 运行

    $roscore

    第二种:使用roslaunch

    用法:

    $roslaunch  [package]  [fliename.launch]

    launch是个文件,用launch文件来运行程序相对于rosrun的优点有两个

    <1>可以向程序传参

    <2>可以同时运行多个节点

    launch文件结构

    <launch>
     <!--第1个节点-->
     	<node pkg="包名" type="包内可执行程序名字" name="节点名">
       	<!--注释内容-->
        		<para name="程序中的数值或布尔参数" value="" />
    		<para name="程序中的字符串参数" value=" " type="str" />
    		...
     	<node>
    	...
     <!--第n个节点-->
    	<node pkg="包名" type="包内可执行程序名字" name="节点名">
      	 <!--注释内容-->
        		...
    	 <node>
    </launch>

    注意:

    <1>包内可执行程序名由包内CMakeLists.txt控制生成。

    <2>在每个可执行程序的main里都会有定义节点的语句,这里的节点名字只是用于代码编译,和launch文件的节点名不是一回事。

    比如:

    int main (int argc, char **argv)

    {

     ros::init(argc,argv,"节点名字");

    }


  • 相关阅读:
    测试开发技术
    测试开发技术难题与解决
    .gitignore文件
    mysql 子查询 联结 组合查询
    DTL
    jquery 基础
    Django操作数据库
    git 进阶篇
    miniconda使用
    pycharm之django基本配置
  • 原文地址:https://www.cnblogs.com/zhubaohua-bupt/p/7182808.html
Copyright © 2020-2023  润新知