ROS python编程

ROS

由于python中包含大量的库,这里将ros与python结合进行编程。

初始化ROS环境

# 创建workspace
mkdir pyRos_ws && cd pyRos_ws
mkdir src && cd src
catkin_init_workspace
# 创建一个package添加rospy
catkin_create_pkg learning_topic rospy std_msgs
cd learning_topic
# 该文件夹用于存放python文件
mkdir scripts

创建ROS节点

这里创建ros节点

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
import std_msgs.msg
from std_msgs.msg import *
def main():
    # 初始化节点
    rospy.init_node("my_node", anonymous=False)
    # 判断ROS是否关闭
    while not rospy.is_shutdown():
        time = rospy.Time.now().to_sec()
        # print 时间
        print (time)
        rospy.sleep(1.0)

if __name__ == "__main__":
    try:
        main()
    except rospy.ROSInterruptException:
        pass

使用Python创建多个Marker

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import rospy
from visualization_msgs.msg import MarkerArray, Marker

if __name__ =="__main__":
    rospy.init_node("publish_markers")
    pub_markers = rospy.Publisher("/Markers",MarkerArray,queue_size=10)
    pub_marker = rospy.Publisher("/Marker", Marker, queue_size=10)
    markers = MarkerArray()

    a = 0
    b = 0
    marker = Marker()
    marker.header.stamp = rospy.Time.now()
    marker.header.frame_id = "map"
    marker.type = Marker.CUBE
    marker.action = Marker.ADD
    while not rospy.is_shutdown():

        # marker.lifetime = rospy.Duration(1)
        marker.id = a
        marker.pose.position.x = b
        marker.pose.position.y = a
        marker.pose.position.z = 2
        marker.pose.orientation.w = 1.0

        marker.color.r = 0.0
        marker.color.g = 0.0
        marker.color.b = 1.0
        marker.color.a = 0.4

        marker.scale.x = 2
        marker.scale.y = 1
        marker.scale.z = 0.2
        a+=1
        b+=1
        pub_marker.publish(marker)
        markers.markers.append(marker)
        pub_markers.publish(markers)
        rospy.sleep(1.0)

这里注意,每一个mark的id必须不一样,不然只显示一个

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值