Developing tag detection feature, not complete, not tested.
Esse commit está contido em:
@@ -14,14 +14,14 @@ ARDroneDriver::ARDroneDriver()
|
||||
reset_sub = node_handle.subscribe("/ardrone/reset", 1, &resetCallback);
|
||||
land_sub = node_handle.subscribe("/ardrone/land", 1, &landCallback);
|
||||
image_pub = image_transport.advertiseCamera("/ardrone/image_raw", 1);
|
||||
hori_pub = image_transport.advertiseCamera("/ardrone/front/image_raw", 1);
|
||||
hori_pub = image_transport.advertiseCamera("/ardrone/front/image_raw", 1);
|
||||
vert_pub = image_transport.advertiseCamera("/ardrone/bottom/image_raw", 1);
|
||||
navdata_pub = node_handle.advertise<ardrone_brown::Navdata>("/ardrone/navdata", 1);
|
||||
//toggleCam_sub = node_handle.subscribe("/ardrone/togglecam", 10, &toggleCamCallback);
|
||||
|
||||
#ifdef _USING_SDK_1_7_
|
||||
//int cam_state = DEFAULT_CAM_STATE; // 0 for forward and 1 for vertical, change to enum later
|
||||
//int set_navdata_demo_value = DEFAULT_NAVDATA_DEMO;
|
||||
//int set_navdata_demo_value = DEFAULT_NAVDATA_DEMO;
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (video_channel, &cam_state, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (navdata_demo, &set_navdata_demo_value, NULL);
|
||||
#else
|
||||
@@ -29,9 +29,17 @@ ARDroneDriver::ARDroneDriver()
|
||||
ardrone_at_set_toy_configuration("video:video_channel","0");
|
||||
#endif
|
||||
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (detect_type, &detect_dtype, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (detections_select_h, &detect_hori_type, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (detections_select_v_hsync, &detect_vert_type, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (enemy_colors, &detect_enemy_color, NULL );
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (groundstripe_colors, &detect_groundstripes_color, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (enemy_without_shell, &detect_outdoor_hull, NULL);
|
||||
|
||||
|
||||
toggleCam_service = node_handle.advertiseService("/ardrone/togglecam", toggleCamCallback);
|
||||
toggleNavdataDemo_service = node_handle.advertiseService("/ardrone/togglenavdatademo", toggleNavdataDemoCallback);
|
||||
setCamChannel_service = node_handle.advertiseService("/ardrone/setcamchannel",setCamChannelCallback );
|
||||
toggleNavdataDemo_service = node_handle.advertiseService("/ardrone/togglenavdatademo", toggleNavdataDemoCallback);
|
||||
setCamChannel_service = node_handle.advertiseService("/ardrone/setcamchannel",setCamChannelCallback );
|
||||
}
|
||||
|
||||
ARDroneDriver::~ARDroneDriver()
|
||||
@@ -67,14 +75,18 @@ void ARDroneDriver::run()
|
||||
//Ensure that the horizontal camera is running
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (video_channel, &cam_state, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT (navdata_demo, &set_navdata_demo_value, NULL);
|
||||
//ARDRONE_TOOL_CONFIGURATION_ADDEVENT (video_codec, &mCodec, NULL);
|
||||
//ARDRONE_TOOL_CONFIGURATION_ADDEVENT (bitrate_ctrl_mode, &vbcMode, NULL);
|
||||
|
||||
//ARDRONE_TOOL_CONFIGURATION_ADDEVENT (video_codec, &mCodec, NULL);
|
||||
//ARDRONE_TOOL_CONFIGURATION_ADDEVENT (bitrate_ctrl_mode, &vbcMode, NULL);
|
||||
#else
|
||||
//Ensure that the horizontal camera is running
|
||||
ardrone_at_set_toy_configuration("video:video_channel","0");
|
||||
#endif
|
||||
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT(detect_type, &detect_dtype, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT(detections_select_h, &detect_hori_type, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT(detections_select_v_hsync, &detect_vert_type, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT(enemy_colors, &detect_enemy_color, NULL );
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT(groundstripe_colors, &detect_groundstripes_color, NULL);
|
||||
ARDRONE_TOOL_CONFIGURATION_ADDEVENT(enemy_without_shell, &detect_outdoor_hull, NULL);
|
||||
}
|
||||
}
|
||||
if (current_frame_id != last_frame_id)
|
||||
|
||||
+17
-1
@@ -4,6 +4,7 @@
|
||||
|
||||
navdata_demo_t navdata;
|
||||
navdata_phys_measures_t navdata_phys;
|
||||
navdata_vision_detect_t navdata_detect;
|
||||
|
||||
navdata_time_t arnavtime;
|
||||
|
||||
@@ -22,9 +23,24 @@ extern "C" {
|
||||
|
||||
C_RESULT navdata_custom_process( const navdata_unpacked_t* const pnd )
|
||||
{
|
||||
navdata_phys = pnd->navdata_phys_measures;
|
||||
navdata_detect = pnd->navdata_vision_detect;
|
||||
navdata_phys = pnd->navdata_phys_measures;
|
||||
navdata = pnd->navdata_demo;
|
||||
arnavtime = pnd->navdata_time;
|
||||
|
||||
fprintf(stderr, "*** Tag: %d, Size : %d, Detected: %d\n", navdata_detect.tag, navdata_detect.size, navdata_detect.nb_detected);
|
||||
for (int i = 0; i < navdata_detect.nb_detected; i++)
|
||||
{
|
||||
printf("#%d T:%d x:%3d y:%3d w:%3d h:%3d D:%3d \n",
|
||||
navdata_detect.type[i],
|
||||
navdata_detect.xc[i],
|
||||
navdata_detect.yc[i],
|
||||
navdata_detect.width[i],
|
||||
navdata_detect.height[i],
|
||||
navdata_detect.dist[i]
|
||||
);
|
||||
}
|
||||
|
||||
return C_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,13 @@ bool needs_reset = false;
|
||||
geometry_msgs::Twist cmd_vel;
|
||||
|
||||
int cam_state = DEFAULT_CAM_STATE; // 0 for forward and 1 for vertical, change to enum later
|
||||
int set_navdata_demo_value = DEFAULT_NAVDATA_DEMO;
|
||||
int set_navdata_demo_value = DEFAULT_NAVDATA_DEMO;
|
||||
int32_t detect_enemy_color = ARDRONE_DETECTION_COLOR_ORANGE_YELLOW;
|
||||
int32_t detect_groundstripes_color = ARDRONE_DETECTION_COLOR_ORANGE_YELLOW;
|
||||
int32_t detect_dtype = CAD_TYPE_MULTIPLE_DETECTION_MODE;
|
||||
int32_t detect_hori_type = TAG_TYPE_MASK(TAG_TYPE_STRIPE);
|
||||
int32_t detect_vert_type = TAG_TYPE_MASK(TAG_TYPE_ROUNDEL);
|
||||
int32_t detect_outdoor_hull = 0;
|
||||
|
||||
bool toggleNavdataDemoCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
|
||||
{
|
||||
|
||||
@@ -28,5 +28,12 @@ bool toggleNavdataDemoCallback(std_srvs::Empty::Request& request, std_srvs::Empt
|
||||
|
||||
extern int cam_state;
|
||||
extern int set_navdata_demo_value;
|
||||
extern int32_t detect_enemy_color;
|
||||
extern int32_t detect_groundstripes_color;
|
||||
extern int32_t detect_outdoor_hull; //0: Indoor Hull
|
||||
extern int32_t detect_dtype;
|
||||
extern int32_t detect_hori_type;
|
||||
extern int32_t detect_vert_type;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário