android ros 节点编写_学习干货 | ROS进阶一:Ubuntu18.04 用Qt与ROS Qt Creator Plugin开发ROS...

      在入门教程中我们已经编写过一些ROS程序代码了,当时我们是用touch创建文件再用gedit或vim编辑文件,这样容易出错,而且有些常用的固定格式老是自己写会感觉很麻烦。Qt是一款类似于Visual Studio、MATLAB等的图形用户界面开发框架。借助Qt和ROS插件,你可以直接创建节点等文件,并且创建文件时固定的代码结构会自动生成,编写代码时会有提示,且使用QT可做将ros节点加入UI界面,做交互很方便。


温馨提示:本文多图!


1、安装Qt

      在官网下载安装包,https://download.qt.io/archive/qt/。这里我下载5.12.9。点击文件qt-opensource-linux-x64-5.12.9.run下载。

4befe6e9d3cf9dd32999641ccab08f27.png

下载完毕后,打开终端,修改此文件权限,输入:

sudo chomd 755 qt-opensource-linux-x64-5.12.9.run

然后安装,直接双击.run安装包(此安装包应该在你电脑的“下载”目录下)。

144ee86bdc751fd66a9550c8ee8745c9.png

注册账号。

c30bcf74e62b7c4ed64c36abd0fa8eff.png

59f13913432f0306968c15b81380ae97.png

50030676d281e479d736f898103e8bfb.png

ca7cdd7c5d45313304a16a88912932cb.png

b67a1ecee967319f57228cf7a47a443c.png

71e5f9fe2871219425c9d91f9329fbbe.png

ef47a885d1afe4f1d507d1fc8c977615.png

安装即可。安装完后不必打开,先要配置环境,终端输入:

sudo gedit /etc/profile

在文件末尾添加:(XXX表示你的用户名,下同)

export PATH="/home/XXX/Qt5.12.9/5.12.9/gcc_64/bin:$PATH"export LD_LIBRARY_PATH="/home/XXX/Qt5.12.9/5.12.9/gcc_64/lib:$LD_LIBRARY_PATH"

不必打开Qt,我们继续安装ROS Qt Creator Plug-in。


2、ROS Qt Creator Plug-in      在官网下载安装包,网站:

https://ros-qtc-plugin.readthedocs.io/en/latest/_source/How-to-Install-Users.html#installation-procedure-for-ubuntu-18-04

这里我下载Ubuntu 18.04的,点击Bionic Online Installer (Recommended)下载。

d0d294112f226d79b6176ef7a18643c0.png

下载完毕后,同理打开终端,修改此文件权限,但这里我们介绍另一种方法,多了解些知识总是没错的~

      找到此文件(应该在你的“下载”目录,名为qtcreator-ros-bionic-latest-online-installer.run),右键点击文件,把权限中的“允许作为程序执行文件”打勾。

ef3f55409c25f74d92baf53acfa670d0.png

然后双击运行此文件,开始安装,安装目录我仍然是用的默认的,在/home/XXX/QtCreator下,一直下一步即可。安装完成后不必打开,先要配置环境。终端输入:

sudo gedit /etc/profile

在文件末尾添加

export PATH="/home/XXX/QtCreator/latest/bin:$PATH"

然后source:

source /etc/profile

至此,一切就绪。


3、创建ROS工作空间和catkin包

      终端输入:

qtcreator-ros

由于我是安装在home目录下,不必进入sudo模式。

      此时应该已经启动了Qt界面。如果你报错了,有可能是需要重启。那我们就直接在软件栏打开Qt。在菜单处输入qt可进入,选第一个Qt Creator即可。

打开界面如下:

b765d8bc47fca3ef0f8d025fef16e7db.png

点击New Project,点击其他项目,选择ROS Workspace:

70b7425045b59aff134c3e75db732a0c.png

显示如下:

09bdc09311d5c2f270f182756b2b4b15.png

我想要在/home/XXX目录下创建一个工作空间。首先,用终端创建一个目录,输入:

mkdir /home/XXX/ws1

然后在Qt中创建工作空间。刚刚那张图的Name我们就叫ws1;Distribution是ROS的安装位置,不要动它;Build System我们选择CatkinMake,否则会报错;路径就选择我们刚才创建的文件夹,点击浏览,选择ws1。

0cd72867e239adbdfebdbb6688f5ff4a.png

设置好后,点击下一步,再点击完成即可。

      现在,工作空间已经创建好了。点击项目旁边的漏斗按钮,把所有勾选的都取消。

db5c4ea02df5973902e86dfe37825cf9.png

这时项目下的结构应该是这样的:

25e558e36b98411f9caa0be35341541e.png

右键点击ws1进行构建,或点击左下方锤子图案,或ctrl+b进行构建。构建即编译。构建完成,我们看下方的第四项编译输出,不应当有报错。最后两行应为:

17:16:08: 进程"/opt/ros/melodic/bin/catkin_make"正常退出。17:16:08: Elapsed time: 00:01.

编译完成后,右键点击ws1项目,选择关闭此项目:

b2fc43d8892706a5c2c5ab92fe84d0fd.png

再在空白处右键点击载入项目,选择ws1.workspace载入ws1项目。或者在最左侧的“欢迎”界面open project处载入ws1项目。

abf64dac7f26aac0ea4a587bcfcf2977.png

此时可以看到这样的目录:

f096c23c1d1e4b62a56e3793a7d9da40.png

下一步,我们建立catkin包。右键点击src,选择add new。

32c4233d2dbb206cfca084ea8d1580fa.png

1cc07d339f44e33c766efb91398e1661.png

7cf0ac701047183815d8b1798e1846c5.png

名字我们叫pkg1,作者、维护者等可不填写,依赖项目要按需填写。还记得我们在ROS入门二中创建catkin包的命令吗:

catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

这里的名字和依赖项就相当于上面这行代码。我们按如下创建:

a04707b9b4f55dd561cc0655d0e5697c.png

依赖项目可以在catkin包的CMakeLists.txt和package.xml中更改。

点击下一步,完成创建。然后按照上面相同的流程,关闭ws1再重新载入。现在可以看到:

876c3f5d8eaf8f67b98afb142d926457.png

这里的catkin包需要我们自己去创建目录和文件,回忆一下我们在入门教程中创建的beginner_tutorials的目录:

9c1c773fdd48fde55b58b547a9de6dde.png

按照入门教程的内容,即可在这个项目中创建节点、消息、服务、launch等文件。我们以节点为例,在ws1项目里创建一个节点。按照惯例,源代码文件(节点文件)放在包的src文件夹里,而这里pkg1没有生成src包,我们先自己创建一个。终端输入:

 mkdir /home/XXX/ws1/src/pkg1/src

可以看到项目的目录变成:

1bd9ab9545f5f3e6367cf669642fa77f.png

右键点击pkg1下面的src,选择add new,选择basic node:

4a7fbc96ba14a4d27fde9331d634e283.png

名字叫node1。

bf11b8d489650c9c479958d87258e95c.png

创建完成后可以看到目录变成:

e09109775437e801ace84550312d5449.png

现在节点文件还是报错的,因为我们还没编译。先修改pkg1下面的编译文件:

79a98abfb7c6d857cb9b234ecb81e01d.png

末尾加入:

add_executable(node1 src/node1.cpp)target_link_libraries(node1    ${catkin_LIBRARIES}        )

ctrl+s保存。现在构建项目,点击左下角锤子。编译通过,再点击node1文件,等文件自动检测完毕,就没有报错了。

还记得ROS入门一的环境配置内容吗,在运行节点之前,我们要把环境配置好。终端进入sudo模式,输入:

source /home/XXX/ws1/devel/setup.bash

然后就可以运行节点了。在进入sudo模式的终端运行roscore,再打开新的终端,sudo,输入:

rosrun pkg1 node1

显示输出:

[ INFO] [1598954350.298502222]: Hello world!

如果每次还是要打开终端,是不是感觉还是有点麻烦?其实在Qt中直接就可以运行终端命令。在Qt窗口最下面:

f543fb6da5586b4d23294503f955ec1b.png

把所有项目都勾选,然后点击8 ROS Terminal,就可以使用终端了。

2539a2b3847948b90174d9d8ca71ac40.png

Qt终端与外部终端效果完全一样,比如,如果你在Qt终端运行了roscore,外部终端就无法运行roscore,也不必再运行roscore,可以直接使用ros命令。每个Qt终端也是只能运行一个进程,在红色方块的左边是打开新终端的按钮。

最后,如果你在文件系统中打开ws1,可以看到:

e699c37059fc2aae4fcd1ad5d081563a.png

Qt中也可以直接使用文件系统,点击“日+”按钮,选择文件系统:

f8b8625581abaeef3b5d1a7cf35b13ac.png

可以看到:

c60615f49eb8d6fe95d65c6d18baea60.png

如果你想要文件系统中的build、devel、install等目录也显示在项目ws1下面,点击ws1.workspace文件,按照src的格式添加你想添加的文件夹,例如添加build文件夹:

b99feb670883c80dad67c6624361e80e.png

ctrl+s保存,可以看到ws1下面目录多出了build:

1d8c729c7735ae50324b828ea298ef1d.png

同理可以添加其他文件夹。


以上就是今天的内容啦~

63c8a3dc61342c2191e917f35e017711.png

如果有疑问或建议,欢迎私信我,小出和你一起加油~


作者:小出

图源网络

成长路上,小出陪你

e4a3cbd3731634f25af48637a1205dbf.png

让我们一起,见证你的努力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值