something
This commit is contained in:
@@ -5,6 +5,7 @@ SET(CMAKE_CXX_STANDARD 11)
|
||||
SET(CMAKE_BUILD_TYPE RELEASE)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPATH=\"\\\"${PROJECT_SOURCE_DIR}\\\"\"")
|
||||
# Todo
|
||||
## 使用编译期固定选项,以略微提升性能。
|
||||
#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;
|
||||
if (from_camera) {
|
||||
video_armor = new CameraWrapper(0, "armor");
|
||||
// video_energy = new CameraWrapper(1, "energy");
|
||||
video_energy = new CameraWrapper(1, "energy");
|
||||
} else {
|
||||
video_armor = 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;
|
||||
} else {
|
||||
delete video_armor;
|
||||
delete video_energy;
|
||||
cout << "Program fails. Restarting" << endl;
|
||||
}
|
||||
|
||||
Mat energy_src, armor_src;
|
||||
for(int i=0; i<10; i++){
|
||||
video_armor->read(armor_src);
|
||||
// video_energy->read(armor_src);
|
||||
video_energy->read(armor_src);
|
||||
}
|
||||
|
||||
ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/");
|
||||
@@ -74,7 +78,7 @@ int main(int argc, char *argv[]) {
|
||||
energy.setAllyColor(ally_color);
|
||||
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) {
|
||||
CNT_TIME(WORD_LIGHT_CYAN, "Total", {
|
||||
@@ -103,6 +107,7 @@ int main(int argc, char *argv[]) {
|
||||
});
|
||||
}
|
||||
delete video_armor;
|
||||
delete video_energy;
|
||||
cout << "Program fails. Restarting" << endl;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,64 +5,16 @@
|
||||
#ifndef _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
|
||||
#define show_armor_boxes true
|
||||
#else
|
||||
#define show_armor_boxes false
|
||||
#endif
|
||||
|
||||
#ifdef SHOW_LIGHT_BLOBS
|
||||
#define show_light_blobs true
|
||||
#else
|
||||
#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 */
|
||||
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;
|
||||
extern bool wait_uart;
|
||||
|
||||
void process_options(int argc, char *argv[]);
|
||||
|
||||
|
||||
@@ -40,14 +40,13 @@ bool CameraWrapper::init() {
|
||||
for(i=0; i<camera_cnts; i++){
|
||||
camera_status = CameraInit(&camera_enum_list[i], -1, -1, &h_camera);
|
||||
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);
|
||||
goto stop;
|
||||
CameraUnInit(h_camera);
|
||||
continue;
|
||||
}
|
||||
CameraGetFriendlyName(h_camera, camera_name);
|
||||
if(name=="NULL" || strcmp(name.data(), camera_name)==0){
|
||||
break;
|
||||
}
|
||||
stop:
|
||||
CameraUnInit(h_camera);
|
||||
}
|
||||
if(i >= camera_cnts){
|
||||
@@ -72,7 +71,7 @@ stop:
|
||||
CameraGetExposureTime(h_camera, &t);
|
||||
LOGM("Exposure time: %lfms", t/1000.0);
|
||||
// 模拟增益4
|
||||
CameraSetAnalogGain(h_camera, 60);
|
||||
CameraSetAnalogGain(h_camera, 63);
|
||||
// 使用预设LUT表
|
||||
CameraSetLutMode(h_camera, LUTMODE_PRESET);
|
||||
// 抗频闪
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <log.h>
|
||||
#include <cstring>
|
||||
|
||||
#ifndef FIX_OPTIONS
|
||||
bool show_armor_box = false;
|
||||
bool show_armor_boxes = false;
|
||||
bool show_light_blobs = false;
|
||||
@@ -15,6 +14,7 @@ bool save_labelled = false;
|
||||
bool run_with_camera = false;
|
||||
bool save_video = false;
|
||||
bool collect_data = false;
|
||||
bool wait_uart = false;
|
||||
|
||||
void process_options(int argc, char *argv[]){
|
||||
if(argc >= 2){
|
||||
@@ -61,12 +61,12 @@ void process_options(int argc, char *argv[]){
|
||||
}else if(strcmp(argv[i], "--collect-data") == 0){
|
||||
collect_data = true;
|
||||
LOGM("Enable data collection!");
|
||||
}else if(strcmp(argv[i], "--wait-uart") == 0){
|
||||
wait_uart = true;
|
||||
LOGM("Wait uart until available!");
|
||||
}else{
|
||||
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 <energy/param_struct_define.h>
|
||||
#include <options/options.h>
|
||||
#include <log.h>
|
||||
|
||||
using std::cout;
|
||||
@@ -17,12 +18,15 @@ GMAngle_t aim;
|
||||
|
||||
|
||||
Uart::Uart(){
|
||||
if(wait_uart){
|
||||
while((fd = open("/dev/ttyUSB0", O_RDWR)) < 0);
|
||||
}else{
|
||||
fd = open("/dev/ttyUSB0", O_RDWR);
|
||||
if(fd < 0)
|
||||
{
|
||||
if(fd < 0) {
|
||||
cerr<<"open port error"<<endl;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
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[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() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user