MCPcopy Create free account
hub / github.com/Robotics-STAR-Lab/RACER / updateCallback

Function updateCallback

swarm_exploration/plan_env/src/obj_generator.cpp:111–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111void updateCallback(const ros::TimerEvent& e) {
112 ros::Time time_now = ros::Time::now();
113
114 /* ---------- change input ---------- */
115 double dtc = (time_now - time_change).toSec();
116 if (dtc > _interval) {
117 for (int i = 0; i < obj_num; ++i) {
118 /* ---------- use acc input ---------- */
119 // double r, t, z;
120 // r = rand_acc_r(eng);
121 // t = rand_acc_t(eng);
122 // z = rand_acc_z(eng);
123 // Eigen::Vector3d acc(r * cos(t), r * sin(t), z);
124 // obj_models[i].setInput(acc);
125
126 /* ---------- use vel input ---------- */
127 double vx, vy, vz, yd;
128 vx = rand_vel(eng);
129 vy = rand_vel(eng);
130 vz = 0.0;
131 yd = rand_yaw_dot(eng);
132
133 obj_models[i].setInput(Eigen::Vector3d(vx, vy, vz));
134 obj_models[i].setYawDot(yd);
135 }
136 time_change = time_now;
137 }
138
139 /* ---------- update obj state ---------- */
140 double dt = (time_now - time_update).toSec();
141 time_update = time_now;
142 for (int i = 0; i < obj_num; ++i) {
143 obj_models[i].update(dt);
144 visualizeObj(i);
145 }
146
147 /* ---------- collision ---------- */
148 for (int i = 0; i < obj_num; ++i)
149 for (int j = i + 1; j < obj_num; ++j) {
150 bool collision = LinearObjModel::collide(obj_models[i], obj_models[j]);
151 if (collision) {
152 double yd1 = rand_yaw_dot(eng);
153 double yd2 = rand_yaw_dot(eng);
154 obj_models[i].setYawDot(yd1);
155 obj_models[j].setYawDot(yd2);
156 }
157 }
158}
159
160void visualizeObj(int id) {
161 Eigen::Vector3d pos, color, scale;

Callers

nothing calls this directly

Calls 4

visualizeObjFunction · 0.85
setYawDotMethod · 0.80
setInputMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected