{"id":249,"date":"2016-11-05T20:22:43","date_gmt":"2016-11-05T20:22:43","guid":{"rendered":"http:\/\/kiphaynes.com\/wpress\/?p=249"},"modified":"2025-08-28T15:34:27","modified_gmt":"2025-08-28T15:34:27","slug":"building-a-raspberry-pi-based-3d-photometric-capture-cage","status":"publish","type":"post","link":"https:\/\/kiphaynes.com\/?p=249","title":{"rendered":"Building A Raspberry Pi Based 3D Photometric Capture Cage"},"content":{"rendered":"<p>Last month my friend Ari Shapiro (<a href=\"http:\/\/ict.usc.edu\/\">ICT<\/a>) asked me if I would like to build a portable version of the Raspberry Pi based capture cage for a research conference. Heck Yeah I would! The original physical design is based on the <a href=\"http:\/\/www.pi3dscan.com\/\">pi3dscan<\/a> system from a group called <span id=\"cloak41250\">3dmij in the <\/span>Netherlands, but this one needed to be portable and would use newer generation Raspberry pi&#8217;s.<\/p>\n<p>The system uses 104 Raspberry pis, with 100 of them containing cameras and the other 4 connected to projectors to cast patterns on the subject for more accurate geometry detection. The cage will be using the newer Raspberry Pi 3 Model B.<\/p>\n<p>The newer Raspberry Pi 3 Model B had to be configured from scratch, as disc image from the B+ Pi&#8217;s wouldn&#8217;t boot on this device. I used the latest stable version of Raspbian (4.4). A few of the startup scripts had to be changed due to the newer method of setting a static ip.\u00a0 The new dhcpcd daemon is\u00a0 bit different from any linux based system I&#8217;ve seen. The startup script reads a text file from a top level windows accessible directory on the memory card and sets the IP on boot.<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161010_212840.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-266\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161010_212840-1024x768.jpg\" alt=\"img_20161010_212840\" width=\"1024\" height=\"768\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161010_212840-1024x768.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161010_212840-300x225.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161010_212840-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>To make the unit portable and simple, yet still affordable, I made several changes to the design. First was the mounting of the pi&#8217;s and cameras. The test setup used a custom 3D printed holder for the camera and exposed Pi board:<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160826_121001.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-257\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160826_121001-1024x768.jpg\" alt=\"img_20160826_121001\" width=\"1024\" height=\"768\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160826_121001-1024x768.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160826_121001-300x225.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160826_121001-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>However, the pi board needed more protection and the camera needed more flexibility in adjustment. I came up with this design using the default pi case, a universal camera ball mount and a bolt:<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160912_144542.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-258\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160912_144542-1024x768.jpg\" alt=\"img_20160912_144542\" width=\"1024\" height=\"768\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160912_144542-1024x768.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160912_144542-300x225.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160912_144542-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>I ended up hot gluing the camera directly to the case. It worked great!<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160912_144611.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-259\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160912_144611-1024x768.jpg\" alt=\"img_20160912_144611\" width=\"1024\" height=\"768\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160912_144611-1024x768.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160912_144611-300x225.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160912_144611-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>I also needed to simplify the power delivery to the pi&#8217;s. The original design called for the use of an external power supply to to be mounted near each of the three switches and then use two spare lines in the ethernet cable to transmit the DC 5 volts to the Pi.<\/p>\n<figure id=\"attachment_254\" aria-describedby=\"caption-attachment-254\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/cable.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-254 size-large\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/cable-1024x768.jpg\" alt=\"cable\" width=\"1024\" height=\"768\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/cable.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/cable-300x225.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/cable-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-254\" class=\"wp-caption-text\">Cool idea but who wants to strip 108 cables like this! Not me!<\/figcaption><\/figure>\n<p>No need for this when you have high wattage POE switches available.<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161020_130536.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-256\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161020_130536-768x1024.jpg\" alt=\"img_20161020_130536\" width=\"768\" height=\"1024\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161020_130536-768x1024.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161020_130536-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p>I used three Netgear GS752TP POE switches (High wattage version) mounted into a shock case along with readily available USB mini 5V POE splitters to create a much cleaner and simple method to power the pi&#8217;s. I was a little worried that the switch wouldn&#8217;t handle the load but there were no issues during testing.<\/p>\n<figure id=\"attachment_267\" aria-describedby=\"caption-attachment-267\" style=\"width: 768px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161012_193352.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-267\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161012_193352-768x1024.jpg\" alt=\"Load testing the POE switches.\" width=\"768\" height=\"1024\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161012_193352-768x1024.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161012_193352-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><figcaption id=\"caption-attachment-267\" class=\"wp-caption-text\">Load testing the POE switches.<\/figcaption><\/figure>\n<p>Loading software and assembling all those Pi&#8217;s was quite a task. My son River helped me out here.<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161001_145446.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-268\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161001_145446-768x1024.jpg\" alt=\"img_20161001_145446\" width=\"768\" height=\"1024\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161001_145446-768x1024.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161001_145446-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><br \/>\nThe next issue is mounting. The present design used two layers of wood in an oval pattern with a threaded flange bases, metal inserts, small non collapsable poles and some plastic tubing to hold it all together. This setup needed to ship in 3&#8242; containers, so we needed to go with collapsible posts and a lighter\/smaller base system. I took the CAD files from the original design and removed one layer, moved the joints to more appropriate locations, created equal camera pole spacing and added independent mounts for the lights.<\/p>\n<figure id=\"attachment_262\" aria-describedby=\"caption-attachment-262\" style=\"width: 739px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/cad.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-262\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/cad.jpg\" alt=\"New Baseplate system.\" width=\"739\" height=\"745\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/cad.jpg 739w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/cad-150x150.jpg 150w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/cad-298x300.jpg 298w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/cad-120x120.jpg 120w\" sizes=\"auto, (max-width: 739px) 100vw, 739px\" \/><\/a><figcaption id=\"caption-attachment-262\" class=\"wp-caption-text\">New Baseplate system.<\/figcaption><\/figure>\n<p>I&#8217;ve been looking for an excuse to learn CAD for a while, so this was a great opportunity! I can definitely handle 2D drawings for cutaways now. I&#8217;ll have to do something in 3D soon in CAD too.<\/p>\n<p>My friend Brent at the <a href=\"http:\/\/toyshoppesystems.com\/\">Toy Shop<\/a> suggested using speedrail mounts. They worked out very well. However, the cad files from McMaster-Carr were off scale.<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161011_232344.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-263\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161011_232344-1024x768.jpg\" alt=\"img_20161011_232344\" width=\"1024\" height=\"768\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161011_232344-1024x768.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161011_232344-300x225.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161011_232344-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\n<\/a><\/p>\n<p>I had the aluminum plates water jetted locally. They were beautiful!<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161013_160922.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-264\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161013_160922-768x1024.jpg\" alt=\"img_20161013_160922\" width=\"768\" height=\"1024\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161013_160922-768x1024.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161013_160922-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p>Here are the poles and plates being mounted for testing..<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161021_165319.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-265\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161021_165319-768x1024.jpg\" alt=\"img_20161021_165319\" width=\"768\" height=\"1024\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161021_165319-768x1024.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161021_165319-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p>Since all the switches were located in one location, I had to make some cable assemblies of various lengths. Needless to say I got pretty fast at terminating Cat6.<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161021_165309.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-269\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161021_165309-768x1024.jpg\" alt=\"img_20161021_165309\" width=\"768\" height=\"1024\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161021_165309-768x1024.jpg 768w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161021_165309-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/p>\n<p>A couple of test scans&#8230;<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161021_135910.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-270\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161021_135910-1024x877.jpg\" alt=\"img_20161021_135910\" width=\"1024\" height=\"877\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161021_135910-1024x877.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161021_135910-300x257.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161021_135910-768x657.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160826_125012.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-271\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20160826_125012-1024x935.jpg\" alt=\"img_20160826_125012\" width=\"1024\" height=\"935\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160826_125012-1024x935.jpg 1024w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160826_125012-300x274.jpg 300w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20160826_125012-768x701.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>And the (nearly) finished product. Notice the LED strips have their own stands. We also added some overhead cameras to better capture the top of the head. It all worked out nicely! The entire system packed nicely into about 5 pelican cases and is ready for the road!<\/p>\n<p><a href=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161102_231002.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-250\" src=\"https:\/\/kiphaynes.com\/wpress\/wp-content\/uploads\/2016\/11\/IMG_20161102_231002-904x1024.jpg\" alt=\"img_20161102_231002\" width=\"904\" height=\"1024\" srcset=\"https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161102_231002-904x1024.jpg 904w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161102_231002-265x300.jpg 265w, https:\/\/kiphaynes.com\/wp-content\/uploads\/2016\/11\/IMG_20161102_231002-768x870.jpg 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><\/a><\/p>\n<p>Please feel free to contact me if you would like the updated CAD files or other information on this customized version.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last month my friend Ari Shapiro (ICT) asked me if I would like to build a portable version of the Raspberry Pi based capture cage for a research conference. Heck Yeah I would! The original physical design is based on the pi3dscan system from a group called 3dmij in the Netherlands, but this one needed<\/p>\n<p><span class=\"xf__dots\">&#8230;<\/span><a class=\"xf__more xf__button\" href=\"https:\/\/kiphaynes.com\/?p=249\">Read More<\/a><\/p>\n","protected":false},"author":2,"featured_media":296,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4,2],"tags":[],"class_list":["post-249","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fun","category-learn","category-technology","xf__entry"],"_links":{"self":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts\/249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=249"}],"version-history":[{"count":6,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts\/249\/revisions"}],"predecessor-version":[{"id":629,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/posts\/249\/revisions\/629"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=\/wp\/v2\/media\/296"}],"wp:attachment":[{"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kiphaynes.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}