ModelDataRaw struct with fixed size arrays (#22544)

* convert pose

* fix indexes
pull/22553/head
Greg Hogan 2021-10-13 20:03:15 -07:00 committed by GitHub
parent 12353bbea9
commit 21e58f9f4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 6 deletions

View File

@ -118,7 +118,7 @@ ModelDataRaw model_eval_frame(ModelState* s, cl_mem yuv_cl, int width, int heigh
net_outputs.lead = &s->output[LEAD_IDX]; net_outputs.lead = &s->output[LEAD_IDX];
net_outputs.lead_prob = &s->output[LEAD_PROB_IDX]; net_outputs.lead_prob = &s->output[LEAD_PROB_IDX];
net_outputs.meta = &s->output[DESIRE_STATE_IDX]; net_outputs.meta = &s->output[DESIRE_STATE_IDX];
net_outputs.pose = &s->output[POSE_IDX]; net_outputs.pose = (ModelDataRawPose*)&s->output[POSE_IDX];
return net_outputs; return net_outputs;
} }
@ -361,11 +361,11 @@ void posenet_publish(PubMaster &pm, uint32_t vipc_frame_id, uint32_t vipc_droppe
float rot_std_arr[3]; float rot_std_arr[3];
for (int i =0; i < 3; i++) { for (int i =0; i < 3; i++) {
trans_arr[i] = net_outputs.pose[i]; trans_arr[i] = net_outputs.pose->trans_arr[i];
trans_std_arr[i] = exp(net_outputs.pose[6 + i]); trans_std_arr[i] = exp(net_outputs.pose->trans_std_arr[i]);
rot_arr[i] = net_outputs.pose[3 + i]; rot_arr[i] = net_outputs.pose->rot_arr[i];
rot_std_arr[i] = exp(net_outputs.pose[9 + i]); rot_std_arr[i] = exp(net_outputs.pose->rot_std_arr[i]);
} }
MessageBuilder msg; MessageBuilder msg;

View File

@ -18,6 +18,13 @@ constexpr int DESIRE_LEN = 8;
constexpr int TRAFFIC_CONVENTION_LEN = 2; constexpr int TRAFFIC_CONVENTION_LEN = 2;
constexpr int MODEL_FREQ = 20; constexpr int MODEL_FREQ = 20;
struct ModelDataRawPose {
float trans_arr[3];
float rot_arr[3];
float trans_std_arr[3];
float rot_std_arr[3];
};
struct ModelDataRaw { struct ModelDataRaw {
float *plan; float *plan;
float *lane_lines; float *lane_lines;
@ -28,7 +35,7 @@ struct ModelDataRaw {
float *desire_state; float *desire_state;
float *meta; float *meta;
float *desire_pred; float *desire_pred;
float *pose; ModelDataRawPose *pose;
}; };
typedef struct ModelState { typedef struct ModelState {