<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://gicl.cs.drexel.edu/wiki-data/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://gicl.cs.drexel.edu/wiki-data/api.php?action=feedcontributions&amp;user=T+Wambold&amp;feedformat=atom</id>
		<title>GICLWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://gicl.cs.drexel.edu/wiki-data/api.php?action=feedcontributions&amp;user=T+Wambold&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki/Special:Contributions/T_Wambold"/>
		<updated>2013-05-22T08:14:00Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.2</generator>

	<entry>
		<id>http://gicl.cs.drexel.edu/wiki/Robot_Lab_(Spring_2012)</id>
		<title>Robot Lab (Spring 2012)</title>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki/Robot_Lab_(Spring_2012)"/>
				<updated>2012-06-20T01:08:24Z</updated>
		
		<summary type="html">&lt;p&gt;T Wambold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Classes]]&lt;br /&gt;
== Class Resources ==&lt;br /&gt;
=== Mailing List ===&lt;br /&gt;
* [http://mail.cs.drexel.edu/pipermail/robotlab/ Archive]&lt;br /&gt;
* [https://mail.cs.drexel.edu/mailman/listinfo/robotlab Management]&lt;br /&gt;
=== Git Repository ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone ssh://&amp;lt;USER&amp;gt;@tux.cs.drexel.edu/~taw38/repos/robotlab.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Where &amp;lt;tt&amp;gt;&amp;lt;USER&amp;gt;&amp;lt;/tt&amp;gt; is your Tux user name.&lt;br /&gt;
&lt;br /&gt;
== Project Notes ==&lt;br /&gt;
* [[ROS (Robot Operating System)]] - general stuff, interfacing with the robot&lt;br /&gt;
* [[Navigation]] &lt;br /&gt;
* [[Motion and Path Planning]]&lt;br /&gt;
== Student Pages ==&lt;br /&gt;
How-to's and what we've learned:&lt;br /&gt;
* [[User:jryan]]&lt;br /&gt;
* [[User:aeh84]]&lt;br /&gt;
* [[User:aps43]]&lt;br /&gt;
* [[User:Ws342]]&lt;br /&gt;
* [[User:T Wambold]]&lt;/div&gt;</summary>
		<author><name>T Wambold</name></author>	</entry>

	<entry>
		<id>http://gicl.cs.drexel.edu/wiki/User:T_Wambold</id>
		<title>User:T Wambold</title>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki/User:T_Wambold"/>
				<updated>2012-06-20T01:07:33Z</updated>
		
		<summary type="html">&lt;p&gt;T Wambold: Created page with &amp;quot;= Robot Lab - Stereo Vision =  I spent most of the class working with stereo vision algorithms in OpenCV.  This page describes the work done, along with various notes.  == Har...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Robot Lab - Stereo Vision =&lt;br /&gt;
&lt;br /&gt;
I spent most of the class working with stereo vision algorithms in OpenCV.  This page describes the work done, along with various notes.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
While any pair of decent webcams should give decent results, we used the fairly low priced [http://www.minoru3d.com/ Minoru 3D webcam].  The biggest advantage is the compact casing providing a consistent distance between the two cameras.  With a modern Linux distribution (tested in Ubuntu 11.10, Ubuntu 12.04, and Arch Linux), these cameras simply show up as two video devices (e.g.  /dev/video0, /dev/video1).&lt;br /&gt;
&lt;br /&gt;
The Minoru cameras (at least in Linux) support two video capture modes:&lt;br /&gt;
* 320 x 240 at 30 FPS&lt;br /&gt;
* 640 x 480 at 15 FPS&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
OpenCV (as of version 2.4.1) contains three stereo vision algorithms [http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#stereobm StereoBM], [http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#stereosgbm StereoSGBM], and [http://docs.opencv.org/modules/contrib/doc/stereo.html#stereovar StereoVar].  Most of my time was spent writing a GUI for experimenting with these algorithms.  Since they each take a large amount of parameters, I felt that real-time feedback was important.&lt;br /&gt;
&lt;br /&gt;
You can find my code [http://github.com/tom5760/stereo_vision on GitHub], and a [https://vimeo.com/44354879 short video showing its use].  It currently only supports StereoBM and StereoSGBM, since StereoVar does not have a Python wrapper.  I have started work in manually creating a wrapper for StereoVar, but it is currently incomplete.&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
As [http://vimeo.com/44354879 the video shows] I was not able to get very good results with the two algorithms tested.  I'm convinced that I'm either doing something wrong in calibration (I don't think this is the case), or that I am using bad parameters (more likely).  I'm not sure what else to currently other than explore the parameters more.  Hopefully the third algorithm (StereoVar) would work better.&lt;br /&gt;
&lt;br /&gt;
=== Future Work ===&lt;br /&gt;
&lt;br /&gt;
I have code to export the depth information as a point cloud to either ROS or MeshLab, which is not integrated into the code yet.  This seems less useful unless I'm able to get better results out of the algorithms.&lt;br /&gt;
&lt;br /&gt;
Another thing I am still working on is trying to wrap the StereoVar algorithm in Python to include in the GUI.  I have basic code written using [http://www.cython.org/ Cython], but it is still incomplete.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* OpenCV does not currently (as of version 2.4.1) support changing the frame rate from live video devices.  Therefore, you must record from the Minoru cameras at 320x240.&lt;br /&gt;
* To synchronize frames from two cameras in OpenCV, use the &amp;quot;grab&amp;quot; function, followed by the &amp;quot;retrieve&amp;quot; function, instead of &amp;quot;read&amp;quot;.&lt;br /&gt;
* You cannot use the OpenCV highgui function imshow (or any function dealing with GUI stuff), while the gtk3 module is loaded.  You will get symbol conflicts.&lt;br /&gt;
* Drawing OpenCV images (stored in Python as an NumPy ndarray) to a Cairo surface (used by GTK to draw widgets), requires the image to have an alpha channel.  You can insert an opaque alpha channel to a numpy image with:&lt;br /&gt;
&lt;br /&gt;
  image_with_alpha = numpy.insert(image, 3, 255, 2)&lt;br /&gt;
&lt;br /&gt;
* To use threads with PyGObject, first call before main:&lt;br /&gt;
&lt;br /&gt;
    GObject.threads_init()&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://opencv.org/ OpenCV Home page]&lt;br /&gt;
* [http://github.com/tom5760/stereo_vision My GUI on GitHub]&lt;br /&gt;
* [http://vimeo.com/44354879 A short video of my GUI]&lt;/div&gt;</summary>
		<author><name>T Wambold</name></author>	</entry>

	<entry>
		<id>http://gicl.cs.drexel.edu/wiki/ROS_(Robot_Operating_System)</id>
		<title>ROS (Robot Operating System)</title>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki/ROS_(Robot_Operating_System)"/>
				<updated>2012-05-11T01:07:55Z</updated>
		
		<summary type="html">&lt;p&gt;T Wambold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We're using ROS to do our work so we can easily translate it to the robot.&lt;br /&gt;
http://www.ros.org/wiki/ &lt;br /&gt;
== p2os ==&lt;br /&gt;
The ROS stack for hooking up to the pioneer.&lt;br /&gt;
Here is an example of our robot using ROS and the navigation system:&lt;br /&gt;
http://youtu.be/f3Iu2t0d3xo&lt;br /&gt;
=== Installing ===&lt;br /&gt;
Open up a terminal.&lt;br /&gt;
Clone the git repository into your home directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone &amp;lt;USER&amp;gt;@tux.cs.drexel.edu:~taw38/repos/robotlab.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/robotlab&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the ros setup script.&lt;br /&gt;
&amp;lt;pre&amp;gt;./ros/bin/setup-ros.bash&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait for passwords, until you get the done prompt.&lt;br /&gt;
&lt;br /&gt;
==== Control with Keyboard ====&lt;br /&gt;
After starting the p2os driver and everything, you can control the robot via keyboard with: &lt;br /&gt;
&amp;lt;pre&amp;gt;$ roslaunch p2os_launch teleop_keyboard.launch&amp;lt;/pre&amp;gt;&lt;br /&gt;
To get p2os_teleop working:&lt;br /&gt;
http://answers.ros.org/question/11417/datatypemd5sum-error-with-p2os_teleop&lt;br /&gt;
&lt;br /&gt;
== rviz ==&lt;br /&gt;
To get rviz to work put this in your .bashrc:&lt;br /&gt;
&amp;lt;pre&amp;gt;export OGRE_RTT_MODE=FBO&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>T Wambold</name></author>	</entry>

	<entry>
		<id>http://gicl.cs.drexel.edu/wiki/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki/Main_Page"/>
				<updated>2012-04-20T15:11:08Z</updated>
		
		<summary type="html">&lt;p&gt;T Wambold: Add link to 2012 Robot Lab to front page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Welcome to the Geometric &amp;amp; Intelligent Computing Laboratory===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Geometric and Intelligent Computing Laboratory ==&lt;br /&gt;
&lt;br /&gt;
Drexel University's Geometric and Intelligent Computing Laboratory (GICL) was established by Dr. Regli in 1997. GICL is supported by both direct external and internal research funding from a number of corporations and government agencies. The Lab's current projects involve collaboration with universities (Carnegie Mellon University, University of Southern California, The University of Maryland at College Park, Penn State, University of Wisconsin, University of North Carolina), corporations (SAIC, AT&amp;amp;T, SDRC, Honeywell, Lockheed Martin), and government labs (FAA William Hughes Technical Center, NIST, Los Alamos National Labs). We also have interactions with many local high technology and manufacturing industries in the Philadelphia Metropolitan Region through these research projects and the Drexel University Co-op program.&lt;br /&gt;
&lt;br /&gt;
Since 1997, GICL has supported over 250 graduate and undergraduate students, producing 35 M.S. theses and M.S.S.E. projects. Several of GICL students are pursuing Ph.D. studies at GICL as well as at other universities.&lt;br /&gt;
&lt;br /&gt;
==People==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[William C. Regli]], Professor and Director&lt;br /&gt;
* [[:Category:People|Students]]&lt;br /&gt;
&lt;br /&gt;
== Active Research Projects ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.acincenter.org Applied Communications and Information Networking]&lt;br /&gt;
&lt;br /&gt;
* [[NDIIPP/LoC: DIGITAL ENGINEERING ARCHIVES]]&lt;br /&gt;
&lt;br /&gt;
:* [[Digital Archiving and Retrieval Tool]]&lt;br /&gt;
&lt;br /&gt;
:* [[Storage Resource Broker|SRB]]&lt;br /&gt;
&lt;br /&gt;
:* [[Engineering Format Registry]]&lt;br /&gt;
&lt;br /&gt;
* [[CIBER-U]]&lt;br /&gt;
&lt;br /&gt;
* [[CI-TEAMS: Engineering Informatics for Bio-Inspired Robotics]]&lt;br /&gt;
&lt;br /&gt;
* [[NSF/DARPA CARGO: Computational Representations of Swept Volumes]]&lt;br /&gt;
&lt;br /&gt;
==Past Research Projects==&lt;br /&gt;
&lt;br /&gt;
* [[ITR: Computer Aided Tissue Engineering]]&lt;br /&gt;
&lt;br /&gt;
* [[ONR Process Knowledge Repositories]]&lt;br /&gt;
&lt;br /&gt;
* [[NSF CAREER]]&lt;br /&gt;
&lt;br /&gt;
* [[NSF KDI]]&lt;br /&gt;
&lt;br /&gt;
* [[NSF SGER]]&lt;br /&gt;
&lt;br /&gt;
==Papers and Presentations== &lt;br /&gt;
&lt;br /&gt;
* [[PaperDirectory|Paper Directory]]&lt;br /&gt;
&lt;br /&gt;
==Topics==&lt;br /&gt;
&lt;br /&gt;
* [[Semantic Web]]&lt;br /&gt;
&lt;br /&gt;
==Classes==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Classes|List of classes]].&lt;br /&gt;
* [[Robot Lab (Spring 2012)]]&lt;br /&gt;
* [[AI Planning - Summer 2009]]&lt;br /&gt;
&lt;br /&gt;
==Coordinated Robot Information==&lt;br /&gt;
&lt;br /&gt;
* [[CourseInfo|Robot Courses Database]]&lt;br /&gt;
* [[LearningRoomba|Educational Roomba Toolkit]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Geometric and Intelligent Computing Laboratory''&amp;lt;br&amp;gt;&lt;br /&gt;
''Department of Computer Science, Drexel University''&amp;lt;br&amp;gt;&lt;br /&gt;
''Director: Dr. William C. Regli''&lt;/div&gt;</summary>
		<author><name>T Wambold</name></author>	</entry>

	<entry>
		<id>http://gicl.cs.drexel.edu/wiki/Robot_Lab_(Spring_2012)</id>
		<title>Robot Lab (Spring 2012)</title>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki/Robot_Lab_(Spring_2012)"/>
				<updated>2012-04-20T15:10:08Z</updated>
		
		<summary type="html">&lt;p&gt;T Wambold: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Classes]]&lt;br /&gt;
&lt;br /&gt;
Under construction...&lt;/div&gt;</summary>
		<author><name>T Wambold</name></author>	</entry>

	<entry>
		<id>http://gicl.cs.drexel.edu/wiki/Robot_Lab_(Spring_2012)</id>
		<title>Robot Lab (Spring 2012)</title>
		<link rel="alternate" type="text/html" href="http://gicl.cs.drexel.edu/wiki/Robot_Lab_(Spring_2012)"/>
				<updated>2012-04-20T15:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;T Wambold: Create Robot Lab Spring 2012 page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Under construction...&lt;/div&gt;</summary>
		<author><name>T Wambold</name></author>	</entry>

	</feed>