<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://openrave.programmingvision.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ROS%3AObject_Detection</id>
		<title>ROS:Object Detection - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://openrave.programmingvision.com/wiki/index.php?action=history&amp;feed=atom&amp;title=ROS%3AObject_Detection"/>
		<link rel="alternate" type="text/html" href="http://openrave.programmingvision.com/wiki/index.php?title=ROS:Object_Detection&amp;action=history"/>
		<updated>2026-11-08T19:05:10Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.4</generator>

	<entry>
		<id>http://openrave.programmingvision.com/wiki/index.php?title=ROS:Object_Detection&amp;diff=79&amp;oldid=prev</id>
		<title>Rdiankov: Created page with &quot;= Object Detection with ROS/OpenRAVE =                                  &quot;posedetection_msgs&quot;, which decides the connection message, is the central role here. Each feature and obj...&quot;</title>
		<link rel="alternate" type="text/html" href="http://openrave.programmingvision.com/wiki/index.php?title=ROS:Object_Detection&amp;diff=79&amp;oldid=prev"/>
				<updated>2011-04-18T15:08:18Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Object Detection with ROS/OpenRAVE =                                  &amp;quot;posedetection_msgs&amp;quot;, which decides the connection message, is the central role here. Each feature and obj...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Object Detection with ROS/OpenRAVE =&lt;br /&gt;
                                &lt;br /&gt;
&amp;quot;posedetection_msgs&amp;quot;, which decides the connection message, is the central role here. Each feature and object-detection module use this message, and therefore they can cooperate with one another.&lt;br /&gt;
&lt;br /&gt;
Message F&lt;br /&gt;
 Curve1D&lt;br /&gt;
 Feature0D&lt;br /&gt;
 Feature1D&lt;br /&gt;
 ImageFeature0D&lt;br /&gt;
 ImageFeature1D&lt;br /&gt;
 Object6DPose - One detected object&lt;br /&gt;
 ObjectDetection - Object detection output&lt;br /&gt;
Service F&lt;br /&gt;
 Detect&lt;br /&gt;
 Feature0DDetect&lt;br /&gt;
 Feature1DDetect&lt;br /&gt;
&lt;br /&gt;
Features are separated between 0-dimensional &amp;quot;point&amp;quot; and 1-dimensional &amp;quot;line&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The package required to compute features according to this message is&lt;br /&gt;
 imagesift&lt;br /&gt;
&lt;br /&gt;
The package required to output the result of the object according to this message is&lt;br /&gt;
 checkerboard_detector&lt;br /&gt;
 posedetectiondb&lt;br /&gt;
&lt;br /&gt;
= Posture-and-orientation detection of textured planes =&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s boot up the easy program on plane detection based on PointPoseExtraction.py script in posedetectiondb&lt;br /&gt;
&lt;br /&gt;
 rosmake --rosdep-install posedetectiondb &lt;br /&gt;
&lt;br /&gt;
== Quick start ==&lt;br /&gt;
&lt;br /&gt;
To start feature extraction F&lt;br /&gt;
rosrun imagesift imagesift&lt;br /&gt;
&lt;br /&gt;
To start detection module&lt;br /&gt;
rosrun posedetectiondb PointPoseExtraction.py&lt;br /&gt;
&lt;br /&gt;
Choose 4 points by left click on the mouse, and create template.pp file. This texture is used to be searched from images.&lt;br /&gt;
&lt;br /&gt;
To see the image in pp file, run the following script&lt;br /&gt;
 python -c &amp;quot;import scipy, pickle; scipy.misc.pilutil.imshow(pickle.load(open(raw_input(&amp;#039;enter filename: &amp;#039;),&amp;#039;r&amp;#039;))[&amp;#039;Itemplate&amp;#039;])&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Execution example using IEEE1394Camera(FLEA)==&lt;br /&gt;
Open camera F&lt;br /&gt;
The example of roslaunch file is as follows&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;launch&amp;gt;&lt;br /&gt;
  &amp;lt;group ns=&amp;quot;FLEA&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;display&amp;quot; type=&amp;quot;int&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;mode&amp;quot; value=&amp;quot;MODE_640x480_MONO8&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;framerate&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;colorfilter&amp;quot; type=&amp;quot;string&amp;quot; value=&amp;quot;COLOR_FILTER_GBRG&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;compression&amp;quot; type=&amp;quot;string&amp;quot; value=&amp;quot;raw&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;frame_id&amp;quot; type=&amp;quot;string&amp;quot; value=&amp;quot;left_base&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;KK_fx&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;493.336823&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;KK_fy&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;493.239960&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;KK_cx&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;308.050354&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;KK_cy&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;242.917526&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;kc_k1&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;-0.342432&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;kc_k2&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;0.123768&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;kc_p1&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;-0.000268&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;param name=&amp;quot;kc_p2&amp;quot; type=&amp;quot;double&amp;quot; value=&amp;quot;0.000052&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;node name=&amp;quot;cam&amp;quot; pkg=&amp;quot;cameradc1394&amp;quot; type=&amp;quot;cameradc1394&amp;quot; respawn=&amp;quot;true&amp;quot; output=&amp;quot;screen&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/node&amp;gt;&lt;br /&gt;
    &amp;lt;node name=&amp;quot;iview&amp;quot; pkg=&amp;quot;image_view&amp;quot; type=&amp;quot;image_view&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/node&amp;gt;&lt;br /&gt;
  &amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/launch&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
 sudo chown user:group /dev/raw1394&lt;br /&gt;
 roslaunch cameradc.ros.xml &lt;br /&gt;
&lt;br /&gt;
The explanation of calib is in&lt;br /&gt;
http://openrave.programmingvision.com/index.php/Working_with_Cameras&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Start feature extraction F&lt;br /&gt;
&lt;br /&gt;
 ROS_NAMESPACE=FLEA rosrun imagesift imagesift&lt;br /&gt;
Of course it is also possible to roslaunch as follows&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;launch&amp;gt;&lt;br /&gt;
&amp;lt;group ns=&amp;quot;FLEA&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;node name=&amp;quot;sift&amp;quot; pkg=&amp;quot;imagesift&amp;quot; type=&amp;quot;imagesift&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/launch&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Start detection module and create template.pp F&lt;br /&gt;
 ROS_NAMESPACE=FLEA rosrun posedetectiondb PointPoseExtraction.py&lt;br /&gt;
Click the four corners of the detection-target texture one by one.&lt;br /&gt;
&lt;br /&gt;
[[image:ttest1.png|300px]]&lt;br /&gt;
[[image:ttest2.png|300px]]&lt;br /&gt;
[[image:ttest3.png|300px]]&lt;br /&gt;
[[image:ttest4.png|300px]]&lt;br /&gt;
&lt;br /&gt;
The vector from the first point to the second point becomes the positive sense of x-axis.&lt;br /&gt;
&lt;br /&gt;
In the current specification, to click points clockwise is expected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(The above image was captured before bug fixing. I will replace it by a new one someday.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you finish clicking the fourth point, you will be asked to input the width and height on the terminal.&lt;br /&gt;
Input them in the order of &amp;quot;width height&amp;quot;, by meters.&lt;br /&gt;
&lt;br /&gt;
(For example, input &amp;quot;0.13 0.14&amp;quot; if the size is 13cmx14cm.)&lt;br /&gt;
&lt;br /&gt;
If it is suceeded, the following window appears&lt;br /&gt;
&lt;br /&gt;
[[image:ttest5.png|300px]]&lt;br /&gt;
&lt;br /&gt;
P.S.: Fatal bug, which brought a mirror plane as above, was fixed on 5/3.&lt;br /&gt;
The detection accuracy increased dramatically.&lt;br /&gt;
I will replace the above image by a new one someday.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detection test F&lt;br /&gt;
The example of roslaunch file is as follows&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;launch&amp;gt;&lt;br /&gt;
&amp;lt;group ns=&amp;quot;FLEA&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;node name=&amp;quot;template&amp;quot; pkg=&amp;quot;posedetectiondb&amp;quot;&lt;br /&gt;
  type=&amp;quot;PointPoseExtraction.py&amp;quot; args=&amp;quot;--errorthresh=0.007&lt;br /&gt;
  --neighthresh=0.8 --dminexpected=10 --ransaciters=200&lt;br /&gt;
  --template=/hoge/template.pp&amp;quot; output=&amp;quot;screen&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/launch&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The parameters are only an example.&lt;br /&gt;
&lt;br /&gt;
Running camera and imagesift, roslaunch this&lt;br /&gt;
 roslaunch template.ros.xml&lt;br /&gt;
&lt;br /&gt;
The success examples are as follows&lt;br /&gt;
&lt;br /&gt;
[[image:ttest6.png|300px]]&lt;br /&gt;
[[image:ttest7.png|300px]]&lt;br /&gt;
&lt;br /&gt;
== Explanation of parameters ==&lt;br /&gt;
 rosrun posedetectiondb PointPoseExtraction.py --help&lt;br /&gt;
When you run this script, you can see the explanation of each parameter.&lt;br /&gt;
&lt;br /&gt;
== Connection to OpenRAVE Objects ==&lt;/div&gt;</summary>
		<author><name>Rdiankov</name></author>	</entry>

	</feed>