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の情報を送信する
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を送信
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)
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に情報を送る
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)
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を送信する
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を配信する
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)
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)
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)
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)
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
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)
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)
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
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を送信
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を送信する
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)
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
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'というトピックに配信する
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トピックに配信
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の送信