Rviz可视化交互之Maker(二)
来源:互联网 发布:手机密室逃脱推荐 知乎 编辑:程序博客网 时间:2024/05/21 08:47
#!/usr/bin/env python#coding=utf-8import rospy#导入交互marker服务端from interactive_markers.interactive_marker_server import *#导入视觉消息from visualization_msgs.msg import *#交互毁掉函数def processFeedback(feedback):#打印当前的位置p = feedback.pose.positionprint feedback.marker_name + " is now at " + str(p.x) + ", " + str(p.y) + ", " + str(p.z)if __name__=="__main__":#初始化节点rospy.init_node("InteractiveMarker", anonymous=True)#创建交互marker服务端对象server = InteractiveMarkerServer("simple_interactive_marker")#创建交互marker对象int_marker = InteractiveMarker()#交互Marker的参考框架int_marker.header.frame_id = "base_link"int_marker.name = "my_marker"int_marker.description = "Simple Interactive Marker"#创建Markerwaypoint_marker = Marker()waypoint_marker.type = Marker.CYLINDERwaypoint_marker.scale.x = 0.2waypoint_marker.scale.y = 0.2waypoint_marker.scale.z = 0.4waypoint_marker.color.r = 0.0waypoint_marker.color.g = 0.5waypoint_marker.color.b = 0.5waypoint_marker.color.a = 1.0waypoint_marker.pose.position.z = 0.2#创建非交互的控制,并添加waypoint_marker到控制,不用来交互,#只是用来在移动的时候可以看到waypoint_markerwaypoint_control = InteractiveMarkerControl()#始终可见waypoint_control.always_visible = True#给交互控制添加具体的Markerwaypoint_control.markers.append(waypoint_marker)#添加非交互控制int_marker.controls.append(waypoint_control)#创建交互控制,不包含markermove_control = InteractiveMarkerControl()move_control.name = "move_x"#设置交互控制的方向move_control.orientation.w = 1.0move_control.orientation.x = 0.0move_control.orientation.y = 1.0move_control.orientation.z = 0.0#设置交互控制模式move_control.interaction_mode = InteractiveMarkerControl.MOVE_PLANE#添加非交互控制int_marker.controls.append(move_control)#添加Marker和它的回调函数server.insert(int_marker, processFeedback)#应用变化,并发送给客户端server.applyChanges()rospy.spin()"""Marker,InteractiveMarker,InteractiveMarkerControl和InteractiveMarkerServer之间的关系Maker:显示的Marker类型,定义Maker的位置姿态和颜色等InteractiveMarker:交互的Marker类型,定义可以控制的Marker,可以指定具体的Marker。InteractiveMarkerControl:交互Marker的控制类型,定义平移、旋转等控制等InteractiveMarkerServer:交互Marker的服务器类型,用于管理InteractiveMarker的回调函数,添加和删除等交互控制和非交互控制的区别是:交互控制是用于具体的交互,如果没有添加具体的Marker,那么会显示辅助交互的箭头或者圆弧;而非交互控制不是用于具体的交互,可能是用于在交互过程中显示Maker。"""
0 0
- Rviz可视化交互之Maker(二)
- Rviz可视化交互之Maker(一)
- Rviz可视化交互之Menu
- 【D3.js数据可视化系列教程】(二十)--交互图表之条形图排序
- 【D3.js数据可视化系列教程】(二十一)--交互图表之条形图排序切换
- 【D3.js数据可视化系列教程】(二十二)--交互图表之提示条
- ROS RViz基本学习笔记(二)
- RPG Maker的引擎分析(二)
- Rviz教程(二):Markers: Sending Basic Shapes (C++)
- ROS专题----数据可视化rviz简明笔记
- RPG Maker的引擎分析(一)(二)
- Unity3D 之 FX Maker
- Rviz教程(十一):Rviz in Stereo
- TensorFlow(二)可视化
- 【D3.js数据可视化系列教程】(十九)--交互图表之鼠标悬停
- Rviz之tf坐标关系
- MAKER
- 数据可视化漫谈(二)
- 西门子plc s7 200数据长度和数值范围及格式
- Kinetis KL8x 使用eDMA模块接收串口数据
- Jsp向Action中传集合
- eclipse安装JBoss Tools插件(必须是最新版的eclipse,否则参考第二种安装)
- 关于绑定变量关闭的情况,Oracle是如何工作的?
- Rviz可视化交互之Maker(二)
- Validform.js 学习笔记
- freemarker导出excel时office报错而wps不会
- 利用Redis 实现消息队列
- 高性能mysql之慎用BLOB与TEXT
- 利用图像处理工具分析MAT中的bitmap
- hdu 2020 绝对值排序
- java乱码问题总结
- cocos creator /1 -hello world