{"id":257,"date":"2015-11-23T20:44:34","date_gmt":"2015-11-24T01:44:34","guid":{"rendered":"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/?page_id=257"},"modified":"2016-05-06T17:49:22","modified_gmt":"2016-05-06T21:49:22","slug":"planning-and-navigation-module-design-and-development","status":"publish","type":"page","link":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/system-information\/planning-and-navigation-module-design-and-development\/","title":{"rendered":"Planning and Navigation Module Design and Development"},"content":{"rendered":"<p style=\"text-align: justify\"><span style=\"color: #000000\">For the Fall Validation Experiment, we plan to detect the April tags mounted on the person of interest. From the depth estimate obtained from the April Tag, the robot will move towards the person and stop at a minimum distance. Following tasks have been completed in this regard:<\/span><\/p>\n<ol>\n<li style=\"text-align: justify\"><span style=\"color: #000000\"><strong>IMU and Gyro Calibration of Turtlebots<\/strong><\/span><br \/>\n<span style=\"color: #000000\"> Calibration was done using the calibration scripts part of the standard TurtleBot ROS packages. This calibration involves having each Turtle-bot perform successive steps of increasingly large in-place rotations and measuring their wheel encoder and IMU output. When finished, the calibration indicates by what number the wheel and IMU odometry outputs should be scaled in order to better match the TurtleBot\u2019s actual motion. We have performed this calibration on two TurtleBots.<\/span><\/li>\n<li style=\"text-align: center\"><span style=\"color: #000000\"><strong>April Tag detection-<\/strong><\/span><span style=\"color: #000000\">First we used the Michael Kaess C++ library for getting the proper position estimate for the April Tags. That gave us the 6 degress of freedom for the tag and its tag id. Now we have a ROS node based on this library that performs the same task and detects the tag using webcam. We referred to the light-swarm\/april_tag library for this.<a style=\"color: #000000\" href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/aptag.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-265 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/aptag-150x150.png\" alt=\"aptag\" width=\"371\" height=\"371\" \/><\/a><strong>Figure: April Tag Detection topic<\/strong><\/span><\/li>\n<li style=\"text-align: justify\"><span style=\"color: #000000\"><strong>Relative Navigation: <\/strong>The Navigation controller node that runs on the turtlebot computer, subscribes to the April Tag detection topic and gets the relative pose of the person with respect to the camera. The z-axis starts from camera towards the April Tag, while the x- axis is towards the right and y axis points downwards. The navigation controller node than tries to reduce the relative z distance and the relative yaw angle between the camera and the April tag by publishing angular z and linear x velocity to the Turtlebot. A proportional controller was used to tune smoothly from stop to acceleration to steering to stopping again. The Navigation node moves the Turtlebot towards the person wearing April Tag until the z- distance or the distance of the April tag from camera is 100 cm or 1 m and the relative yaw is close to\u00a0 zero (between -5 to +5 degrees).<\/span><\/li>\n<\/ol>\n<p style=\"text-align: justify\"><span style=\"color: #000000\"><strong>SPRING SEMESTER PROGRESS<\/strong><\/span><\/p>\n<ol>\n<li style=\"text-align: justify\"><span style=\"color: #000000\"><strong>Overhead Localization- <\/strong>After building the single system robot navigation subsystem, the swarm navigation system requires the robots to know the position of other robots. This localization will be done using global cameras mounted on the ceiling of the lab (Advanced Agents Lab). Four wide angle lens camera are mounted on T shaped wooden mounts. These cameras are 4-5 feet away from each other such that the entire lab room is covered. They are placed such that between two consecutive cameras next to each other there is an overlap region so there are no blind spots in the room. In each of these overlap regions April tags are glued to the carpet. These April Tags serve the purpose of automated external calibration of the cameras with respect to each other such that in the event of certain changes in orientation of the cameras, one just has to launch the automated calibration file to get them calibrated extrinsically. The intrinsic calibration was done when the cameras were bought by the.\u00a0\u00a0 The cameras are calibrated intrinsically and manually by members of the lab. The overhead localization node is launched every time one turns on the ros system and with it all the cameras are initialized and extrinsically calibrated. One of the April Tags glued to the ground is considered to be the global origin and all the transforms and April tag detection regardless of the camera that detects it is calculated in the frame of this origin.<a style=\"color: #000000\" href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1327.jpg\" rel=\"attachment wp-att-419\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-419 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1327-300x225.jpg\" alt=\"IMG_1327\" width=\"369\" height=\"277\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1327-300x225.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1327-768x576.jpg 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1327-1024x768.jpg 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/IMG_1327.jpg 1632w\" sizes=\"auto, (max-width: 369px) 100vw, 369px\" \/><\/a><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/strong> <strong>Figure: Overhead camera setup<\/strong><strong> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <a style=\"color: #000000\" href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-03-30-14_44_54.png\" rel=\"attachment wp-att-420\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-420 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-03-30-14_44_54-300x169.png\" alt=\"Screenshot from 2016-03-30 14_44_54\" width=\"570\" height=\"321\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-03-30-14_44_54-300x169.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-03-30-14_44_54-768x432.png 768w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-03-30-14_44_54-1024x576.png 1024w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-03-30-14_44_54.png 1920w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/a><\/strong><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Figure: April tags detected in common region(door region is common)<\/strong><\/span><\/li>\n<li style=\"text-align: justify\"><span style=\"color: #000000\"><strong>. <\/strong><strong>Flocking- <\/strong>The algorithm basically is based on bio\u00ad-inspired school of fishes or a flock\u00a0<\/span><span style=\"color: #000000\">of birds. The intuition is that the birds when they fly are unaware of the entire world i.e. they do not\u00a0<\/span><span style=\"color: #000000\">know the position and velocities of all the birds in the flock but only of those around them. The birds while they flock do not collide with one another, thus they may change their velocity direction when they come too close to the other bird. The birds also move around with almost same velocity. Based on these observations, Reynolds devised a model with three functions that these birds would follow. The functions are as follows. <a style=\"color: #000000\" href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/130306-birds-flocking.jpg\" rel=\"attachment wp-att-401\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-401 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/130306-birds-flocking-300x146.jpg\" alt=\"130306-birds-flocking\" width=\"300\" height=\"146\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/130306-birds-flocking-300x146.jpg 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/130306-birds-flocking.jpg 590w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Figure: Bio-Inspired flocking<\/strong><\/span><br \/>\n<span style=\"text-decoration: underline;color: #000000\"> <strong>Cohesion:<\/strong><\/span><br \/>\n<span style=\"color: #000000\"> The velocity and the trajectory of the agent in question is only affected by those near\u00a0<\/span><span style=\"color: #000000\">it. Thus we define a certain R_attract as a circular approximation to the area within which an\u00a0<\/span><span style=\"color: #000000\">agent could affect other agents velocity. In other words we only consider the agents within this\u00a0<\/span><span style=\"color: #000000\">circle with the agent in question as the center. <em>\u00a0\u00a0<\/em><\/span><\/li>\n<\/ol>\n<p><span style=\"color: #000000\"><em>Function Cohesion <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { \u00a0<\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 agent_in_Question.Vel=0; <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 For each agent != agent_In_Question <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (if dist(agent\u00adagent_In_Question)&lt; R_attract) <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 { <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 agent_In_Question.Vel+=(Agent.Vel\u00ad agent_In_Question.Vel) <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/same for y <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }}<\/em><\/span><br \/>\n<span style=\"text-decoration: underline;color: #000000\"> <strong>Repulsion:<\/strong> <\/span><br \/>\n<span style=\"color: #000000\"> To avoid colliding with each other the agents should move away from each other if\u00a0<\/span><span style=\"color: #000000\">they happen to come too close to one another. So we define a R_Repel as the safeguard\u00a0<\/span><span style=\"color: #000000\">distance within which if the agent is found then it will experience a virtual repulsion force. So for\u00a0<\/span><span style=\"color: #000000\">each agent_In_Question<\/span><\/p>\n<p><span style=\"color: #000000\"><em>Function Repulsion <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>{ <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0 For each agent!=agent_In_Question <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0 (if dist( agent\u00adagent_In_Question&lt;R_Repel)) <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0 { <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 agent_In_Question.vel= \u00ad agent.vel\u00a0\u00a0 <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\/\/opposite velocity vecotr }<\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0 <\/em><\/span><br \/>\n<span style=\"text-decoration: underline\"><strong> <span style=\"color: #000000;text-decoration: underline\">Alignment:<\/span><\/strong><\/span><br \/>\n<span style=\"color: #000000\"> In this function, if the agents are within R_attract and beyond R_Repel they tend to\u00a0<\/span><span style=\"color: #000000\">move in a similar fashion. Reynolds defined this function as each of the agent moving towards the\u00a0<\/span><span style=\"color: #000000\">center of mass of the entire flock.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/p>\n<p><span style=\"color: #000000\"><em>Function Alignment <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>{ number_of_agent=0; <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0 For each agent != agent_In_Question <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0<\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>if (dist(agent\u00ad-agent_in_Question)&gt;R_Repel &amp; dist(agent-\u00adagent_In_Question)&lt;R_Attract)) <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>{ <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0 agent_In_Question.Vel += agent.vel <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0\u00a0\u00a0 number_of_agent++ <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>} <\/em><\/span><br \/>\n<span style=\"color: #000000\"> <em>\u00a0agent_in_question\/=number_of_agent;\u00a0<\/em><\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center\"><span style=\"color: #000000\"><a style=\"color: #000000\" href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Boids-Flocks-Herds-and-Schools-a-Distributed-Behavioral-Model-.png\" rel=\"attachment wp-att-417\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-417 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Boids-Flocks-Herds-and-Schools-a-Distributed-Behavioral-Model--269x300.png\" alt=\"Boids Flocks Herds and Schools a Distributed Behavioral Model\" width=\"269\" height=\"300\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Boids-Flocks-Herds-and-Schools-a-Distributed-Behavioral-Model--269x300.png 269w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Boids-Flocks-Herds-and-Schools-a-Distributed-Behavioral-Model-.png 388w\" sizes=\"auto, (max-width: 269px) 100vw, 269px\" \/><\/a><strong>Figure: The 3 main functions that make agents flock with one another<\/strong><\/span><\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-135136-e1462557122494.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-462 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-135136-e1462557122494-300x213.png\" alt=\"Screenshot from 2016-05-06 13:51:36\" width=\"300\" height=\"213\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-135136-e1462557122494-300x213.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-135136-e1462557122494.png 379w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><span style=\"color: #000000\"><strong>\u00a0\u00a0\u00a0 Figure: Turtlebots flocking towards the person<\/strong><\/span><\/p>\n<p style=\"text-align: left\"><span style=\"color: #000000\"><strong>3. Aligning Robots around the person<\/strong><\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #000000\">In this part, as soon as the central robot reaches a distance of 1.5 meters from the person, the flocking stops and each turtlebot is independently assigned coordinates that are at -30,0 and +30 degrees about the person at 1 meter distance. Each Turtlebot then steers itself towards the respective coordinates using continuous updates from the overhead localization.<\/span><\/p>\n<p style=\"text-align: center\">\u00a0<a href=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-133908-e1462556997220.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-461 aligncenter\" src=\"http:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-133908-e1462556997220-300x220.png\" alt=\"Screenshot from 2016-05-06 13:39:08\" width=\"300\" height=\"220\" srcset=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-133908-e1462556997220-300x220.png 300w, https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-content\/uploads\/sites\/8\/2015\/11\/Screenshot-from-2016-05-06-133908-e1462556997220.png 423w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>Figure: Turtlebots aligning around the person of interest at -30 ,0 and 30 degrees<\/strong><\/p>\n<p style=\"text-align: center\">\n","protected":false},"excerpt":{"rendered":"<p>For the Fall Validation Experiment, we plan to detect the April tags mounted on the person of interest. From the depth estimate obtained from the April Tag, the robot will move towards the person and stop at a minimum distance. Following tasks have been completed in this regard: IMU and Gyro Calibration of Turtlebots Calibration<br \/><a class=\"moretag\" href=\"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/system-information\/planning-and-navigation-module-design-and-development\/\">+ Read More<\/a><\/p>\n","protected":false},"author":39,"featured_media":0,"parent":29,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-257","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/comments?post=257"}],"version-history":[{"count":13,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/257\/revisions"}],"predecessor-version":[{"id":503,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/257\/revisions\/503"}],"up":[{"embeddable":true,"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/pages\/29"}],"wp:attachment":[{"href":"https:\/\/mrsdprojects.ri.cmu.edu\/2015teamg\/wp-json\/wp\/v2\/media?parent=257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}