在U盘中调试Ros程序
通常在工作的过程中,有时需要临时到样机中更新程序,但出于各种原因不方便将程序拷贝到本地主机中运行。而可以将程序放在U盘中,在U盘中进行调试、修改,而将可执行程序生成在本地主机中。
目标
将ROS项目(推广到任何cmake qmake管理的项目)文件放在U盘中,不需要拷贝到电脑上进行调试和编译。能够直接在U盘中进行运行和调试,并且不需要重复的从电脑上拷贝代码、删除源代码。
方法
- 1、 在u盘中根据ROS建立工作空间和package的方法建立一个空文件夹,用作存放源代码。

初始化和建立ros的工作空间

- 2、 放入package源码

- 3、下面是最重要的一步。
这也是和建立普通空间不同的地方,我们需要把生成的编译文件和可执行文件都放到电脑中去,而不是存放在u盘里面(如果u盘读写足够快,也能够把编译文件放在u盘,仅仅把可执行文件放在电脑里,但是这种大量反复的读写对u盘长久使用不太适合?)
为达到这个目的,在使用catkin_make时选择了其他位置。
首先查看到catkin_make中能够选择源文件的位置,而后将编译文件和可执行文件放在执行catkin_make的目录下。查看help如下:

我们会用到--source,用来指定源文件的位置(U盘中)。
在home下建立个空文件夹,用来存储编译生成的文件和可执行文件。

在该位置打开终端,执行如下:
catkin_make --source /media/qy/NameQi/test_catkin_in_u/ #指定源文件在U盘中
后面的目录就是我在u盘里面的目录。
如果编译出现如下错误cmake error at /opt/ros/kinetic/share/catkin/cmake/safe_execute_process.cmake:11(message):execute_process...:

按下图进行操作,用cmake图形界面打开cmakecache.txt,增加一条CMAKE_PREFIX_PATH为ros的路径

如此编译后,源代码在u盘中,但可执行程序和编译文件均在电脑中。
- 4、IDE/Qt设置
但是这样总是容易导致在qt中打开的时候,devel跑到build下面去,使得调试的时候总要再多编译一遍。这个问题可以通过设置devel路径来解决。

所以可以打开qt或者cmake增加这一条信息。而后就完成了u盘放项目,qt方便编译的整个过程了。
好了,总之这么多就总结为在u盘中放文件,在电脑里生成编译和执行文件。编译时候执行如下这个方便的指令:为方便增加以上两个cmake的环境变量,我们再次更改catkin_make时的编译语句如下:
catkin_make --source /media/qy/NameQi/test_catkin_in_u/ --cmake-args -DCATKIN_DEVEL_PREFIX=/home/qy/test_upan_catkin/devel -DCMAKE_PREFIX_PATH=/opt/ros/kinetic
其中涉及到的目录需要修成成自己的u盘目录,或者是文件目录。
- 5、程序执行方式
非qt中程序执行方式,在u盘没拔掉前可以通过以下ros指令进行程序的执行:
在u盘拔掉后需要直接执行devel/lib/ab下面的可执行程序。
建议不管有无u盘都执行devel/lib/ab下面的可执行程序。如果项目程序允许的话
本文介绍如何在U盘中存放ROS项目源代码,通过特定配置在电脑上进行编译和调试,实现无需频繁拷贝代码即可高效开发。适用于临时更新样机程序场景。
3231

被折叠的 条评论
为什么被折叠?



