@@ -39,7 +39,6 @@ tcp_ros_bridge::tcp_ros_bridge(const std::string& auv_name,
39
39
posegt_sub_ = nh.subscribe <nav_msgs::Odometry>(auv_name + " /pose_gt" , 1 , boost::bind (&tcp_ros_bridge::posegtCb, this , _1));
40
40
dvl_sub_ = nh.subscribe <uuv_sensor_ros_plugins_msgs::DVL>(auv_name + " /dvl" , 1 , boost::bind (&tcp_ros_bridge::dvlCb, this , _1));
41
41
42
-
43
42
// try create async server
44
43
seq_ = 0 ;
45
44
@@ -107,10 +106,10 @@ void tcp_ros_bridge::uuv_ctrl_publish_thread()
107
106
108
107
ctrl_info_ = tcp_msg_sub_->getCtrlInfo ();
109
108
110
- fins0 = ctrl_info_.fin0_ / 57.3 ;
111
- fins1 = ctrl_info_.fin1_ / 57.3 ;
112
- fins2 = ctrl_info_.fin2_ / 57.3 ;
113
- fins3 = ctrl_info_.fin3_ / 57.3 ;
109
+ fins0 = ctrl_info_.fin0_ ;
110
+ fins1 = ctrl_info_.fin1_ ;
111
+ fins2 = ctrl_info_.fin2_ ;
112
+ fins3 = ctrl_info_.fin3_ ;
114
113
115
114
rpm = ctrl_info_.rpm_ ;
116
115
@@ -131,16 +130,16 @@ void tcp_ros_bridge::uuv_ctrl_publish_thread()
131
130
uuv_gazebo_ros_plugins_msgs::FloatStamped fins_msg;
132
131
fins_msg.header = header;
133
132
// upper port
134
- fins_msg.data = fins0;
133
+ fins_msg.data = - fins0;
135
134
fins0_pub_.publish (fins_msg);
136
135
// upper starboard
137
- fins_msg.data = fins1;
136
+ fins_msg.data = - fins1;
138
137
fins1_pub_.publish (fins_msg);
139
138
// lower port
140
- fins_msg.data = fins2;
139
+ fins_msg.data = - fins2;
141
140
fins2_pub_.publish (fins_msg);
142
141
// lower starboard
143
- fins_msg.data = fins3;
142
+ fins_msg.data = - fins3;
144
143
fins3_pub_.publish (fins_msg);
145
144
146
145
boost::this_thread::sleep (boost::posix_time::milliseconds (period_ * 1000 ));
@@ -197,15 +196,42 @@ void tcp_ros_bridge::uuv_status_send_thread()
197
196
uint8_t mode = 0xFF ; uint8_t light = 0xFF ; uint8_t elevator = 0xFF ; // default
198
197
uint8_t cmd = 0xFF ;
199
198
200
- double lng = 114.31 ; double lat = 30.52 ;
201
-
202
- message_status_pack (mode, 20.0 , -5.0 , -10.0 , 0.0 , 0.0 , 0.0 ,
199
+ double ins_lng = 114.31 ; double ins_lat = 30.52 ;
200
+
201
+ double battery_volt = 12.0 ; // unit: V
202
+ uint8_t battery_volumn = 0x32 ; // 50%
203
+ double battry_temp = 30.0 ; // degree
204
+
205
+ uint32_t leak = 0x00000001 ;
206
+ uint8_t battery_emerg = 0x01 ;
207
+ uint8_t added_battery_emerg = 0x01 ;
208
+ uint8_t propeller_emerg = 0x01 ;
209
+ uint8_t node_emerg = 0x01 ;
210
+ uint8_t estar_fd = 0xFF ;
211
+ uint8_t load_reject_fd = 0xFF ;
212
+ uint8_t sensor_switch_fd = 0x00 ;
213
+ uint8_t release_fd = 0xFF ;
214
+
215
+ #ifdef LATEST_MSG
216
+ message_status_pack (mode, 5.0 , 0.0 , -5.0 , 0.0 , 0.0 , 0.0 , // mode, binocular_x, binocular_y, binocular_z, binocular_heel, binocular_pitch, binocular_yaw
217
+ x, y, z, roll, pitch, yaw, // usbl_x, usbl_y, usbl_z, usbl_roll, usbl_pitch, usbl_yaw
218
+ 113.0 , 30.0 , // usbl_lat, usbl_lng
219
+ 500.0 - abs (z), abs (z), // height, depth
220
+ ins_yaw, -pitch, roll, -v, u, -w, ins_lng, ins_lat, 0.0 , 0.0 , 0.0 , // yaw, pitch, roll, vel_north, vel_east, vel_vert, ins_lng, ins_lat
221
+ fin0, fin1, fin2, fin3, cmd, // rudder1, rudder2, rudder3, rudder4, command
222
+ light, elevator, 0.0 , 0.0 , 0.0 , // light, elevator, ins_accz, ins_accx, ins_accy
223
+ battery_volt, battery_volumn, battry_temp, leak, battery_emerg, // battery_voltage, battery_volumn, battery_temperature, leakage, battery_emergency
224
+ added_battery_emerg, propeller_emerg, node_emerg, estar_fd, load_reject_fd, sensor_switch_fd, release_fd); // added_battery_emergency, propeller_emergency, node_emergency,
225
+ // estar_feedback, load_rejection feedback, sensor switch feedback, release feedback
226
+ #else
227
+ message_status_pack (mode, 5.0 , 0.0 , -5.0 , 0.0 , 0.0 , 0.0 ,
203
228
x, y, z, roll, pitch, yaw,
204
229
500.0 - abs (z), abs (z),
205
- ins_yaw, -pitch, roll, -v, u, -w,
206
- lng, lat, 0.0 , 0.0 , 0.0 ,
230
+ ins_yaw, -pitch, roll, -v, u, -w,ins_lng, ins_lat,
231
+ 0.0 , 0.0 , 0.0 ,
207
232
fin0, fin1, fin2, fin3, cmd,
208
233
light, elevator);
234
+ #endif
209
235
210
236
uint8_t send_buffer[512 ];
211
237
uint16_t len = message_msg_to_send_buffer (send_buffer, 0 );
0 commit comments