大家好,我是倒霉蛋蛋小鱼,今天在尝试跑了一下aubo的机械臂仿真,顺手建了一个ros的包跑moveit。
看着生成的杂乱无章的CmakeLists,小鱼的强迫症癌晚期又发作了
所以就手动的把看起来不顺眼的,感觉没用的给删掉了,删完之后的CMakeLists张这个样子,是不是清爽很多
删完之后的CmakeLists
不知道你有没有看出问题
接着小鱼进行编译运行
catkin build sim_demosource devel/setup.bashrosrun sim_demo sim_demo
结果错误来了
[rosrun] Couldn't find executable named sim_demo below /root/code/arm/aubo/src/sim_demo[rosrun] Found the following, but they're either not files,[rosrun] or not executable:[rosrun] /root/code/arm/aubo/src/sim_demo[rosrun] /root/code/arm/aubo/src/sim_demo/include/sim_demo
编译没错误,运行居然找不到,有点意思 接着小于查看了编译之后生成的文件,发现在build目录下的sim_demo下有可执行文件,这就说明编译没有问题(这个思路大家可以借鉴)
发现了可执行文件
那到底是哪里出了问题呢?想起了删除的时候遇到了一个奇怪东西
catkin_package(# INCLUDE_DIRS include# LIBRARIES aubo_demo# CATKIN_DEPENDS roscpp rospy std_msgs# DEPENDS system_lib)
明明里面什么都没写,但是这个指令却没有被注释,于是小鱼抱着死马当活马医的想法试了下
居然没问题了
再运行也正常了~
正常运行
总结
所以可以猜测,catkin_package指令可以把当前的包变成一个被ros认可的包,把生成的可执行文件也放到指定的目录,让我们可以使用rosrun指令来运行。
当然大家也可以直接到生成的可执行文件目录,使用./执行文件,也是可以的~