def cb(msg):
    print msg.rect  #ターミナルにmsgの情報を出力する
    marker = ImageMarker2()  #変数markerがImageMarker2のかたであることを初期化
    marker.type = 0  #markerのタイプは0であることを代入
    marker.position = Point(msg.rect.center.x, msg.rect.center.y,
                            0)  #markerの位置はmsgのcenterに代入されたx,y座標である
    pub.publish(marker)  #markerの情報を送信する
Example #2
0
def cb(msg):
    print msg.rect  #矩形の情報を表示
    marker = ImageMarker2()  #markerの定義
    marker.type = 0  #円形のmarker
    marker.position = Point(msg.rect.center.x, msg.rect.center.y,
                            0)  #矩形の中心にmarkerの中心を設定
    pub.publish(marker)  #markerを送信
Example #3
0
 def publish(self):
   marker = ImageMarker2()
   now = rospy.Time.now()
   marker.id = self.marker_id
   marker.header.stamp = now
   marker.header.frame_id = self.frame_id
   marker.type = ImageMarker2.POLYGON3D
   point_array = PointArrayStamped()
   point_array.header.frame_id = self.frame_id
   point_array.header.stamp = now
   for i in range(self.RESOLUTION + 1) + [0]:
     theta = 2 * math.pi / self.RESOLUTION * i
     x = self.radius * math.cos(theta)
     y = self.radius * math.sin(theta)
     point = Point()
     point.x = x
     point.y = y
     point.z = 0
     point_array.points.append(point)
   marker.points3D = point_array
   if self.color:
     marker.outline_colors = [self.color]
     if self.fill:
       marker.filled = 1
     else:
       marker.filled = 0
     marker.fill_color = self.color
   self.publisher.publish(marker)
Example #4
0
def cb(msg):  # msgクラスを引数にとる関数cbを宣言

    print msg.rect  # msgクラスのrect(領域の中心座標と大きさ)を表示
    marker = ImageMarker2()  # ImageMarker2型の変数makerを定義
    marker.type = 0  # 領域のタイプを指定(0は円)
    # markerのpositionに領域の中心座標を代入
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    pub.publish(marker)  # image_markerに情報を送る
Example #5
0
def cb(msg):
    print msg.rect
    #引数のrectをprint
    marker = ImageMarker2()
    marker.type = 0
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    #markerの宣言(importしたImageMarker2) その内部の値に代入
    pub.publish(marker)
Example #6
0
def cb(msg):
    print msg.rect  #msgのrectの表示
    marker = ImageMarker2()  #markerの定義
    marker.type = 0  #markerを円にする。 ImageMarker2においてint32 type # CIRCLE/LINE_STRIP/etc.,byte CIRCLE=0
    marker.position = Point(
        msg.rect.center.x, msg.rect.center.y, 0
    )  #ImageMarker2においてgeometry_msgs/Point position # used for CIRCLE/TEXT, 2D in pixel-coords.マーカーの位置を、msg.rectの中心に設定する。
    pub.publish(marker)  #markerを送信する
Example #7
0
def cb(msg):
    print msg.rect  #RotatedRectStamped型の中にあるrectの情報を出力する
    marker = ImageMarker2()  #配信するための変数の型をimage_view2.msg.ImgaeMarker2として定義する
    marker.type = 0  #円の場合は0を代入する
    marker.position = Point(
        msg.rect.center.x, msg.rect.center.y,
        0)  #RotateRectstampedのなかの座標(x, y)をmarker.positionに代入する
    pub.publish(marker)  #markerを配信する
Example #8
0
def cb(msg):
    print msg.rect  #print msg.rect subscribed by RotatedRectStamped?
    #angle,center(x,y),size(width,height)
    marker = ImageMarker2()  #set marker
    marker.type = 0  #draw circle?
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    #at msg.rect position
    pub.publish(marker)  #publish marker/draw marker on canvas?
def cb(msg):
    #msg内のRotatedRect型のrectを表示
    print msg.rect
    #/image_markerに送出するmarkerはImageMarker2型
    marker = ImageMarker2()
    #markerのタイプと位置を指定
    marker.type = 0
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    #markerを送出
    pub.publish(marker)
def publishMode():
  global g_image_marker_pub
  marker = ImageMarker2()
  marker.header.stamp = rospy.Time(0.0)
  marker.id = 1
  marker.type = ImageMarker2.TEXT
  marker.text = "mode: triangle_screenpoint.py"
  marker.position.x = 300
  marker.position.y = 50
  g_image_marker_pub.publish(marker)
def cb(msg):
    # print info of moving rectangle
    print msg.rect
    marker = ImageMarker2()
    # circle marker
    marker.type = 0
    # put marker pos
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    # publish the marker
    pub.publish(marker)
Example #12
0
def cb(msg):
    print msg.rect
    #RotatedRectStamped型の変数内容を表示する.
    marker = ImageMarker2()
    #ImageMarker2型の変数markerを作る.
    marker.type = 0
    #円に指定する.
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    #重心を代入する.
    pub.publish(marker)
Example #13
0
def cb(msg):
    #受信したメッセージの表示
    print msg.rect
    #ImageMarker2クラスのインスタンスの生成
    marker = ImageMarker2()
    #markerの種類を円として指定
    marker.type = 0
    #markerの位置の指定
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    #markerの送信
    pub.publish(marker)
Example #14
0
def cb(msg):
    # RotatedRectStamped型の変数の内容をを表示
    print msg.rect
    # ImageMarker2型変数作成
    marker = ImageMarker2()
    # 描画タイプ
    marker.type = 0
    # 重心の座標をマーカーに代入
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    # markerを配信
    pub.publish(marker)
Example #15
0
def cb(msg):
    print msg.rect #print received data
    marker=ImageMarker2() 
    marker.type=0 #initialize
    marker.position=Point(msg.rect.center.x,msg.rect.center.y,0) #define the position as the center of the rectangle.
    pub.publish(marker)#send messages.

    rospy.init_node('client') #create a new node and name it "client"
    rospy.Subscirber('/camshift/track_box',RotatedRectStamped,cb)
    pub=roapy.Publisher('/image_marker',ImageMarker2) #define subscriber and publisher
    rospy.spin() #continue this until the process is terminated
Example #16
0
def cb(msg):
    #RotatedRectStamped型の変数の内容を表示
    print msg.rect
    #ImageMarker2型の変数markerを定義
    marker = ImageMarker2()
    #円を作る
    marker.type = 0
    #重心を代入
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    #生成したメッセージを配信
    pub.publish(marker)
def cb(msg):
    print msg.rect

    #購読したトピックmsgを使ってmarkerに値を代入する。
    marker = ImageMarker2()

    #配信するメッセージの編集する。
    marker.type = 0
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)

    #/ImageMarkerトピックに編集したmarkerメッセージを追加する。
    pub.publish(marker)
 def convert(self, msg):
     marker = ImageMarker2()
     marker.header = msg.header
     marker.type = ImageMarker2.LINE_LIST
     for rect, rect_i in zip(msg.rects, range(len(msg.rects))):
         points = [(rect.x, rect.y),
                   (rect.x, rect.y + rect.height),
                   (rect.x + rect.width, rect.y + rect.height),
                   (rect.x + rect.width, rect.y)]
         for i, j in ((0, 1), (1, 2), (2, 3), (3, 0)):
             marker.points.append(Point(x=points[i][0], y=points[i][1]))
             marker.points.append(Point(x=points[j][0], y=points[j][1]))
             marker.outline_colors.append(color_category10(rect_i))
             marker.outline_colors.append(color_category10(rect_i))
     self.pub.publish(marker)
Example #19
0
def cb(msg):
    #受信したメッセージを表示
    print msg.rect

    #ImageMarker2()型のインスタンスを生成
    marker = ImageMarker2()

    #markerの種類を円に設定
    marker.type = 0

    #markerの位置をmsg.rect.centerに設定
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)

    #markerを送信
    pub.publish(marker)
def cb(msg):
    # 検出された四角形の情報を標準出力にprint
    print msg.rect

    # 画像処理結果ビジュアライザに送るための構造体を準備
    marker = ImageMarker2()

    # type指定。0はCIRCLE
    marker.type = 0

    # 座標指定。四角形の中心を中心とする。二次元画像に出すのでzは0
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)

    # 配信
    pub.publish(marker)
def cb(msg):
    # 検出されたrectangleを標準出力にprintする
    print msg.rect

    # 画像処理結果の構造体を準備している
    marker = ImageMarker2()

    # type指定。ドキュメントによると0がCIRCLEに対応しているので、ここでは0でよい
    marker.type = 0

    # 座標を指定。四角形の中心を中心とする。二次元画像に出すのでzは0でよい
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)

    # 配信を行う
    pub.publish(marker)
Example #22
0
 def convert(self, msg):
     marker = ImageMarker2()
     marker.header = msg.header
     marker.type = ImageMarker2.LINE_LIST
     n_colors = min(len(msg.rects), 256)
     cmap = jsk_recognition_utils.color.labelcolormap(n_colors)
     for rect, rect_i in zip(msg.rects, range(n_colors)):
         points = [(rect.x, rect.y), (rect.x, rect.y + rect.height),
                   (rect.x + rect.width, rect.y + rect.height),
                   (rect.x + rect.width, rect.y)]
         color = cmap[rect_i]
         color_msg = ColorRGBA(r=color[0], g=color[1], b=color[2])
         for i, j in ((0, 1), (1, 2), (2, 3), (3, 0)):
             marker.points.append(Point(x=points[i][0], y=points[i][1]))
             marker.points.append(Point(x=points[j][0], y=points[j][1]))
             marker.outline_colors.append(color_msg)
             marker.outline_colors.append(color_msg)
     self.pub.publish(marker)
 def makeImageMarker(self, p):
   now = rospy.Time(0.0)
   marker = ImageMarker2()
   marker.header.stamp = now
   marker.header.frame_id = p.header.frame_id
   marker.type = ImageMarker2.POLYGON3D
   marker.points3D.header.frame_id = p.header.frame_id
   marker.points3D.header.stamp = now
   R = 0.01
   N = 10
   for i in range(N) + [0]:
     point = Point()
     point.x = p.point.x + R * math.cos(2 * math.pi * i / N)
     point.y = p.point.y + R * math.sin(2 * math.pi * i / N)
     point.z = p.point.z
     marker.points3D.points.append(point)
   marker.outline_colors = [ColorRGBA(1.0, .0, .0, 1.0)]
   return marker
Example #24
0
def cb(msg):
    print msg.rect # msgの短形情報を表示 
    marker = ImageMarker2() # markerのインスタンスを生成
    marker.type = 0 #markerを円形にする
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0) #markerの中心を短形の中心にする
    pub.publish(marker) #markerを送信
Example #25
0
def cb(msg):
    print msg.rect  #矩形の情報を出力する
    marker = ImageMarker2()  #markerの設定
    marker.type = 0  #マーカーの形を円にする
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)  #マーカーの中心を矩形の中心にする(z座標は0)
    pub.publish(marker)  #markerを送信する
Example #26
0
def cb(msg):
    print msg.rect
    marker = ImageMarker2()
    marker.type = 0
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)
    pub.publish(marker)
Example #27
0
def cb(msg):
    print msg.rect #print out msg's rect
    marker = ImageMarker2() #construct and init marker of ImageMarker2()
    marker.type = 0 #define marker's type as circle
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0) #define marker's position
Example #28
0
def cb(msg): #msgというクラスを引数に取るcbという関数を定義
print msg.rect #msgの中のrectという変数を表示
    marker = ImageMarker2() #markerというクラスに上でインポートしたImageMarker2という関数の返り値を代入
    marker.type = 0 #marker内のtypeという変数に0を代入(おそらく初期化を行っていると考えられる)
    marker.position = Point(msg.rect.center.x,msg.rect.center.y,0) #markerのpositionという変数に上でインポートしたPointという関数の戻り値を代入している。また、msg.rect自体もクラスであり、クラスの中に三重にクラスが入れ子になっていることもわかる
    pub.publish(marker) #上の三行で値を代入したmarkerというクラスを、このコードの場合は後述されている'/image_marker'というトピックに配信する
Example #29
0
def cb(msg):
    print msg.rect  #変数内容を表示
    marker = ImageMarker2()  #ImageMarker2型の変数を生成
    marker.type = 0  #円に指定
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0)  #重心
    pub.publish(marker)  #新しいメッセージをimage_markerトピックに配信
Example #30
0
def cb(msg):
    print msg.rect #メッセージの表示
    marker = ImageMarker2() #markerのメッセージの型をImageMarker2に設定
    marker.type = 0 #markerの種類の設定(0は円に設定されている)
    marker.position = Point(msg.rect.center.x, msg.rect.center.y, 0) #markerの位置の設定(rectは長方形の意味)
    pub.publish(marker) #markerの送信