PS:小编也是新手,在做界面时也走了很多弯路,很多博主写的不是很明确,所以小编记录了自己制作的全过程,希望对初学者有用,共同进步。
1.新建工作空间catkin_new,并创建src包,。
2.新建ROS workspace ,保存在src文件夹内,打开工程是直接打开是src下的workspace。
3.src目录右键打开terminal利用命令catkin_create_qt_pkg btn 创建包,并编译。(预先安装建包工具,指令:sudo apt-get install ros-kinetic-qt-ros)
4.然后点击project->run,添加节点如图:
倘若没有btn文件,在工作空间编译一下,就有了。
5.在4的同时,可以不要btn,直接打开turtlesim中的node和key,然后点击运行,就可以案件控制小乌龟了
6.界面控制小乌龟程序:
(1)在UI界面拖放几个按钮,并改名字,右击按钮转到槽,在主窗口main_window.cpp文件中写入qnode.up();(因为qnode里面定义的是up和left),另一按钮同理。
void btn::MainWindow::on_pushButton_clicked()
{
qnode.up();
}
void btn::MainWindow::on_pushButton_2_clicked()
{
qnode.down();
}
void btn::MainWindow::on_pushButton_3_clicked()
{
qnode.left();
}
void btn::MainWindow::on_pushButton_4_clicked()
{
qnode.right();
}
(2)在qnode.hpp中添加:
void up();
void down();
void left();
void right();
(3)主要的是qnode.cpp文件,首先在头文件中定义:
/**
-
@file /src/qnode.cpp
-
@brief Ros communication central!
-
@date February 2011
/
/***************************************************************************
** Includes
/
#include <ros/ros.h>
#include <ros/network.h>
#include
#include <std_msgs/String.h>
#include <geometry_msgs/Twist.h>
#include
#include “…/include/btn/qnode.hpp”
/
** Namespaces
/
namespace btn {
/*
** Implementation
***************************************************************************/
QNode::QNode(int argc, char argv ) :
init_argc(argc),
init_argv(argv)
{}
QN