编写单个节点遇到的问题总结

本节点从其他地方拷贝得来:

  1. 配置问题

    当我们不在bashrc当中配置环境变量的时候,需要手动source 才可以,比如这里的

     

    source devel/setup.bash

     

 

  1. 编译Node ,出错。 Deny xxxxx。 没有权限。怎么办?

     

     

  2. 怎么办?

    切换用户, sudo –i ,然后输入密码即可。

    需要注意的就是,每切换一个用户,环境变量都需要重新配。因为不同用户拥有的文件是不一样的。所以环境变量又需要重新配置一次,或者直接把环境变量写在

    脚本下面,比如xxx.bash当中,每次切换用户直接 source xxxx.bash 即可。每次仅在一个终端中有效,打开另一个终端,临时环境变量也需要重新source 一下。

    当然,我们仅有一个用户时,把环境变量配置在 ~/.bashrc 当中可能更靠谱一点。

     

     

    还有就是程序包的结构问题:

     

    Ls -R 可以列出所有的文件的层级结构。一般说来,一个工作空间当中有bulid devel src 这样的结构,所有的节点都包含在src 下面。里面会有若干个 节点文件,src 下面会有

    CmakeLists.txt文件,这个文件一般标识有多少个节点在此目录下面。对于每一个节点,它里面也有同样的结构。其中CmakeLists.txt里面有依赖关系。需要自己手动添加。

     

    在工作空间目录下面的 devel 目录当中,include 下面包含着 头文件,lib 下面有本节点生成的exe文件,和catkin_make 命令之后生成的.so 库文件。

    这里的.so 就和VS里面的.lib是一样的概念。

     

  3. 当上面的环境配置好以后,我们就可以进行编译了。

     

    首先,先运行roscore, 假如发现无此命令错误的话,一定是由于环境变量配置错误导致的。

    新建一个terminal,之前的terminal 不用动,直接放在那即可,或者把之前的终端放入后台执行也可以。 Ctrl + Z.. 或者 bg + PTS名字。

     

    然后,运行catkin_make ,进行编译。假如有错误的话,进行定位,有可能是Cmake.txt错误,也有可能是程序的错误。

    还有一点需要注意的是,source + xxx.bash只在当前窗口中有效。有些时候,可能需要打开当前终端,进行再打开其他终端。

     

     

     

    注意一点:在导航解析的时候,遇到末尾的几个字符后,我要做的其实是清0.目前程序里面好像么有做。以后加上。

posted on 2016-07-12 23:32  zhuxuekui3  阅读(497)  评论(0编辑  收藏  举报