Project

General

Profile

Revision 493cca7c

ID493cca7c321081c9bdcb1cf72714506ef1310954

Added by Chris Burchhardt over 12 years ago

basic (not-yet-working) flight control via keyboard

View differences:

mikrokopter/src/keyboard_control.cpp
11 11
#include <termios.h>
12 12
#include <stdio.h>
13 13

  
14
#include "nav_lib.h"
15

  
14 16
#define KEYCODE_R 0x43 
15 17
#define KEYCODE_L 0x44
16 18
#define KEYCODE_U 0x41
......
44 46

  
45 47
void KeyboardControl::keyLoop()
46 48
{
49
    
50
    ros::NodeHandle n;
51
    ros::Publisher pub = n.advertise<mikrokopter::Control>("/mikrokopter/req_set_control", 100);
52

  
53
    mikrokopter::Control req;
54

  
55
    ros::Rate loop_rate(25);
56
    
47 57
    char c;
48 58
    bool dirty=false;
49 59

  
......
77 87
        {
78 88
            case KEYCODE_L:
79 89
            case 'a':
80
                ROS_INFO("W");
90
                ROS_INFO("A");
91
                left(req);
81 92
                dirty = true;
82 93
                break;
83 94
            case KEYCODE_R:
84 95
            case 'd':
85
                ROS_INFO("E");
96
                ROS_INFO("D");
97
                right(req);
86 98
                dirty = true;
87 99
                break;
88 100
            case KEYCODE_U:
89 101
            case 'w':
90
                ROS_INFO("N");
102
                ROS_INFO("W");
103
                forward(req);
91 104
                dirty = true;
92 105
                break;
93 106
            case KEYCODE_D:
94 107
            case 's':
95
                ROS_INFO("S");
108
                ROS_INFO("B");
109
                backward(req);
96 110
                dirty = true;
97 111
                break;
98 112
            case 'r':
99 113
                ROS_INFO("UP");
114
                //set_throttle(&pub, );
100 115
                break;
101 116
            case 'f':
102 117
                ROS_INFO("DOWN");
118
                //set_throttle(&pub);
103 119
                break;
104 120
        }
105 121

  
106 122
        if(dirty)
107 123
        {
124
            pub.publish(req);
125
            ros::spinOnce();
108 126
            dirty=false;
109 127
        }
110 128
    }

Also available in: Unified diff