{"id":16763148,"url":"https://github.com/linas/perception","last_synced_at":"2025-07-13T11:31:59.636Z","repository":{"id":24699626,"uuid":"28111007","full_name":"linas/perception","owner":"linas","description":"Perception synthesizer","archived":false,"fork":false,"pushed_at":"2016-02-19T14:02:26.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-20T10:31:17.502Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-16T23:07:17.000Z","updated_at":"2019-06-26T03:42:21.000Z","dependencies_parsed_at":"2022-08-26T07:41:07.224Z","dependency_job_id":null,"html_url":"https://github.com/linas/perception","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linas%2Fperception","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linas%2Fperception/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linas%2Fperception/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linas%2Fperception/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linas","download_url":"https://codeload.github.com/linas/perception/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225878124,"owners_count":17538400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T05:05:44.196Z","updated_at":"2024-11-22T10:14:43.706Z","avatar_url":"https://github.com/linas.png","language":"Python","readme":"Perception Synthesizer\n======================\n\nPlanned function: accept video (pi_vision) from multple sources, convert\nto 3D spatial coordinates using ros-tf.  Publish intersting events to all\nconcerned. Interesting events include:\n\n* Entry, exit of a human face in the field of view.\n* Location of the face.\n\nThere are several goals to be acheived:\n\n* Integrate multiple camera inputs. In particular, the eye cameras move\n  with the eyes, and thus have a constantly changing field-of-view,\n  whereas the body camera has an essentially fixed field-of-view.  The\n  information from these sources needs to be integrated.\n\n* Behaviour nodes that need perception information should be able to\n  to poll for it on an as-needed basis, rather than being driven by\n  a 20-frames-per-second perception updates.\n\n\n##Prerequisites\npi_vision is needed. See\n[pi_vision](https://github.com/hansonrobotics/pi_vision) for details.\n\n## Running, Testing\nThere are several ways to get things running. One way is to manually\nstart the usb camera node, and the pi_vision node, and then the\nperception node.  A simpler alternative is to use the provided launch\nfiles to do this automatically. So:\n\n### Single (body) camera startup\nJust run the launch files.  You may want to adjust single-cam.launch\nto match your actual webcam.\n```\nroslaunch perception tracker-single-cam.launch\nroslaunch perception geometry.launch\n```\n### Two-camera (body+eye) startup\n```\nroslaunch perception tracker.launch\nroslaunch perception geometry.launch\n```\n\n### Disable rviz visualization\nThe rviz visualizer can be disabled by saying:\n```\nroslaunch perception geometry.launch gui=false\n```\n\n### Alternative URDF files:\nAlternative URDF files can be specified by saying\n```\nroslaunch perception geometry.launch model:=other.urdf\n```\nto use the `other.urdf` file.\n\n### Manual startup\n * Make sure the usb camera is running, typically like this:\n```\nroslaunch ros2opencv usb_cam.launch\n```\n * Make sure pi_vision is running:\n```\nroslaunch pi_face_tracker face_tracker_usb_cam.launch\n```\n * Make sure that the face tracker is publishing faces:\n```\nrostopic echo /camera/face_locations\n```\n\n * Start the perception node:\n```\nrosrun perception faces_tf2_broadcaster.py\n```\n * Verify that the 3D location of the face is reasonable; launch rviz to\n   see where it is.\n```\nrosrun rviz rviz -d `rospack find perception`/rviz/faces.rviz\n```\n\n## ROS Nodes\n### faces_tf2_broadcaster\nBroadcast `/tf` data from face tracking.\n\n###### Subscribed topics\n * `camera/face_locations (pi_vision/Faces)`: Faces published by\n   pi_vision, as seen by main camera.\n * `eye_camera/face_locations (pi_vision/Faces)`:  Faces published by\n   pi_vision, as seen by eye camera.\n\n###### Params topics\n * `max_distance`: Max distance for faces from eye-camera and body\n   camera to be considered same.\n\n###### Transformations published:\n * `face_base\u003cface_id\u003e`: Face location based on body camera\n * `Face\u003cface_id\u003e`: Transformation relative to the `face_base` from eye\n   camera.\n\n###### Testing\n * Make sure you have two cameras connected:\n   - Body Camera on `/dev/video2`\n   - Eye Camera on `/dev/video1`\n * Run face tracking: `roslaunch perception tracker.launch`\n * Run the node: `roslaunch perception display.launch`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinas%2Fperception","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinas%2Fperception","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinas%2Fperception/lists"}