{"id":196,"date":"2016-10-21T21:20:18","date_gmt":"2016-10-22T01:20:18","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/?page_id=196"},"modified":"2017-04-07T20:47:14","modified_gmt":"2017-04-08T00:47:14","slug":"implementation","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/implementation\/","title":{"rendered":"<font size=\"10\" color=\"#08ad05\">Subsystem Description and Implementation<\/font>"},"content":{"rendered":"<h1>\u00a0Spring Semester Updates<\/h1>\n<p>The two major components of the project for the spring semester are the Navigation sub system and the Estimation sub system. This section covers the progress made in both the sub systems.<\/p>\n<h2>1. Navigation<\/h2>\n<h3>1.1 Advanced Base Construction<\/h3>\n<p>We choose to go with in-wheel hover board motors for the motorized upgrade of the SoyBot. The detailed trade study can be found <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1pqxeRBBHcl84IubPVkmL3gvO0Y4ex-ySlt3xx3Rromc\/edit?usp=sharing\">here<\/a>. Additionally we designed a new mount\/adapter for these motors. Next the entire assembly was integrated with the SoyBot chassis.<\/p>\n<div id=\"attachment_353\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-353\" class=\"size-full wp-image-353\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-2.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-2.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-2-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-2-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-353\" class=\"wp-caption-text\">Figure 1.1 In-wheel motors<\/p><\/div>\n<div id=\"attachment_345\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-345\" class=\"size-large wp-image-345\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Copy-of-MotorMount-1024x550.png\" alt=\"\" width=\"1024\" height=\"550\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Copy-of-MotorMount-1024x550.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Copy-of-MotorMount-300x161.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Copy-of-MotorMount-768x412.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Copy-of-MotorMount.png 1341w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-345\" class=\"wp-caption-text\">Figure 1.2 Motor Mount\/Adapter for in-wheel motors<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_369\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-369\" class=\"wp-image-369 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content.png\" alt=\"In-wheel motors mounted on the SoyBot Chasis\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-369\" class=\"wp-caption-text\"><span style=\"font-weight: 400\">Figure 1.3 The new motorized wheels have been mounted onto SoyBot with the new adapter<\/span><\/p><\/div>\n<h3>1.2 Power Train<\/h3>\n<p><span style=\"font-weight: 400\">The new drive power train is also mounted on SoyBot. Each wheel is powered by one 36V 4.4 Ah battery. Each wheel also has its own motor controller board and arduino interpreter to decode messages and interface with the main vehicle computer.<\/span><\/p>\n<div id=\"attachment_367\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-367\" class=\"size-full wp-image-367\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-2.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-2.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-2-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-2-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-367\" class=\"wp-caption-text\">Figure 1.4 Power Train for SoyBot<\/p><\/div>\n<h3>1.3 Sensors and Calibration<\/h3>\n<p><span style=\"font-weight: 400\">The two sensors that will be used for navigation have also been fully integrated with the vehicle. We are using two lidars facing at a 45 degree angle down at the row of plants to assist with high level navigation planning. The three scenarios that we will be dealing with are shown on the right. The vehicle can be partially in the row where only the front lidar is used, fully in the row where both lidars are used, and leaving the row where only the back lidar is used.<\/span><\/p>\n<div id=\"attachment_371\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-371\" class=\"size-full wp-image-371\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-3.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-3.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-3-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-3-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-371\" class=\"wp-caption-text\">Figure 1.5 Navigation Sensors for SoyBot<\/p><\/div>\n<h3>1.4 Localization<\/h3>\n<p><span style=\"font-weight: 400\">This video shows a test run of autonomous navigation with one lidar through a 6+ meter long row of plants. We are using RANSAC and additionally filtering based on the geometry of the lidar position to fit 3 lines to the rows, shown in blue. We then use these three lines to get an estimate about where the vehicle is with respect to the center row, shown as the yellow arrow.<\/span><\/p>\n<p><iframe loading=\"lazy\" width=\"1080\" height=\"608\" src=\"https:\/\/www.youtube.com\/embed\/a_ekyJrIK-o?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<h3>1.5 Controls<\/h3>\n<p><span style=\"font-weight: 400\">The main idea for this control system is to map the vehicle offset from the center row of beans, to a target orientation for the vehicle. Intuitively, this means that target orientations will be smaller angles when the vehicle is close to the center row, and larger angles when the vehicle is far away from the row. Right now the lidar is providing feedback and giving an estimated pose of the system including orientation and position with respect to the center row of plants. From the feedback of how far away the vehicle is from the center of the row, a target orientation of the vehicle is generated. At that point a traditional feedback control system is used with a proportional controller. The target (reference) orientation is compared with the actual orientation of the vehicle, and then fed to a controller to send an angular velocity command to SoyBot.<\/span><\/p>\n<div id=\"attachment_368\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-368\" class=\"size-full wp-image-368\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-1.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-1.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-1-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Navigation-and-Localization-website-content-1-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-368\" class=\"wp-caption-text\">Figure 1.6 SoyBot Control System Outline<\/p><\/div>\n<h2>2. Estimation<\/h2>\n<p>Figure 2.1 illustrates the high-level navigation architecture. The sensors array consisting of four point grey chameleon cameras (see section 1.1 in Fall semester system status) capture raw plant data. This raw data is processed and undistorted using the camera calibration model. Next the pod detection and pod tracking modules are deployed to get a pod count per camera. After we get the count per camera, we use the sensor model calibration parameters to fuse the pod counts from each individual sides (vertical integration ) followed by fusion of counts from all four cameras (Global integration).<\/p>\n<div id=\"attachment_357\" style=\"width: 557px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-357\" class=\"wp-image-357 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Estimation.jpg\" alt=\"\" width=\"547\" height=\"625\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Estimation.jpg 547w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Estimation-263x300.jpg 263w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><p id=\"caption-attachment-357\" class=\"wp-caption-text\">Figure 2.1 Estimation Architecture<\/p><\/div>\n<p>The pod detection and identification<\/p>\n<ul>\n<li>Detection &amp; Description\/Segmentation : Detect each individual soybean pod in anindividual frame<\/li>\n<li>Registration &amp; Tracking : track every individual pod across frames<\/li>\n<li>Registration &amp; Side Matching : match the pods detected from images captured by both sides of the sensors array.<\/li>\n<li>\u00a0Depth, 3D &amp; Dimensions : Get depth (2.5 D), pod dimensions and 3D reconstruction of the soybean plot.<\/li>\n<\/ul>\n<div id=\"attachment_356\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-356\" class=\"size-full wp-image-356\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-7.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-7.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-7-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-7-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-356\" class=\"wp-caption-text\">Figure 2.2 Estimation pipeline<\/p><\/div>\n<h3>2.1 Pod Detection<\/h3>\n<p>The detection module uses Histogram of Oriented Gradients (HoG) and Histogram of Hue (HoH) as the features for identifying the soybean pods. These features are normalized and fed to a Stochastic Gradient Descent Classifier to get a prediction. The prediction is clipped at a threshold (which is a hyper parameter), to get our candidate soybean pods. Next we run a local maxima search to find peaks, which depict the final detection.<\/p>\n<div id=\"attachment_374\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-374\" class=\"size-full wp-image-374\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-374\" class=\"wp-caption-text\">Figure 2.3 Pod Detection Module Results, (Left to Right) Detection Heatmap, Detected Peaks, Bounding Boxes for detected soybean pods<\/p><\/div>\n<p>The pod detection\u00a0module has five hyper parameters, viz. cell size, block size, detection threshold, min distance between detections and a Difference of Gaussian filter sigma values. \u00a0We did an initial parameter sweep for the cell and block sizes. Figure 2.4 \u00a0shows the qualitative results across these parameters for cell and block size set to 6,7,8, and 10. All the other parameters were fixed (threshold = 0.35, min distance = 5px, sigma min = 1.5 and sigma max = 2.5)The preliminary parameter sweep was essential to detect failure cases. One of the prominent failure cases observed had the soybean tip having the stalk and\/or ground in the background.<\/p>\n<div id=\"attachment_376\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-376\" class=\"size-full wp-image-376\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-1.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-1.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-1-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-1-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-376\" class=\"wp-caption-text\">Figure 2.4 Parameter sweep with cell and block size set to 6,7,8, and 10 (Left to Right)<\/p><\/div>\n<p>We also implemented a method of filtering our detections. The central idea for this approach is to eliminate duplicate detections for the same soybean pod. Figure 2.5 illustrates the result for this process. The left image highlights some of the duplicate detections while the right image shows the results after we filter the duplicate detections.\u00a0The green contours demonstrate the successful cases while the blue contour demonstrates the case where this method fails. To counter the failure cases, we added a minimum lateral distance parameter which would prevent discarding overlapping pod detections (which is one of the failure cases).<\/p>\n<div id=\"attachment_377\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-377\" class=\"size-full wp-image-377\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-3.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-3.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-3-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-3-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-377\" class=\"wp-caption-text\">Figure 2.5 Results for Refine Peaks; \u00a0Green contours: successful cases; Blue contours: Failure cases<\/p><\/div>\n<h3>2.2 Pod Tracking Module<\/h3>\n<p>The pod tracking module tracks individual pod detections across multiple frame to enable counting the soybean pods correctly. Figure 2.6 shows the results for tracking a single bounding box across multiple frames. Figure 2.7 shows the results for fusion of tracking results from the top and bottom cameras on a single side of the sensors array. The initial pod count results are illustrated in figure 2.8 (No vertical or global integration was accounted for getting this pod count).<\/p>\n<div id=\"attachment_354\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-354\" class=\"wp-image-354 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-3.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-3.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-3-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-3-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-354\" class=\"wp-caption-text\">Figure 2.6 Tracking a single soybean pod across multiple frames<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_379\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-379\" class=\"size-full wp-image-379\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-4.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-4.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-4-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-content-4-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-379\" class=\"wp-caption-text\">Figure 2.7 Pod Tracking module results, tracking multiple pods across multiple frames from 2 cameras on the same side.<\/p><\/div>\n<div id=\"attachment_380\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-380\" class=\"size-full wp-image-380\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-10.png\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-10.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-10-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-10-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-380\" class=\"wp-caption-text\">Figure 2.8 Initial Pod Count results (without vertical and global fusion)<\/p><\/div>\n<hr \/>\n<h1>Fall Semester System Status<\/h1>\n<p>Figure 1.1 outlines the work break down structure for the project based on the sub systems. As illustrated by the figure we have 5 main sub systems for the project viz. the sensor array, Mechanical Platform, Onboard Electronics, Integration and Estimation Subsystem.<\/p>\n<div id=\"attachment_280\" style=\"width: 1230px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-280\" class=\"wp-image-280 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/wbs.png\" alt=\"Figure 1.1 Current Implementation status; Green : Completed, Yellow: In progress; Red: Not Started (updated on 11\/17\/2016)Sensors Array\" width=\"1220\" height=\"708\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/wbs.png 1220w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/wbs-300x174.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/wbs-768x446.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/wbs-1024x594.png 1024w\" sizes=\"auto, (max-width: 1220px) 100vw, 1220px\" \/><p id=\"caption-attachment-280\" class=\"wp-caption-text\">Figure 1.1 Current Implementation status (Fall System); Green : Completed, Yellow: In progress; Red: Not Started<\/p><\/div>\n<h3><\/h3>\n<h2>1.Sensors Array<\/h2>\n<h3>1.1 Cameras<\/h3>\n<p>The choice of camera was based on a trade off between the following factors:<\/p>\n<ul>\n<li><span style=\"font-weight: 400\">Sensor<\/span><\/li>\n<li><span style=\"font-weight: 400\">Sensor size<\/span><\/li>\n<li><span style=\"font-weight: 400\">Resolution<\/span><\/li>\n<li><span style=\"font-weight: 400\">Pixel size<\/span><\/li>\n<li><span style=\"font-weight: 400\">Dynamic Range<\/span><\/li>\n<li><span style=\"font-weight: 400\">SNR<\/span><\/li>\n<li><span style=\"font-weight: 400\">Frame rate<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">The Lens was chosen based on the following factors:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400\">Depth of focus<\/span><\/li>\n<li><span style=\"font-weight: 400\">Field of view<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">Distortion, pixel density, footprint, trigger, total throughput were the other considerations for the choice of the cameras. Based on all these factors we chose the Point Grey Chameleon 3 cameras and the Aercont 2.8mm 1.3 MP lens. The USB 3.0 hub was chosen to support the required bandwidth of the data we need. The complete analysis can be found <a href=\"https:\/\/docs.google.com\/spreadsheets\/d\/1-59M-k3q931Mm8DNQyyREFyCPvBuNDxEB66CbsFurd8\/edit?usp=sharing\">here<\/a>.<\/span><\/p>\n<div id=\"attachment_228\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-228\" class=\"wp-image-228 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed.jpg\" alt=\"website-trial-bed\" width=\"960\" height=\"600\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed.jpg 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-300x188.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-768x480.jpg 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-228\" class=\"wp-caption-text\">Figure 1.2 Point Grey Cameras, lenses, USB Hub<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_256\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-256\" class=\"wp-image-256 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161108_144413-1024x576.jpg\" alt=\"20161108_144413\" width=\"1024\" height=\"576\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161108_144413-1024x576.jpg 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161108_144413-300x169.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161108_144413-768x432.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-256\" class=\"wp-caption-text\">Figure 1.4 USB 3.0 Hub<\/p><\/div>\n<h3>1.2 Lighting Sub System<\/h3>\n<p style=\"text-align: justify\">Based on the power constraints of our system, we chose to go ahead with led strip lightning. Three parameters were decided to make this choice viz. Lumens\/ft. , Lumens\/Watt and Lumens\/dollar. We\u00a0selected the last option because it has a very high advantage in the Lumen\/W and Lumen\/$ parameters although it isn\u2019t as bright as one of the options on the list.<\/p>\n<div id=\"attachment_281\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-281\" class=\"wp-image-281 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/lights-status.png\" alt=\"Figure 1.5 \u00a0Lightning Sub System\" width=\"960\" height=\"557\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/lights-status.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/lights-status-300x174.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/lights-status-768x446.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-281\" class=\"wp-caption-text\">Figure 1.5 \u00a0Lightning Sub System<\/p><\/div>\n<div id=\"attachment_234\" style=\"width: 778px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-234\" class=\"wp-image-234 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_181253-1-e1479489798804-768x1024.jpg\" alt=\"20161111_181253\" width=\"768\" height=\"1024\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_181253-1-e1479489798804-768x1024.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_181253-1-e1479489798804-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><p id=\"caption-attachment-234\" class=\"wp-caption-text\">Figure 1.6 Lightning Test setup with the SoyBot<\/p><\/div>\n<h3 style=\"text-align: left\">\u00a0 \u00a0 1.3 Test environment<\/h3>\n<p style=\"text-align: center\">The test environment setup for the fall semester is going to be a combination of calibration targets and soybean pods mounted on wooden stalks.<\/p>\n<div id=\"attachment_286\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-286\" class=\"wp-image-286 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/environment-status.png\" alt=\"Figure 1.7 Test Environment\" width=\"960\" height=\"556\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/environment-status.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/environment-status-300x174.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/environment-status-768x445.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-286\" class=\"wp-caption-text\">Figure 1.7 Test Environment<\/p><\/div>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-252 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/IMG_20161118_185031-1024x768.jpg\" alt=\"img_20161118_185031\" width=\"1024\" height=\"768\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/IMG_20161118_185031-1024x768.jpg 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/IMG_20161118_185031-300x225.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/IMG_20161118_185031-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Figure 1.8 Ramp setup for SoyBot Demonstration<\/p>\n<h3 style=\"text-align: left\">1.4 \u00a0Advanced Test environment<\/h3>\n<p>The advanced environment will consist of 3 rows with a single row of stalks with soybeans and 2 rows on each side of the center row with just the stalks. the total length of the test field will be 3 meters.<\/p>\n<div id=\"attachment_351\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-351\" class=\"wp-image-351 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-e1487980548509.png\" width=\"960\" height=\"540\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-e1487980548509.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-e1487980548509-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Progress-Review-8-e1487980548509-768x432.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-351\" class=\"wp-caption-text\">Advanced environment<\/p><\/div>\n<h2 style=\"text-align: left\">2. Mechanical\u00a0Platform<\/h2>\n<h3 style=\"text-align: left\">1.1 Chassis<\/h3>\n<p style=\"text-align: center\"><span style=\"font-weight: 400\">The chassis of SoyBot is built out of 80\/20 extruded aluminum for ease of assembly and reconfiguration. The general shape is an \u201cinverted U,\u201d which allows plants to move through the robot and take pictures of both sides. It will fit between standard-sized rows of soybeans and will accommodate plants up to 1.2 meters high. Electronics and the user interface will be mounted on top.<\/span><\/p>\n<div id=\"attachment_290\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-290\" class=\"wp-image-290 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/chassis-status.jpg\" alt=\"Figure 1.9 SoyBot chassis\" width=\"960\" height=\"553\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/chassis-status.jpg 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/chassis-status-300x173.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/chassis-status-768x442.jpg 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-290\" class=\"wp-caption-text\">Figure 1.9 SoyBot chassis<\/p><\/div>\n<h3 style=\"text-align: left\">2.2 Sensor Support<\/h3>\n<p style=\"text-align: left\"><span style=\"font-weight: 400\">The sensor array is supported by a vertical piece of 80\/20, which is attached to the rest of the chassis with rubber vibration dampers. The cameras are attached to the sensor support with custom mounts made on the 3D printer.<\/span><\/p>\n<div id=\"attachment_232\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-232\" class=\"wp-image-232 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-4.jpg\" alt=\"website-trial-bed-4\" width=\"960\" height=\"600\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-4.jpg 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-4-300x188.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-4-768x480.jpg 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-232\" class=\"wp-caption-text\">Figure 1.10 Sensor Support system<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_212\" style=\"width: 778px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-212\" class=\"wp-image-212 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_175956-e1479491009841-768x1024.jpg\" alt=\"20161111_175956\" width=\"768\" height=\"1024\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_175956-e1479491009841-768x1024.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_175956-e1479491009841-225x300.jpg 225w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><p id=\"caption-attachment-212\" class=\"wp-caption-text\">Figure 1.11 Camera mounting<\/p><\/div>\n<h3 style=\"text-align: left\">2.3 Simple Base<\/h3>\n<p style=\"text-align: left\"><span style=\"font-weight: 400\">For the fall semester, we are building a simple version of the base, which consists of two large pneumatic wheels in the rear and two rubber casters in the front. This will allow the vehicle to be pushed through the testing environment for the fall validation demo. A powered base with motors and steering capabilities will be used for the spring semester.<\/span><\/p>\n<div id=\"attachment_282\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-282\" class=\"wp-image-282 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/simple-base-status.png\" alt=\"Figure 1.12 Simple base for SoyBot\" width=\"960\" height=\"555\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/simple-base-status.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/simple-base-status-300x173.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/simple-base-status-768x444.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-282\" class=\"wp-caption-text\">Figure 1.12 Simple base for SoyBot<\/p><\/div>\n<h3 style=\"text-align: left\">2.4 Initial Platform<\/h3>\n<div id=\"attachment_287\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-287\" class=\"wp-image-287 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/initial-platform-status.png\" alt=\"Figure 1.14 Completely fabricated initial platform\" width=\"960\" height=\"557\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/initial-platform-status.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/initial-platform-status-300x174.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/initial-platform-status-768x446.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-287\" class=\"wp-caption-text\">Figure 1.13 Completely fabricated initial platform<\/p><\/div>\n<div id=\"attachment_215\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-215\" class=\"wp-image-215 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_181408-1024x768.jpg\" alt=\"20161111_181408\" width=\"1024\" height=\"768\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_181408-1024x768.jpg 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_181408-300x225.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/20161111_181408-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-215\" class=\"wp-caption-text\">Figure 1.14 SoyBot work in progress<\/p><\/div>\n<h3 style=\"text-align: left\"><\/h3>\n<p>&nbsp;<\/p>\n<h2 style=\"text-align: left\">3. On-board Electronics<\/h2>\n<h3 style=\"text-align: left\">3.1 \u00a0Acquisition and Storage<\/h3>\n<div style=\"text-align: left\">SoyBot will not be performing any on-board computations, but there will be a large amount of data passing through the system. The computer also needs to control the cameras and navigation sensors. Therefore, our main requirements for the on-board computer were:<\/div>\n<ul style=\"text-align: left\">\n<li>\u00a0The system will have a data rate of at least 176 MB\/s which is equivalent to four Chameleon 3 Point Grey Cameras running at 25 FPS<\/li>\n<li>\u00a0The system shall have adequate GPIO to trigger the cameras and interface with other systems if needed<\/li>\n<li>\u00a0The system will have at least 64GB of storage space for at least 5 minutes of data acquisition<\/li>\n<\/ul>\n<div style=\"text-align: left\"><\/div>\n<div style=\"text-align: left\">The Jetson TK1 with an SSD meets all of these requirements<\/div>\n<div id=\"attachment_283\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-283\" class=\"wp-image-283 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/acquisition-and-storage-status.png\" alt=\"Figure 1.15 \u00a0Nvidea Jetson\" width=\"960\" height=\"555\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/acquisition-and-storage-status.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/acquisition-and-storage-status-300x173.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/acquisition-and-storage-status-768x444.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-283\" class=\"wp-caption-text\">Figure 1.15 \u00a0Acquisition and storage system with Nvidea Jetson SBC, USB 3.0 HUB and SATA SDD<\/p><\/div>\n<h3 style=\"text-align: left\">3.2 Power Distribution<\/h3>\n<p dir=\"ltr\" style=\"text-align: left\"><strong>Assumptions\/Constraints:<\/strong><\/p>\n<ul style=\"text-align: left\">\n<li>\n<p dir=\"ltr\">Limited by Eagle CAD software for assignment<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Limited by Eagle CAD board space for assignment<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Limited by manufacturability \u00a0TH mount was mostly chosen or decent size SMD.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Limited by time, extensive research was done to find the correct regulators but the passive components were not well researched and more optimal choices might be available.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Limited by lack of knowledge of motor voltages and powers, expensive and wide range regulators were chosen for this reason.<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Limited by lack of knowledge of the end number of interfacing components. Lots of extra connectors were added and the regulators have larger current output than the minimum just in case we need more systems for navigation\/motor interfacing in the spring<\/p>\n<\/li>\n<li>\n<p dir=\"ltr\">Limited by lack of knowledge of battery voltage. The PDB is designed so that there is flexibility with the input<\/p>\n<\/li>\n<\/ul>\n<div dir=\"ltr\" style=\"text-align: left\"><\/div>\n<p dir=\"ltr\" style=\"text-align: left\"><strong>Design Reasoning<\/strong><\/p>\n<p dir=\"ltr\" style=\"text-align: left\">From the above assumptions and constraints, the general design choices were for modularity and ease of manufacturing.<\/p>\n<p dir=\"ltr\" style=\"text-align: left\"><strong>Future considerations<\/strong><\/p>\n<p style=\"text-align: left\">For future iterations with well-defined subsystems I suggest narrowing down the exact connections needed for the system and replacing the voltage regulators with cheaper, more optimal components that satisfy the predicted voltage\/current range of the system.<\/p>\n<div id=\"attachment_291\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-291\" class=\"wp-image-291 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed.png\" alt=\"Figure 1.17 Power Distribution Board Schematic\" width=\"960\" height=\"600\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-768x480.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-291\" class=\"wp-caption-text\">Figure 1.16 Power Distribution Board Schematic<\/p><\/div>\n<div id=\"attachment_263\" style=\"width: 1667px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-263\" class=\"wp-image-263 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Schematic-1.png\" alt=\"final-schematic\" width=\"1657\" height=\"835\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Schematic-1.png 1657w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Schematic-1-300x151.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Schematic-1-768x387.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Schematic-1-1024x516.png 1024w\" sizes=\"auto, (max-width: 1657px) 100vw, 1657px\" \/><p id=\"caption-attachment-263\" class=\"wp-caption-text\">Figure 1.17 Power Board Schematic<\/p><\/div>\n<div id=\"attachment_264\" style=\"width: 861px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-264\" class=\"wp-image-264 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Board.png\" alt=\"final-board\" width=\"851\" height=\"685\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Board.png 851w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Board-300x241.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/Final-Board-768x618.png 768w\" sizes=\"auto, (max-width: 851px) 100vw, 851px\" \/><p id=\"caption-attachment-264\" class=\"wp-caption-text\">Figure 1.18 Power Distribution Board<\/p><\/div>\n<div id=\"attachment_259\" style=\"width: 778px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-259\" class=\"wp-image-259 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/WhatsApp-Image-2016-11-18-at-3.00.25-AM-768x1024.jpeg\" alt=\"whatsapp-image-2016-11-18-at-3-00-25-am\" width=\"768\" height=\"1024\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/WhatsApp-Image-2016-11-18-at-3.00.25-AM-768x1024.jpeg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/WhatsApp-Image-2016-11-18-at-3.00.25-AM-225x300.jpeg 225w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/WhatsApp-Image-2016-11-18-at-3.00.25-AM.jpeg 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><p id=\"caption-attachment-259\" class=\"wp-caption-text\">Figure 1.19 Final Assembled Power Distribution Board<\/p><\/div>\n<h3 style=\"text-align: left\">3.3 Onboard (ROS) Interface<\/h3>\n<p style=\"text-align: left\">The first and lowest layer of the sensors array is defined by the PGRCamera class, an object-oriented abstraction of the flycapture SDK provided by Point Grey. It allows for easy, encapsulated programmatic control over settings, configurations, and overall behavior of any Point Grey camera (compatible with the SDK) over a USB 3.0 bus. We will not (extensively) use the images online, i.e. while the robot is moving, since we only want to store them for later use and we do not want to clutter the network bandwidth with over 200MBps of unnecessary data. The second layer of the sensors array is defined by the Grabber class, built on top of the PGRCamera class. There are multiple instances of the Grabber class during run-time, one for each camera. The purpose of a grabber is to provide a control interface for the camera to the rest of the ROS environment. After configuring itself and the camera associated with it using the parameter server, a grabber will wait for an image to be transmitted from the camera and then potentially pre-process it, save it to disk, and\/or stream it over a topic at a lower rate. The third and last layer of the sensors array is comprised by the Photographer class which is instantiated as a singleton. The photographer is responsible for triggering the cameras, either by software or by hardware.<\/p>\n<div id=\"attachment_292\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-292\" class=\"wp-image-292 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/ros-status.png\" alt=\"Figure 1.20 ROS interface layout\" width=\"960\" height=\"556\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/ros-status.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/ros-status-300x174.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/ros-status-768x445.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-292\" class=\"wp-caption-text\">Figure 1.20 ROS interface layout<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_273\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-273\" class=\"wp-image-273 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/rosgraph-1024x730.png\" alt=\"Figure 1.21 ROS Graph\" width=\"1024\" height=\"730\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/rosgraph-1024x730.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/rosgraph-300x214.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/rosgraph-768x548.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/rosgraph.png 1714w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-273\" class=\"wp-caption-text\">Figure 1.21 ROS Graph<\/p><\/div>\n<div id=\"attachment_255\" style=\"width: 738px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-255\" class=\"wp-image-255 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/connect.png\" alt=\"connect\" width=\"728\" height=\"777\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/connect.png 728w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/connect-281x300.png 281w\" sizes=\"auto, (max-width: 728px) 100vw, 728px\" \/><p id=\"caption-attachment-255\" class=\"wp-caption-text\">Figure 1.22 ROS interface for multi camera setup<\/p><\/div>\n<h2 style=\"text-align: left\">4. Integration<\/h2>\n<h3 style=\"text-align: left\">4.1 Input Visualization<\/h3>\n<p style=\"text-align: left\">Once we have collected all the images, we need a convenient way of showcasing the 3 main performance parameters we set to achieve for the FVE viz. Horizontal Overlap, Vertical Overlap and Pixel Density. Figure 1.3 presents a high level layout plan for showcasing all of these parameters.<\/p>\n<div id=\"attachment_335\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-335\" class=\"wp-image-335 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-1.png\" alt=\"Figure 1.23 Input visualization schematic\" width=\"960\" height=\"600\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-1.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-1-300x188.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/website-trial-bed-1-768x480.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-335\" class=\"wp-caption-text\">Figure 1.23 Input visualization schematic<\/p><\/div>\n<p style=\"text-align: left\">The Visualization subsystem resides on a remote computer. We are\u00a0using PYQT library \u00a0in python to create the GUI. We have 3 windows one each for the 3 parameters we want to measure. Figure 1.5 shows the window for calculating vertical overlap between two images. We have 4 cameras in our system, 2 on each side. The 2 cameras on each side have an effective vertical overlap and we want to be able to calculate the overlap. We draw 2 horizontal lines which can be dragged on the image using the slider. The idea is to match a line on both the images (vertically). As illustrated in Figure 1.3, we have 3 variables a, b &amp; c. The effective vertical overlap is given by the quantity (a + b)\/c.<\/p>\n<div id=\"attachment_293\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-293\" class=\"wp-image-293 size-large\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/vertical_overlap-1024x901.png\" alt=\"Figure 1.24 GUI for Vertical Overlap\" width=\"1024\" height=\"901\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/vertical_overlap-1024x901.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/vertical_overlap-300x264.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/vertical_overlap-768x676.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/vertical_overlap.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><p id=\"caption-attachment-293\" class=\"wp-caption-text\">Figure 1.24 GUI for Vertical Overlap<\/p><\/div>\n<p style=\"text-align: left\">Horizontal overlap is the overlap between 2 successive images captured by the same camera. Assuming that the scene doesn\u2019t change between 2 consecutive shots, horizontal overlap can be calculated using the same ratio (a + b)\/c. (see Figure 1.4). \u00a0In this window we have a choice of camera which is a simple dropdown list.<\/p>\n<div id=\"attachment_294\" style=\"width: 1010px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-294\" class=\"wp-image-294 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/horizontal_overlap.png\" alt=\"Figure 1.25 GUI for HorizontalOverlap\" width=\"1000\" height=\"778\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/horizontal_overlap.png 1000w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/horizontal_overlap-300x233.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/horizontal_overlap-768x598.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><p id=\"caption-attachment-294\" class=\"wp-caption-text\">Figure 1.25 GUI for Horizontal Overlap<\/p><\/div>\n<p style=\"text-align: left\">Pixel density is the number of pixels packed per unit area of an individual image. The user slides two parallel vertical lines on the image and inputs the actual measured \u00a0distance between the 2 lines. The GUI gives the actual density of the pixels between these 2 lines. The user can choose from the list of cameras and go back and forth between images.<\/p>\n<div id=\"attachment_295\" style=\"width: 810px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-295\" class=\"wp-image-295 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/pixel_density.png\" alt=\"Figure 1.26 GUI for displaying Pixel Density\" width=\"800\" height=\"778\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/pixel_density.png 800w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/pixel_density-300x292.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/pixel_density-768x747.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><p id=\"caption-attachment-295\" class=\"wp-caption-text\">Figure 1.26 GUI for displaying Pixel Density<\/p><\/div>\n<h2 style=\"text-align: left\">5. Estimation<\/h2>\n<h3 style=\"text-align: left\">5.1 Calibration<\/h3>\n<p style=\"text-align: left\">Camera calibration is used to find the intrinsic characteristics of the camera viz. camera matrix and distortion coefficients for the camera and lens setup. We used OpenCV for coming up with these parameters. A chess board pattern was used to do the calibration. We used multiple setups for calibration. First up a test rig was used to get the camera calibration parameters. Later we used our SoyBot setup to calibrate the 4 cameras.<\/p>\n<div id=\"attachment_284\" style=\"width: 970px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-284\" class=\"wp-image-284 size-full\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/calibration-2.png\" alt=\"Figure 1.27 Single camera calibration results\" width=\"960\" height=\"554\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/calibration-2.png 960w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/calibration-2-300x173.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-content\/uploads\/sites\/20\/2016\/10\/calibration-2-768x443.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><p id=\"caption-attachment-284\" class=\"wp-caption-text\">Figure 1.27 \u00a0Camera calibration results<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0Spring Semester Updates The two major components of the project for the spring semester are the Navigation sub system and the Estimation sub system. This section covers the progress made in both the sub systems. 1. Navigation 1.1 Advanced Base Construction We choose to go with in-wheel hover board motors for the motorized upgrade of<br \/><a class=\"moretag\" href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/implementation\/\">+ Read More<\/a><\/p>\n","protected":false},"author":72,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-196","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/pages\/196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/comments?post=196"}],"version-history":[{"count":32,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/pages\/196\/revisions"}],"predecessor-version":[{"id":382,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/pages\/196\/revisions\/382"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2016teami\/wp-json\/wp\/v2\/media?parent=196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}