Revision 493cca7c
ID | 493cca7c321081c9bdcb1cf72714506ef1310954 |
basic (not-yet-working) flight control via keyboard
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