something
This commit is contained in:
@@ -5,6 +5,7 @@ SET(CMAKE_CXX_STANDARD 11)
|
|||||||
SET(CMAKE_BUILD_TYPE RELEASE)
|
SET(CMAKE_BUILD_TYPE RELEASE)
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPATH=\"\\\"${PROJECT_SOURCE_DIR}\\\"\"")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPATH=\"\\\"${PROJECT_SOURCE_DIR}\\\"\"")
|
||||||
|
# Todo
|
||||||
## 使用编译期固定选项,以略微提升性能。
|
## 使用编译期固定选项,以略微提升性能。
|
||||||
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFIX_OPTIONS")
|
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFIX_OPTIONS")
|
||||||
## 固定使用相机运行
|
## 固定使用相机运行
|
||||||
|
|||||||
13
main.cpp
13
main.cpp
@@ -53,19 +53,23 @@ int main(int argc, char *argv[]) {
|
|||||||
WrapperHead *video_energy;
|
WrapperHead *video_energy;
|
||||||
if (from_camera) {
|
if (from_camera) {
|
||||||
video_armor = new CameraWrapper(0, "armor");
|
video_armor = new CameraWrapper(0, "armor");
|
||||||
// video_energy = new CameraWrapper(1, "energy");
|
video_energy = new CameraWrapper(1, "energy");
|
||||||
} else {
|
} else {
|
||||||
video_armor = new VideoWrapper("/home/xinyang/Desktop/DataSets/video/blue_4.mp4");
|
video_armor = new VideoWrapper("/home/xinyang/Desktop/DataSets/video/blue_4.mp4");
|
||||||
video_energy = new VideoWrapper("/home/xinyang/Desktop/DataSets/video/blue_4.mp4");
|
video_energy = new VideoWrapper("/home/xinyang/Desktop/DataSets/video/blue_4.mp4");
|
||||||
}
|
}
|
||||||
if (video_armor->init()) {
|
if (video_armor->init() && video_energy->init()) {
|
||||||
cout << "Video source initialization successfully." << endl;
|
cout << "Video source initialization successfully." << endl;
|
||||||
|
} else {
|
||||||
|
delete video_armor;
|
||||||
|
delete video_energy;
|
||||||
|
cout << "Program fails. Restarting" << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mat energy_src, armor_src;
|
Mat energy_src, armor_src;
|
||||||
for(int i=0; i<10; i++){
|
for(int i=0; i<10; i++){
|
||||||
video_armor->read(armor_src);
|
video_armor->read(armor_src);
|
||||||
// video_energy->read(armor_src);
|
video_energy->read(armor_src);
|
||||||
}
|
}
|
||||||
|
|
||||||
ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/");
|
ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/");
|
||||||
@@ -74,7 +78,7 @@ int main(int argc, char *argv[]) {
|
|||||||
energy.setAllyColor(ally_color);
|
energy.setAllyColor(ally_color);
|
||||||
energy.setRotation(energy_part_rotation);
|
energy.setRotation(energy_part_rotation);
|
||||||
|
|
||||||
bool ok = video_armor->read(armor_src) /*&& video_energy->read(armor_src)*/;
|
bool ok = video_armor->read(armor_src) && video_energy->read(armor_src);
|
||||||
|
|
||||||
while (ok) {
|
while (ok) {
|
||||||
CNT_TIME(WORD_LIGHT_CYAN, "Total", {
|
CNT_TIME(WORD_LIGHT_CYAN, "Total", {
|
||||||
@@ -103,6 +107,7 @@ int main(int argc, char *argv[]) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
delete video_armor;
|
delete video_armor;
|
||||||
|
delete video_energy;
|
||||||
cout << "Program fails. Restarting" << endl;
|
cout << "Program fails. Restarting" << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,64 +5,16 @@
|
|||||||
#ifndef _OPTIONS_H_
|
#ifndef _OPTIONS_H_
|
||||||
#define _OPTIONS_H_
|
#define _OPTIONS_H_
|
||||||
|
|
||||||
#ifdef FIX_OPTIONS
|
|
||||||
#ifdef SHOW_ARMOR_BOX
|
|
||||||
#define show_armor_box true
|
|
||||||
#else
|
|
||||||
#define show_armor_box false
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SHOW_ARMOR_BOXES
|
extern bool show_armor_box;
|
||||||
#define show_armor_boxes true
|
extern bool show_armor_boxes;
|
||||||
#else
|
extern bool show_light_blobs;
|
||||||
#define show_armor_boxes false
|
extern bool show_origin;
|
||||||
#endif
|
extern bool save_labelled;
|
||||||
|
extern bool run_with_camera;
|
||||||
#ifdef SHOW_LIGHT_BLOBS
|
extern bool save_video;
|
||||||
#define show_light_blobs true
|
extern bool collect_data;
|
||||||
#else
|
extern bool wait_uart;
|
||||||
#define show_light_blobs false
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SHOW_ORIGIN
|
|
||||||
#define show_origin true
|
|
||||||
#else
|
|
||||||
#define show_origin false
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SAVE_LABELLED
|
|
||||||
#define save_labelled true
|
|
||||||
#else
|
|
||||||
#define save_labelled false
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef RUN_WITH_CAMERA
|
|
||||||
#define run_with_camera true
|
|
||||||
#else
|
|
||||||
#define run_with_camera false
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef SAVE_VIDEO
|
|
||||||
#define save_video true
|
|
||||||
#else
|
|
||||||
#define save_video false
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef COLLECT_DATA
|
|
||||||
#define collect_data true
|
|
||||||
#else
|
|
||||||
#define collect_data false
|
|
||||||
#endif
|
|
||||||
#else /* FIX_OPTIONS */
|
|
||||||
extern bool show_armor_box;
|
|
||||||
extern bool show_armor_boxes;
|
|
||||||
extern bool show_light_blobs;
|
|
||||||
extern bool show_origin;
|
|
||||||
extern bool save_labelled;
|
|
||||||
extern bool run_with_camera;
|
|
||||||
extern bool save_video;
|
|
||||||
extern bool collect_data;
|
|
||||||
#endif /* FIX_OPTIONS */
|
|
||||||
|
|
||||||
void process_options(int argc, char *argv[]);
|
void process_options(int argc, char *argv[]);
|
||||||
|
|
||||||
|
|||||||
@@ -40,14 +40,13 @@ bool CameraWrapper::init() {
|
|||||||
for(i=0; i<camera_cnts; i++){
|
for(i=0; i<camera_cnts; i++){
|
||||||
camera_status = CameraInit(&camera_enum_list[i], -1, -1, &h_camera);
|
camera_status = CameraInit(&camera_enum_list[i], -1, -1, &h_camera);
|
||||||
if (camera_status != CAMERA_STATUS_SUCCESS) {
|
if (camera_status != CAMERA_STATUS_SUCCESS) {
|
||||||
LOGE("Camera 0 initialization failed with code %d. See camera_status.h to find the code meaning.", camera_status);
|
CameraUnInit(h_camera);
|
||||||
goto stop;
|
continue;
|
||||||
}
|
}
|
||||||
CameraGetFriendlyName(h_camera, camera_name);
|
CameraGetFriendlyName(h_camera, camera_name);
|
||||||
if(name=="NULL" || strcmp(name.data(), camera_name)==0){
|
if(name=="NULL" || strcmp(name.data(), camera_name)==0){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
stop:
|
|
||||||
CameraUnInit(h_camera);
|
CameraUnInit(h_camera);
|
||||||
}
|
}
|
||||||
if(i >= camera_cnts){
|
if(i >= camera_cnts){
|
||||||
@@ -72,7 +71,7 @@ stop:
|
|||||||
CameraGetExposureTime(h_camera, &t);
|
CameraGetExposureTime(h_camera, &t);
|
||||||
LOGM("Exposure time: %lfms", t/1000.0);
|
LOGM("Exposure time: %lfms", t/1000.0);
|
||||||
// 模拟增益4
|
// 模拟增益4
|
||||||
CameraSetAnalogGain(h_camera, 60);
|
CameraSetAnalogGain(h_camera, 63);
|
||||||
// 使用预设LUT表
|
// 使用预设LUT表
|
||||||
CameraSetLutMode(h_camera, LUTMODE_PRESET);
|
CameraSetLutMode(h_camera, LUTMODE_PRESET);
|
||||||
// 抗频闪
|
// 抗频闪
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
#include <log.h>
|
#include <log.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
#ifndef FIX_OPTIONS
|
|
||||||
bool show_armor_box = false;
|
bool show_armor_box = false;
|
||||||
bool show_armor_boxes = false;
|
bool show_armor_boxes = false;
|
||||||
bool show_light_blobs = false;
|
bool show_light_blobs = false;
|
||||||
@@ -15,6 +14,7 @@ bool save_labelled = false;
|
|||||||
bool run_with_camera = false;
|
bool run_with_camera = false;
|
||||||
bool save_video = false;
|
bool save_video = false;
|
||||||
bool collect_data = false;
|
bool collect_data = false;
|
||||||
|
bool wait_uart = false;
|
||||||
|
|
||||||
void process_options(int argc, char *argv[]){
|
void process_options(int argc, char *argv[]){
|
||||||
if(argc >= 2){
|
if(argc >= 2){
|
||||||
@@ -61,12 +61,12 @@ void process_options(int argc, char *argv[]){
|
|||||||
}else if(strcmp(argv[i], "--collect-data") == 0){
|
}else if(strcmp(argv[i], "--collect-data") == 0){
|
||||||
collect_data = true;
|
collect_data = true;
|
||||||
LOGM("Enable data collection!");
|
LOGM("Enable data collection!");
|
||||||
|
}else if(strcmp(argv[i], "--wait-uart") == 0){
|
||||||
|
wait_uart = true;
|
||||||
|
LOGM("Wait uart until available!");
|
||||||
}else{
|
}else{
|
||||||
LOGW("Unknown option: %s. Use --help to see options.", argv[i]);
|
LOGW("Unknown option: %s. Use --help to see options.", argv[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
void process_options(int argc, char *argv[]){};
|
|
||||||
#endif /* FIX_OPTIONS */
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include <uart/uart.h>
|
#include <uart/uart.h>
|
||||||
#include <energy/param_struct_define.h>
|
#include <energy/param_struct_define.h>
|
||||||
|
#include <options/options.h>
|
||||||
#include <log.h>
|
#include <log.h>
|
||||||
|
|
||||||
using std::cout;
|
using std::cout;
|
||||||
@@ -17,11 +18,14 @@ GMAngle_t aim;
|
|||||||
|
|
||||||
|
|
||||||
Uart::Uart(){
|
Uart::Uart(){
|
||||||
fd = open("/dev/ttyUSB0", O_RDWR);
|
if(wait_uart){
|
||||||
if(fd < 0)
|
while((fd = open("/dev/ttyUSB0", O_RDWR)) < 0);
|
||||||
{
|
}else{
|
||||||
cerr<<"open port error"<<endl;
|
fd = open("/dev/ttyUSB0", O_RDWR);
|
||||||
return;
|
if(fd < 0) {
|
||||||
|
cerr<<"open port error"<<endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(set_opt(fd, 115200, 8, 'N', 1) < 0 )
|
if(set_opt(fd, 115200, 8, 'N', 1) < 0 )
|
||||||
@@ -146,8 +150,12 @@ void Uart::sendTarget(float x, float y, float z) {
|
|||||||
buff[6] = static_cast<char>((z_tmp >> 0) & 0xFF);
|
buff[6] = static_cast<char>((z_tmp >> 0) & 0xFF);
|
||||||
buff[7] = 'e';
|
buff[7] = 'e';
|
||||||
|
|
||||||
write(fd, buff, 8);
|
int cnt=0;
|
||||||
|
while((cnt+=write(fd, buff+cnt, 8-cnt))!=-1 && cnt<8);
|
||||||
|
if(cnt==-1 && wait_uart){
|
||||||
|
LOGE("Uart send fail, the uart device may offline! Restart!");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t Uart::receive() {
|
uint8_t Uart::receive() {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "#!/bin/bash" > $2/monitor-run
|
echo "#!/bin/bash" > $2/monitor-run
|
||||||
echo "$1/tools/monitor.sh \"$2/run --run-with-camera\"" >> $2/monitor-run
|
echo "echo \"sjturm\" | sudo -S $1/tools/monitor.sh \"$2/run --run-with-camera --show-armor-box --wait-uart\"" >> $2/monitor-run
|
||||||
chmod +x $2/monitor-run
|
chmod +x $2/monitor-run
|
||||||
|
|||||||
Reference in New Issue
Block a user