Exemplo n.º 1
1
bool MainWindow::validate_connection(){

    bool result(false);

    if ( ui.checkbox_use_environment->isChecked() ) {
        if ( !qnode.init() ) {
            showNoMasterMessage();
        } else {
            ui.button_connect->setEnabled(false);
            result = true;
        }
    } else {
        if ( ! qnode.init(ui.line_edit_master->text().toStdString(),
                   ui.line_edit_host->text().toStdString()) ) {
            showNoMasterMessage();
        } else {
            ui.button_connect->setEnabled(false);
            ui.line_edit_master->setReadOnly(true);
            ui.line_edit_host->setReadOnly(true);
            ui.line_edit_topic->setReadOnly(true);
            result = true;
        }
    }
    return result;
}
Exemplo n.º 2
0
void MainWindow::on_button_connect_clicked(bool check ) {
    ROS_INFO("TESTE");

	if ( ui.checkbox_use_environment->isChecked() ) {		//using environment variables
		if ( !qnode.init() ) {
			showNoMasterMessage();
		} else {
			ui.button_connect->setEnabled(false);

			//Connect signal from NODE to SLOT in window
            QObject::connect(&qnode, SIGNAL((new_data)), this, SLOT(update_data()));
		}
	} else {
		if ( ! qnode.init(ui.line_edit_master->text().toStdString(),
				   ui.line_edit_host->text().toStdString()) ) {
			showNoMasterMessage();
		} else {

			QObject::connect(&qnode, SIGNAL(new_data()), this, SLOT(update_data()));
			ui.button_connect->setEnabled(false);
			ui.line_edit_master->setReadOnly(true);
			ui.line_edit_host->setReadOnly(true);
			ui.line_edit_topic->setReadOnly(true);
		}
	}
}
Exemplo n.º 3
0
void MainWindow::manual_Handler(){
    if (qnode.init() ){
        qnode.log(QNode::None,"Changing mode to MANUAL(2)");
        qnode.mode_set(2);
        qnode.robot_motors_speed_set(0,0);
    }
    else if ( !qnode.init() )
        showNoMasterMessage();
}
Exemplo n.º 4
0
void MainWindow::object_recognition_Handler(){
    if (qnode.init() ){
        QProcess *proc = new QProcess();
        proc->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"rosrun tanky object_recognition\" ");
    }
    else if ( !qnode.init() ){
        showNoMasterMessage();
    }
}
Exemplo n.º 5
0
void MainWindow::dump_map_Handler(){
    if (qnode.init() ){
        QProcess *proc = new QProcess();
        proc->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"rosrun map_server map_saver -f ~/ros_workspace/robot/tanky/my_map123\" ");
    }
    else if ( !qnode.init() ){
        showNoMasterMessage();
    }
}
Exemplo n.º 6
0
void MainWindow::on_button_connect_clicked(bool check ) {
    if ( ui.checkbox_use_environment->isChecked() ) {
        if ( !qnode.init() ) {
            showNoMasterMessage();
        } else {
            ui.button_connect->setEnabled(false);
        }
    } else {
        if ( ! qnode.init(ui.line_edit_master->text().toStdString(),
                          ui.line_edit_host->text().toStdString()) ) {
            showNoMasterMessage();
        } else {
            ui.button_connect->setEnabled(false);
            ui.line_edit_master->setReadOnly(true);
            ui.line_edit_host->setReadOnly(true);
            //ui.line_edit_topic->setReadOnly(true);
        }
    }
}
Exemplo n.º 7
0
void MainWindow::emergency_Handler(){

    if (qnode.init() ){
        qnode.log(QNode::None,"Changing mode to SAFE(3)");
        qnode.mode_set(3);
        qnode.robot_motors_speed_set(0,0);
    }
    else if ( !qnode.init() )
        showNoMasterMessage();
}
Exemplo n.º 8
0
void MainWindow::rviz_Handler(){
    if (qnode.init() ){
        QProcess *proc = new QProcess();
        proc->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"roslaunch tanky rviz.launch\" ");
    }
    else if ( !qnode.init() ){
        showNoMasterMessage();
    }

}
Exemplo n.º 9
0
void MainWindow::vision_driver_open_Handler(){
    if (qnode.init() ){
        QProcess *proc1 = new QProcess();
        QProcess *proc2 = new QProcess();
        proc1->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"rm -R ~/.rviz\" ");
        proc2->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"roslaunch tanky init_rviz_laser_odom.launch\" ");
    }
    else if ( !qnode.init() ){
        showNoMasterMessage();
    }

}
Exemplo n.º 10
0
void MainWindow::button1_Handler()
{

    if (qnode.init() ){
        qnode.log(QNode::None,"Changing mode to ROS(1)");
        qnode.mode_set(1);
        qnode.robot_motors_speed_set(30,1);
    }
    else if ( !qnode.init() )
        showNoMasterMessage();

}
Exemplo n.º 11
0
void MainWindow::cap_Handler(){
    if (qnode.init() ){
        qnode.log(QNode::None,"Changing Speed Cap Value");
        ui.cap_speed->setValue(ui.cap_speed_slider->value());
        qnode.motor_cap_set(ui.cap_speed_slider->value());
        ui.cap_lbl->setNum(ui.cap_speed_slider->value());
        //qnode.mode_set(2);
        //qnode.robot_motors_speed_set(0,0);
    }
    else if ( !qnode.init() )
        showNoMasterMessage();

}
Exemplo n.º 12
0
void MainWindow::robot_boot_Handler(){
    static int state=0;
    static QProcess *proc = new QProcess();
    std::stringstream ss;
    QString cmd;
    QString pid_str;
    bool runs;
    int pidd = NULL;
    if (qnode.init() ){
        if (state == 1){
            proc->kill();

            cmd = "gnome-terminal --geometry=50x10-0-10 -x kill ";
            pid_str.setNum(pidd);
            cmd = cmd + pid_str;
            //proc->start(cmd);
            //qnode.log(QNode::None,"Shutting down robot node..");
            state=0;
        }
        else{
            qnode.log(QNode::None,"Booting Robot Node...");

           proc->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"rosrun rosserial_python serial_node.py /dev/ttyUSB0\" ");

           //QStringList args;
           //args << "-x sh -c ~/ros_workspace/robot/tanky/driver_rviz_up.sh";
            //proc->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"echo b && read a\" ");
            //proc->start("gnome-terminal --geometry=50x10-0-10 -x bash -c \"roslaunch tanky init_rviz_laser_odom.launch\" ");


            //proc->start("gnome-terminal -x bash -c", QStringList() << ". ~/ros_workspace/robot/tanky/driver_rviz_up.sh");
           //'sleep 2 && dmesg && read e'
           // while(runs != TRUE);
           //for(long long int i=0;i<1000000000;i++){
           //     for(long long int z=0;z<100000000;z++);}
           // QThread::sleep(1000);
            pidd = proc->pid();
            ss << "PID: " << pidd;
            qnode.log(QNode::None,std::string(ss.str()));
            //  proc->start("gnome-terminal --geometry=50x10-0-10 ' rosrun rosserial_python serial_node.py /dev/ttyUSB0'");
            //proc->start("nautilus");
            state=1;}


    }
    else if ( !qnode.init() ){
        showNoMasterMessage();
    }


}
Exemplo n.º 13
0
void MainWindow::connectToROS() {
		if ( !qnode.init() ) {
			showNoMasterMessage();
		} else {
            ui.pb_connect->setEnabled(false);
            curr_state = idle_manual;
            Q_EMIT sendState(curr_state);

            timer = new QTimer(this);
            lblTimer = new QTimer(this);

            connect(timer, SIGNAL(timeout()), &qnode, SLOT(update()));
            connect(lblTimer, SIGNAL(timeout()), this, SLOT(updateLabel()));

            timer->start(10);
            lblTimer->start(10);
        }

}