ubuntu18.04 在QT中添加ros环境搭建 亲测可用
环境 :
Ubuntu 18.04 LTS
开始前准备工作
ubuntu18 安装ROS 参考 http://wiki.ros.org/melodic/Installation/Ubuntu
1、在ROS环境下安装 QT Creator
第一步 安装Qt Creator
Ubuntu系统库自带的qtcreator并没有ROS插件,需要自己通过ppa方式安装,网上多是基于14.04版本的,且较为繁琐,并不推荐。这里要介绍的是带有ROS插件的Qt Creator安装,链接如下:
ros-qtc-plugin How to Install (Users)
下载文件名为 qtcreator-ros-bionic-latest-offnline-installer.run,进入文件所在目录,使用如下命令安装:
chmod +x qtcreator-ros-bionic-latest-offnline-installer.run
sudo ./qtcreator-ros-bionic-latest-offnline-installer.run
弹出安装界面,按链接中的步骤一步步走即可。
第二步 安装 ROS 的 QT 相关功能包
sudo apt-get update sudo apt-get install ros-kinetic-qt-create ros-kinetic-qt-build
第三步 测试 QT 功能包
3.1 新建工作空间,并新建一个名为 hello 的 qt功能包
mkdir -p qt_ws/src
cd qt_ws/src
catkin_create_qt_pkg hello roscpp rospy std_msgs //注意这里是 catkin_create_qt_pkg,不是 catkin_create_pkg
cd ..
catkin_make
3.2 运行节点
source devel/setup.bash
rosrun hello hello
出现以下软件弹窗证明 Q T 功能包测试成功
2.使用Qt Creator开发ROS
为了开发ROS,首先需要创建工作空间,然后创建程序包,接下来根据需要编写消息文件、服务文件,动作文件等资源文件,然后利用catkin_make编译生成相应的编程语言目标文件,最后创建节点、launch文件、机器人模型等。
Qt Creator为开发ROS程序提供了良好的代码编辑、编译、调试工具,在本小节中,我们将介绍如何利用Qt Creator开发一个名为“Hello ROS”的基本节点。
1.创建工作空间
首先,打开QtCreator的“New Project”,并选择“Other Project”,选择“ROS Workspace”模板,如图1所示:
图1
选择ROS Workspace创建项目
然后,设置项目名为catkin_ws,设置工作空间路径为~/ros/catkin_ws,其中~代表当前用户目录。ROS版本默认选择Melodic,编译系统选择CatkinMake,设置完成后点击“下一步”。设置工程名和位置如图2所示:
最后,设置GIT、SVN、CVS等版本控制系统,默认无。点击“完成”按钮即可完成工作空间的创建,如图3所示:
ROS会创建catkin_ws.workspace文件设定ROS版本和编译系统,并创建src目录和工作空间的CMakelists.txt文件,CMakelists.txt文件对catkin编译系统进行了配置,如图4:
2.创建程序包
工程创建完之后,就可以创建程序包了。右键点击图4的src目录,选择“New File”创建程序包,在弹出的界面选择ROS–>Package,然后点击“Choose”,如图5所示:
在弹出的窗口中,设置包名及路径,默认为src目录,在所示的Catkin中添加依赖roscpp、rospy、std_msgs,依赖之间用逗号隔开,这意味着该程序包支持C++和Python两种开发语言,并支持ROS标准消息输出,最后点击“Next”,如图6所示:
最后弹出工作空间和版本控制界面,程序包“example_01”就会被添加到工作空间catkin_ws中,界面如图7所示:
点击“完成”按钮即可完成程序包的创建。创建完成后,ROS会自动地在相应的目录下初始化生成CMakeLists.txt、Package.xml等文件和include、src等目录。
然而,在QtCreator左侧栏看不到新添加的包,但系统中已经存在相应的文件。猜测应该是QtCreator的bug。此时关闭工程,重新导入可解决。
3.创建节点
接下来创建节点,右键点击程序包example_01下的目录src,选择“Add New”,QtCreator支持基本节点、发布者节点、订阅者节点、服务端节点、客户端节点、launch文件、URDF文件等的创建,并提供了基本的模板。在此我们选择“Basic Node”,点击“Choose”(为节省篇幅,不再重复截图)。
在弹出的新建基本节点界面中,设置文件名为hello.cpp,文件路径默认为/home/simon/ros/catkin_ws/src/example_01/src,如图8所示:
点击“下一步”按钮作进一步配置,然后点击“完成”将hello.cpp文件添加到程序包example_01中。
自动生成的hello.cpp文件仅对ROS进行初始化并创建了一个节点句柄,内容如下:
#include <ros/ros.h> int main(int argc, char **argv) { ros::init(argc, argv, "hello"); ros::NodeHandle nh; ROS_INFO("Hello world!"); }
接下来需要编辑文件example_01/CMakeLists.txt(注意不要搞错哦,不要和catkin_ws/src目录下的CMakeLists.txt混淆),配置可执行文件和目标链接库,可链接到ros/ros.h,可执行文件名为hello,内容如下:
//添加可执行文件 add_executable(hello src/hello.cpp) //将可执行文件和库文件链接 target_link_libraries(hello ${catkin_LIBRARIES} )
4.编译
网上的资料都是点击左下角的三角型进行build,但是我在编译的时候出现以下的错误
16:12:51: 无法启动进程"catkin" build --cmake-args -G 'CodeBlocks - Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug
Error while building/deploying project catkin_ws (kit: 桌面)
When executing step "CatkinTools Step"
找了很多资料,按照步骤去做都没有解决,
索性 我直接在终端里输入命令去编译,运行
catkin_make
source devel/setup.bash
rosrun example_01 hello