ros创建功能包和编译过程问题处理
Posted loongembedded
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ros创建功能包和编译过程问题处理相关的知识,希望对你有一定的参考价值。
文章目录
1. 创建工作空间和功能包
参考添加链接描述
2.新建cpp文件
在创建的功能包helloworld/src下创建helloworld.cpp文件,内容如下:
//1.包含ros的头文件
#include "ros/ros.h"
//2.编写main函数
int main(int argc, char * argv[])
//3.初始化ros节点
ros::init(argc,argv,"hello_node");
//4.输出日志
ROS_INFO("hello wordld!");
return 0;
3.修改CMakeLists.txt
修改helloworld/CMakeLists.txt文件,修改前后的对比图如下
总结修改有几点,在build部分
(1) 找到add_executable()去掉前面的注释,并把此函数第1个参数(节点名)改为hw(可根据需要修改),第2个参数改为新建的cpp文件,比如helloworld.cpp。
(2) 找到target_link_libraries(),并去掉注释,并把此函数第1个参数改为hw,和add_executable()第1个参数名字保持一样。
下面就开始编译
4.编译问题
在catkin_ws下用catkin_make命令编译
4.1 Could NOT find rospy (missing: rospy_DIR)
解决方案:find_package()函数注释掉第3个参数rospy的引用
5. 运行可执行文件
5.1 运行roscore的Resource not found: roslaunch的解决方法
具体信息:
... logging to /home/kandi/.ros/log/8e9b6ac4-b602-11ec-96b9-7fb5732bd610/roslaunch-ubuntu-2120.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
Resource not found: roslaunch
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/kandi/catkin_ws/src
ROS path [2]=/opt/ros/noetic/share
The traceback for the exception was written to the log file
根据回忆,之前运行roscore是没问题的,中间在处理编译问题的时候按照了下面的软件:sudo apt-get install python3-roslaunch
解决方法:
sudo apt-get install ros-noetic-roslaunch
换成noetic对应的版本即可。
5.2 Command ‘rosrun’ not found问题
具体报错信息:
Command 'rosrun' not found, but can be installed with:
sudo apt install rosbash
解决方法:重新安装ros版本
sudo apt install ros-noetic-desktop-full
5.3 执行可执行文件
命令行终端先运行roscore启动master阶段,再在另一个终端执行可执行文件,生成的可执行文件在~/catkin_ws/devel/lib/helloworld目录下
有两种运行方法,到可行性文件所在目录:
(1) rosrun命令:rosrun helloworld hw,其中helloworld是功能包名,hw是节点名(也就是可执行文件名)
(2) 直接执行:./hw。
以上是关于ros创建功能包和编译过程问题处理的主要内容,如果未能解决你的问题,请参考以下文章