您的位置:首页 > 其它

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

2016-07-12 23:32 162 查看
本节点从其他地方拷贝得来:

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

source devel/setup.bash



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



怎么办?
切换用户, 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是一样的概念。



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

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

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

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

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



注意一点:在导航解析的时候,遇到末尾的几个字符后,我要做的其实是清0.目前程序里面好像么有做。以后加上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: