| 158 | } |
| 159 | |
| 160 | void visualizeObj(int id) { |
| 161 | Eigen::Vector3d pos, color, scale; |
| 162 | pos = obj_models[id].getPosition(); |
| 163 | color = obj_models[id].getColor(); |
| 164 | scale = obj_models[id].getScale(); |
| 165 | double yaw = obj_models[id].getYaw(); |
| 166 | |
| 167 | Eigen::Matrix3d rot; |
| 168 | rot << cos(yaw), -sin(yaw), 0.0, sin(yaw), cos(yaw), 0.0, 0.0, 0.0, 1.0; |
| 169 | |
| 170 | Eigen::Quaterniond qua; |
| 171 | qua = rot; |
| 172 | |
| 173 | /* ---------- rviz ---------- */ |
| 174 | visualization_msgs::Marker mk; |
| 175 | mk.header.frame_id = "world"; |
| 176 | mk.header.stamp = ros::Time::now(); |
| 177 | mk.type = visualization_msgs::Marker::CUBE; |
| 178 | mk.action = visualization_msgs::Marker::ADD; |
| 179 | mk.id = id; |
| 180 | |
| 181 | mk.scale.x = scale(0), mk.scale.y = scale(1), mk.scale.z = scale(2); |
| 182 | mk.color.a = 0.5, mk.color.r = color(0), mk.color.g = color(1), mk.color.b = color(2); |
| 183 | |
| 184 | mk.pose.orientation.w = qua.w(); |
| 185 | mk.pose.orientation.x = qua.x(); |
| 186 | mk.pose.orientation.y = qua.y(); |
| 187 | mk.pose.orientation.z = qua.z(); |
| 188 | |
| 189 | mk.pose.position.x = pos(0), mk.pose.position.y = pos(1), mk.pose.position.z = pos(2); |
| 190 | |
| 191 | obj_pub.publish(mk); |
| 192 | |
| 193 | /* ---------- pose ---------- */ |
| 194 | geometry_msgs::PoseStamped pose; |
| 195 | pose.header.frame_id = "world"; |
| 196 | pose.header.seq = id; |
| 197 | pose.pose.position.x = pos(0), pose.pose.position.y = pos(1), pose.pose.position.z = pos(2); |
| 198 | pose.pose.orientation.w = 1.0; |
| 199 | pose_pubs[id].publish(pose); |
| 200 | } |
no test coverage detected