Project

General

Profile

Statistics
| Branch: | Revision:

root / mikrokopter / src / nav_lib.cpp @ bc4b408e

History | View | Annotate | Download (1.16 KB)

1
#include "nav_lib.h"
2

    
3

    
4
MikrokopterControl::MikrokopterControl()
5
{
6
    control.digital[0] = 0;
7
    control.digital[1] = 0;
8
    control.remoteKey = 0;
9
    control.pitch = 0;
10
    control.roll = 0;
11
    control.yaw = 0;
12
    control.thrust = 40;
13
    control.height = 0;
14
    control.free = 0;
15
    control.frame = 7;
16
    control.config = 1;
17
}
18

    
19
void MikrokopterControl::velocity_control(int forward_speed, int lateral_speed)
20
{
21
    int k = 1; // TODO set scaling constant and check signs
22
    control.roll = k*(forward_speed - lateral_speed);
23
    control.pitch = k*(forward_speed + lateral_speed);
24
}
25

    
26
void MikrokopterControl::forward()
27
{
28
    control.roll = 15;
29
    control.pitch = 15;
30
}
31

    
32
void MikrokopterControl::backward()
33
{
34
    control.roll = -15;
35
    control.pitch = -15;
36
}
37

    
38
void MikrokopterControl::left()
39
{
40
    control.roll = 15;
41
    control.pitch = -15;
42
}
43

    
44
void MikrokopterControl::right()
45
{
46
    control.roll = -15;
47
    control.pitch = 15;
48
}
49

    
50
void MikrokopterControl::level()
51
{
52
    control.roll = 0;
53
    control.pitch = 0;
54
}
55

    
56
void MikrokopterControl::set_thrust(int thrust)
57
{
58
    control.thrust = thrust;
59
}
60

    
61
void MikrokopterControl::publish_on(ros::Publisher& pub)
62
{
63
    pub.publish(control);
64
}
65