Skip to content

Commit d82513a

Browse files
committed
add waypoint text marker
1 parent 2138288 commit d82513a

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

rviz/edit.rviz

+12-13
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ Panels:
55
Property Tree Widget:
66
Expanded:
77
- /Map1/Topic1
8-
- /InteractiveMarkers1
98
Splitter Ratio: 0.49873417615890503
109
Tree Height: 549
1110
- Class: rviz_common/Selection
@@ -74,7 +73,7 @@ Visualization Manager:
7473
Interactive Markers Namespace: /waypoint_markers
7574
Name: InteractiveMarkers
7675
Show Axes: false
77-
Show Descriptions: true
76+
Show Descriptions: false
7877
Show Visual Aids: false
7978
Value: true
8079
Enabled: true
@@ -108,33 +107,33 @@ Visualization Manager:
108107
Views:
109108
Current:
110109
Class: rviz_default_plugins/Orbit
111-
Distance: 9.635456085205078
110+
Distance: 9.749788284301758
112111
Enable Stereo Rendering:
113112
Stereo Eye Separation: 0.05999999865889549
114113
Stereo Focal Distance: 1
115114
Swap Stereo Eyes: false
116115
Value: false
117116
Focal Point:
118-
X: -0.09208789467811584
119-
Y: -0.39830833673477173
120-
Z: -0.6636285781860352
117+
X: 0.1213555708527565
118+
Y: 0.25752243399620056
119+
Z: -1.2387741804122925
121120
Focal Shape Fixed Size: true
122121
Focal Shape Size: 0.05000000074505806
123122
Invert Z Axis: false
124123
Name: Current View
125124
Near Clip Distance: 0.009999999776482582
126-
Pitch: 1.1403977870941162
125+
Pitch: 1.0253981351852417
127126
Target Frame: <Fixed Frame>
128127
Value: Orbit (rviz)
129-
Yaw: 4.708583354949951
128+
Yaw: 1.5735856294631958
130129
Saved: ~
131130
Window Geometry:
132131
Displays:
133132
collapsed: true
134-
Height: 846
133+
Height: 1376
135134
Hide Left Dock: true
136135
Hide Right Dock: false
137-
QMainWindow State: 000000ff00000000fd00000004000000000000018d000002b0fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073000000003d000002b0000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000004c2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000004c2000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b0000002fb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004b0000002b000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
136+
QMainWindow State: 000000ff00000000fd00000004000000000000018d000002b0fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073000000003d000002b0000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000004c2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000004c2000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000009ba0000003efc0100000002fb0000000800540069006d00650100000000000009ba000002fb00fffffffb0000000800540069006d00650100000000000004500000000000000000000009ba000004c200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
138137
Selection:
139138
collapsed: false
140139
Time:
@@ -143,6 +142,6 @@ Window Geometry:
143142
collapsed: false
144143
Views:
145144
collapsed: false
146-
Width: 1200
147-
X: 715
148-
Y: 186
145+
Width: 2490
146+
X: 70
147+
Y: 27

src/wp_edit_node.cpp

+23-12
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#include <yaml-cpp/yaml.h>
66

77
#include <rclcpp/rclcpp.hpp>
8-
#include <visualization_msgs/msg/marker.hpp>
8+
#include <geometry_msgs/msg/pose.hpp>
99
#include <visualization_msgs/msg/interactive_marker.hpp>
1010
#include <visualization_msgs/msg/interactive_marker_control.hpp>
1111
#include <interactive_markers/interactive_marker_server.hpp>
@@ -16,6 +16,7 @@
1616
std::shared_ptr<rclcpp::Node> node;
1717
static std::vector <wp_map_tools::msg::Waypoint> arWaypoint;
1818
static std::vector <wp_map_tools::msg::Waypoint> arCharger;
19+
static rclcpp::Publisher<visualization_msgs::msg::Marker>::SharedPtr marker_pub;
1920
static visualization_msgs::msg::Marker text_marker;
2021
static interactive_markers::InteractiveMarkerServer* pWaypointServer = NULL;
2122

@@ -161,12 +162,12 @@ void processWaypointFeedback(
161162
const visualization_msgs::msg::InteractiveMarkerFeedback::ConstSharedPtr & feedback,
162163
rclcpp::Logger logger)
163164
{
164-
// std::ostringstream oss;
165-
// oss << feedback->marker_name << " is now at " << feedback->pose.position.x << ", " <<
166-
// feedback->pose.position.y << ", " << feedback->pose.position.z;
167-
// RCLCPP_WARN(logger, "%s", oss.str().c_str());
165+
// std::ostringstream oss;
166+
// oss << feedback->marker_name << " is now at " << feedback->pose.position.x << ", " <<
167+
// feedback->pose.position.y << ", " << feedback->pose.position.z;
168+
// RCLCPP_WARN(logger, "%s", oss.str().c_str());
168169

169-
int nNumWP = arWaypoint.size();
170+
int nNumWP = arWaypoint.size();
170171
for(int i=0; i<nNumWP ; i++ )
171172
{
172173
if(feedback->marker_name == arWaypoint[i].name)
@@ -182,18 +183,16 @@ void NewWaypointInterMarker(interactive_markers::InteractiveMarkerServer* inServ
182183
{
183184
visualization_msgs::msg::InteractiveMarker wp_itr_marker;
184185
visualization_msgs::msg::InteractiveMarkerControl wp_dis_ctrl;
185-
visualization_msgs::msg::Marker wp_dis_marker;
186186
visualization_msgs::msg::InteractiveMarkerControl move_control;
187187
wp_itr_marker.header.stamp=node->get_clock()->now();
188188
wp_itr_marker.name = inName;
189189
wp_itr_marker.description = inName;
190190
wp_itr_marker.pose = InPose;
191-
192-
// 显示外形
193191
wp_itr_marker.header.frame_id = "map";
194192
wp_itr_marker.header.stamp=node->get_clock()->now();
195193

196-
// wp_dis_marker.ns = "waypoint_markers";
194+
// 显示3D模型
195+
visualization_msgs::msg::Marker wp_dis_marker;
197196
wp_dis_marker.action = visualization_msgs::msg::Marker::ADD;
198197
wp_dis_marker.type = visualization_msgs::msg::Marker::MESH_RESOURCE;
199198
wp_dis_marker.mesh_resource = "package://wp_map_tools/meshes/waypoint.dae";
@@ -204,8 +203,20 @@ void NewWaypointInterMarker(interactive_markers::InteractiveMarkerServer* inServ
204203
wp_dis_marker.color.g = 0.0;
205204
wp_dis_marker.color.b = 1.0;
206205
wp_dis_marker.color.a = 1.0;
207-
208206
wp_dis_ctrl.markers.push_back( wp_dis_marker );
207+
208+
// 显示航点名称文字
209+
visualization_msgs::msg::Marker text_marker;
210+
text_marker.type = visualization_msgs::msg::Marker::TEXT_VIEW_FACING;
211+
text_marker.scale.z = 0.3;
212+
text_marker.color.r = 1;
213+
text_marker.color.g = 1;
214+
text_marker.color.b = 0;
215+
text_marker.color.a = 1.0;
216+
text_marker.text = inName;
217+
text_marker.pose.position.z = 0.8;
218+
wp_dis_ctrl.markers.push_back( text_marker );
219+
209220
wp_dis_ctrl.always_visible = true;
210221
wp_itr_marker.controls.push_back( wp_dis_ctrl );
211222

@@ -294,7 +305,6 @@ void AddWayPointCallback(const wp_map_tools::msg::Waypoint::ConstPtr& wp)
294305
}
295306
}
296307

297-
298308
int main(int argc, char ** argv)
299309
{
300310
rclcpp::init(argc, argv);
@@ -318,6 +328,7 @@ int main(int argc, char ** argv)
318328
//服务和话题初始化
319329
auto add_waypoint_sub = node->create_subscription<wp_map_tools::msg::Waypoint>("waterplus/add_waypoint",10,AddWayPointCallback);
320330
auto service = node->create_service<wp_map_tools::srv::SaveWaypoints>("waterplus/save_waypoints", saveWaypoints);
331+
marker_pub = node->create_publisher<visualization_msgs::msg::Marker>("text_marker", 100);
321332

322333
RCLCPP_INFO(node->get_logger(), "wp_edit_node 初始化完毕");
323334

0 commit comments

Comments
 (0)