Project

General

Profile

Statistics
| Branch: | Revision:

root / mikrokopter / src / nav_lib.cpp @ fd29b28e

History | View | Annotate | Download (1.28 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(float forward_speed, float lateral_speed)
20
{
21
    int k = 50; // 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(float thrust)
57
{
58
    int k = 100;
59
    control.thrust = k*thrust;
60
}
61

    
62
void MikrokopterControl::set_yaw(float yaw)
63
{
64
    int k = 50;
65
    control.yaw = k*yaw;
66
}
67

    
68
void MikrokopterControl::publish_on(ros::Publisher& pub)
69
{
70
    pub.publish(control);
71
}
72