MCPcopy Create free account
hub / github.com/Robotics-STAR-Lab/SOAR / main

Function main

src/simulator/cascadePID/src/cascadePID_node.cpp:122–182  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122int main(int argc, char **argv) {
123 ros::init(argc, argv, "cascade_PID");
124
125 ros::NodeHandle n("~");
126
127 double init_x, init_y, init_z;
128 double init_yaw;
129 double controller_rate, angle_stable_time, damping_ratio;
130 int drone_id;
131 std::string quad_name;
132 n.param("init_state_x", init_x, 0.0);
133 n.param("init_state_y", init_y, 0.0);
134 n.param("init_state_z", init_z, 1.0);
135 n.param("init_state_yaw", init_yaw, 1.0);
136 init_yaw = init_yaw / 180.0 * M_PI;
137 yaw_des = init_yaw;
138 n.param("controller_rate", controller_rate, 200.0);
139 n.param("quadrotor_name", quad_name, std::string("quadrotor"));
140 n.param("angle_stable_time", angle_stable_time, 0.1);
141 n.param("damping_ratio", damping_ratio, 0.7);
142 n.param("drone_id", drone_id, 0);
143
144 control_RPM_pub = n.advertise<std_msgs::Float32MultiArray>("cmd_RPM", 100);
145 ros::Subscriber odom_sub = n.subscribe("odom", 100, Odom_callback,
146 ros::TransportHints().tcpNoDelay());
147 ros::Subscriber cmd_sub = n.subscribe("cmd_pose", 100, cmd_callback,
148 ros::TransportHints().tcpNoDelay());
149 ros::Subscriber position_cmd_sub_ =
150 n.subscribe("position_cmd", 10, fuel_position_cmd_callback,
151 ros::TransportHints().tcpNoDelay());
152
153 quad_PID.setdroneid(drone_id);
154
155 ros::Timer controller_timer =
156 n.createTimer(ros::Duration(1.0 / controller_rate), run_control);
157
158 Matrix3d Internal_mat;
159 Internal_mat << 2.64e-3, 0, 0, 0, 2.64e-3, 0, 0, 0, 4.96e-3;
160 double arm_length = 0.22;
161 double k_F = 8.98132e-9;
162 k_F = 3.0 * k_F;
163 double mass = 1.9;
164
165 // cascadePID quad_PID(controller_rate);
166 quad_PID.setrate(controller_rate);
167 quad_PID.setInternal(mass, Internal_mat, arm_length, k_F);
168 quad_PID.setParam(angle_stable_time, damping_ratio);
169
170 ros::Rate rate(controller_rate);
171 rate.sleep();
172
173 pos_des << init_x, init_y, init_z;
174 vel_des << 0, 0, 0;
175 acc_des << 0, 0, 0;
176
177 t_init = ros::Time::now();
178
179 ros::spin();

Callers

nothing calls this directly

Calls 5

setdroneidMethod · 0.80
setrateMethod · 0.80
setInternalMethod · 0.80
setParamMethod · 0.80
subscribeMethod · 0.45

Tested by

no test coverage detected