在rviz中创建可显示markers的工具包
- 1. 创建using_makers工具包
- 2. rviz部署和测试
1. 创建using_makers工具包
在catkin_ws
工作空间下
cd ~/catkin_ws/src
catkin_create_pkg using_markers rospy visualization_msgs
mkdir ~/catkin_ws/src/using_markers/scripts/
添加basic_shapes.py
至scripts
文件夹
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import rospy
from visualization_msgs.msg import Marker
def main():
rospy.init_node("basic_shapes", anonymous=True)
rate = rospy.Rate(1)
pub = rospy.Publisher("visualization_marker", Marker, queue_size=1)
shape = Marker.CUBE # 其他 Marker.SPHERE, Marker.ARROW, Marker.CYLINDER
while not rospy.is_shutdown():
marker = Marker()
marker.header.frame_id = "/map"
marker.header.stamp = rospy.Time.now()
marker.ns = "basic_shapes"
marker.id = 0
marker.type = shape
marker.action = Marker.ADD # marker action
# 初始化了marker的位置和初始的角度
marker.pose.position.x = 0.5
marker.pose.position.y = 0.5
marker.pose.position.z = 0.5
marker.pose.orientation.x = 0.0
marker.pose.orientation.y = 0.0
marker.pose.orientation.z = 0.0
marker.pose.orientation.w = 1.0
# marker的尺寸大小,这里1.0对应于现实地图的1m
marker.scale.x = 1.0
marker.scale.y = 1.0
marker.scale.z = 1.0
# marker的颜色定义, 注意透明度a的设置,为0就看不到了
marker.color.r = 0.0
marker.color.g = 1.0
marker.color.b = 0.0
marker.color.a = 1.0
marker.lifetime = rospy.Duration()
rate.sleep()
if __name__== "__main__":
try:
main()
except rospy.ROSInterruptException:
pass
cd ~/catkin_ws
catkin build
source devel/setup.bash
2. rviz部署和测试
打开rviz
roscore
rosrun rviz rviz
rviz中添加Marker
python ~/catkin_ws/src/using_markers/scripts/basic_shapes.py
可见绿色立方体。