APM:Libraries
libraries
AP_IRLock
IRLock.cpp
Go to the documentation of this file.
1
/*
2
* IRLock.cpp
3
*
4
* Created on: Nov 12, 2014
5
* Author: MLandes
6
*/
7
8
#include "
IRLock.h
"
9
10
// retrieve body frame x and y angles (in radians) to target
11
// returns true if data is available
12
bool
IRLock::get_angle_to_target_rad
(
float
&x_angle_rad,
float
&y_angle_rad)
const
13
{
14
// return false if we have no target
15
if
(!
_flags
.
healthy
) {
16
return
false
;
17
}
18
19
// use data from first (largest) object
20
x_angle_rad = atanf(
_target_info
.
pos_x
);
21
y_angle_rad = atanf(
_target_info
.
pos_y
);
22
return
true
;
23
}
24
25
// retrieve body frame unit vector in direction of target
26
// returns true if data is available
27
bool
IRLock::get_unit_vector_body
(
Vector3f
& ret)
const
28
{
29
// return false if we have no target
30
if
(!
_flags
.
healthy
) {
31
return
false
;
32
}
33
34
// use data from first (largest) object
35
ret.
x
= -
_target_info
.
pos_y
;
36
ret.
y
=
_target_info
.
pos_x
;
37
ret.
z
= 1.0f;
38
ret /= ret.
length
();
39
return
true
;
40
}
IRLock::get_unit_vector_body
bool get_unit_vector_body(Vector3f &ret) const
Definition:
IRLock.cpp:27
IRLock.h
IRLock::_target_info
irlock_target_info _target_info
Definition:
IRLock.h:71
IRLock::irlock_target_info::pos_x
float pos_x
Definition:
IRLock.h:65
Vector3::y
T y
Definition:
vector3.h:67
Vector3::z
T z
Definition:
vector3.h:67
IRLock::get_angle_to_target_rad
bool get_angle_to_target_rad(float &x_angle_rad, float &y_angle_rad) const
Definition:
IRLock.cpp:12
Vector3::length
float length(void) const
Definition:
vector3.cpp:288
IRLock::AP_IRLock_Flags::healthy
uint8_t healthy
Definition:
IRLock.h:56
IRLock::irlock_target_info::pos_y
float pos_y
Definition:
IRLock.h:66
IRLock::_flags
struct IRLock::AP_IRLock_Flags _flags
Vector3< float >
Vector3::x
T x
Definition:
vector3.h:67
Generated on Sun Jun 17 2018 14:18:50 for APM:Libraries by
1.8.13