输入 rosrun rqt_graph rqt_graph
可以打开一个界面观察节点与话题的关系 绿色和蓝色的是节点 红色的是话题

查看ros中额的tf转换信息

rosrun rqt_tf_tree rqt_tf_tree


https://blog.csdn.net/xianxjm/article/details/73457407

一个机器上创建好的Ros Package要拷贝到另一个机器上,容易出现找不到包的情况。为了解决这个问题,做了很多方面的尝试,得出一些结论。
首先环境变量要设置的对,Ros package必须要放在环境变量所在路径下,Ros才有可能找到这个Package。
用下面这种方式可以弃置环境变量 :

export ROS_PACKAGE_PATH="$ROS_PACKAGE_PATH:/home/username/rosdir"

其中ROS_PACKAGE_PATH是Ros环境变量名称,/home/username/rosdir是Package所在的绝对路径。
如果环境变量弃置成功后还无法找到Package,查看一下Package中manifest.xml或package.xml文件,这里以mainfest.xml
为例。
         Ros在找package的时候只认manifest.xml或package.xml文件。mainifest.xml文件内容如下:
<package>
  <description brief="TestRosNode">
     TestRosNode
  </description>
  <author>username</author>
  <license>BSD</license>
  <review status="unreviewed" notes=""/>
  <url>http://ros.org/wiki/TestRosNode</url>
  <depend package="std_msgs"/>
  <depend package="rospy"/>
  <depend package="roscpp"/>
</package>
其中TestRosNode是Package的名字,后面是一些额外的描述和依赖关系。package.xml文件与manifest.xml文件中的内容大同小异,在这里就不做具体分析了。
在设置好manifest.xml或package.xml文件,再运行rosmake TestRosNode TestRosNode,如果还是找到不
Package,在终端中运行这两个命令
rospack profile
rospack find TestRosNode
其中TestRosNode是Package名。运行完之后一般就可以找到对应的Package了。知道这个之后,就可以轻松的让Ros找到一个Package,找这个包之后可以进行编译工作了。
编译的时候要有makefile文件,在Ros包中的内容是这样的,没有这个是无法编译的。makefile文件中的内容如下:

include $(shell rospack find mk)/cmake.mk

Ros有很多版本,有的版本中roscreate-pkg之后,默认的CMakeList文件中,是没有生成可执行文件的命令的,要手动加上。CMakeList.txt 文件如下所示:
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
 
# Set the build type.  Options are:
#  Coverage       : w/ debug symbols, w/o optimization, w/ code-coverage
#  Debug          : w/ debug symbols, w/o optimization
#  Release        : w/o debug symbols, w/ optimization
#  RelWithDebInfo : w/ debug symbols, w/ optimization
#  MinSizeRel     : w/o debug symbols, w/ optimization, stripped binaries
#set(ROS_BUILD_TYPE RelWithDebInfo)
 
rosbuild_init()
 
#set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
 
#uncomment if you have defined messages
rosbuild_genmsg()
#uncomment if you have defined services
rosbuild_gensrv()
 
#common commands for building c++ executables and libraries
#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
#target_link_libraries(${PROJECT_NAME} another_library)
#rosbuild_add_boost_directories()
#rosbuild_link_boost(${PROJECT_NAME} thread)
#rosbuild_add_executable(example examples/example.cpp)
#target_link_libraries(example ${PROJECT_NAME})
rosbuild_add_executable(TestRosNode ${ALL_SRC})
其中rosbuild_genmsg()和rosbuild_gensrv()是在生成自定义msg和srv时使用的。
rosbuild_add_executable(TestRosNode ${ALL_SRC})这句的作用是编译之后生成可执行文件,生成的可执
行文件可以脱离Ros独立运行如:

./TestRosNode

TestRosNode是生成的可执行文件。
  更多详细内容可参考官Ros方文档,http://wiki.ros.org/ROS/Tutorials/CreatingPackage,一定要注意
里面有catkin和rosbuild两种模式。

可以用来调试ros程序输出日志
rosrun rqt_console rqt_console

 查询ros环境变量
export | grep ROS
 
 

ROS使用小知识点的更多相关文章

  1. 刚接触Linux,菜鸟必备的小知识点(一)

    身为一个将要大四的学生,而且还是学计算机的没有接触过linux简直是羞愧难当.这个假期做了一个软件测试员,必须要熟悉linux的操作,所以对于我这个菜鸟我也就说几点比较重要的小知识点吧. 第一.cd指 ...

  2. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  3. 【转】HTML5的小知识点小集合

    html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...

  4. AngularJS的小知识点

    小知识点:$scope和$rootScope (1)每次使用ngController指令,都会调用控制器的创建函数,创建出一个控制器对象. (2)每次创建一个控制器对象,AngularJS都会创建一个 ...

  5. js中关于value的一个小知识点(value既是属性也是变量)

    今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻. [1]以下这种情况是常见情况,会弹出“测试内容” <input type="button" v ...

  6. html5的小知识点小集合

      html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于< ...

  7. [BS] 小知识点总结-05

    [BS] 小知识点总结-05 1. 不论UIWindow的rootViewController是navC.tabBarC还是VC,也不管modalVC和rootVC中间隔着多少个VC,但是modal出 ...

  8. 一个关于echo的小知识点

    一个关于echo的小知识点     echo一个布尔值时,如果是true,输出1,而如果是false,将什么都不输出! 网上搜的一个解释: 对于数字类型来说,false 确实 是 0, 而对strin ...

  9. easyui中的combobox小知识点~~

    一直使用的easyui中,一些不为人知的小知识点,与君共勉: 1.combobox设置高度:使用panelHeight属性: 2.combobox本身自带“自动补全”功能,但是在浏览器中是有限制的,在 ...

随机推荐

  1. lumion的物体系统5.30

    1.“自然"点击这棵树.可以打开自然库.不同的植物分类有很多页数. 选择一棵树,自动返回页面单击鼠标左键可以种植这个树.成排种树:点击”人群安置“点击我们想安置的起点.再点击终点.用鼠标右键 ...

  2. JS a标签默认鼠标事件,导致无法修改input选中状态

    今天踩了一个坑

  3. flask 第二章 endpoint重名 Flask路由 初始化配置 Falsk Config 蓝图+目录结构

    今日内容 1.路由的分发,以下两种方式效果一样,但是都能指向同一个函数 from flask import Flask app=Flask(__name__) #第一种方式 @app.route('/ ...

  4. 最新的 cocoapods 安装与使用(2019.04)

    cocoapods简介: cocoapods 是iOS的类库管理工具,可以让开发者很方便集成各种第三方库,而不用去网站上一个个下载,再一个个文件夹的拖进项目中,还得添加相关的系统依赖库.只需要安装好c ...

  5. powershell脚本:你的文件已经被黑客篡改.ps1

    本人原创powershell脚本分享. 脚本用途:列出某目录下,所有软件签名不符的文件. 系统需求: win7 + powershell 2.0 及 以上. #nd你的文件已经被黑客篡改.ps1 ps ...

  6. input 特殊字符限制

    ng-pattern="/^[A-Za-z0-9_,\.\u4e00-\u9fa5\s]+$/"

  7. python笔记20-装饰器、作用域

    函数的作用域是就近原则,从里往外找,如果自己函数里有,就拿过来如果自己的函数里面没有的话,就去它父级函数里面找,父亲用不了儿子的,儿子可以用父亲的函数只有被调用才会执行# name = 'python ...

  8. Exploit-Exercises nebule 旅行日志(三)

    继续探索之路,经过昨天的题目,忽然有那么点开窍了,今天继续: 看题目,还是用level对应的级别的帐号和密码登录,flag02的程序源码如图上所示,getegid 和 geteuid就不说了,这个程序 ...

  9. C++二维数组、指针、对象数组、对象指针

    项目中用到,随手记一下: 1.二维数组.与指针 创建二维数组指针的方式: a.已知一维的大小 1 int **array=new int *[rows]; 2 (for int i=0;i<ro ...

  10. 1. nginx添加自定义http模块(简单)

    步骤 1. 新建模块目录2. 添加模块配置文件3. 编写模块源码文件4. 在主配置文件中配置访问location5. 编译加入模块文件6. 测试 新建模块目录 mkdir /opt/nginx/ext ...