{"id":18743749,"url":"https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control","last_synced_at":"2025-07-31T18:04:51.990Z","repository":{"id":168633045,"uuid":"644401289","full_name":"mjlee111/pointcloud_and_imu_flipper_angle_control","owner":"mjlee111","description":"Crawler Robot Flipper control package with intel Realsense and IMU","archived":false,"fork":false,"pushed_at":"2023-07-01T10:40:15.000Z","size":269,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-28T19:46:03.521Z","etag":null,"topics":["autonomous","realsense","robocup-rescue","ros"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mjlee111.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-23T12:47:46.000Z","updated_at":"2024-05-31T12:37:42.000Z","dependencies_parsed_at":"2023-07-20T09:30:40.682Z","dependency_job_id":null,"html_url":"https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control","commit_stats":null,"previous_names":["mjlee111/pointcloud_and_imu_flipper_angle_control"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlee111%2Fpointcloud_and_imu_flipper_angle_control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlee111%2Fpointcloud_and_imu_flipper_angle_control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlee111%2Fpointcloud_and_imu_flipper_angle_control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlee111%2Fpointcloud_and_imu_flipper_angle_control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjlee111","download_url":"https://codeload.github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239627300,"owners_count":19670844,"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":["autonomous","realsense","robocup-rescue","ros"],"created_at":"2024-11-07T16:12:24.596Z","updated_at":"2025-02-19T08:38:06.799Z","avatar_url":"https://github.com/mjlee111.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flipper Angle Control With Pointcloud and IMU data\n## This package is developed to control crawler robot's flipper autonomously. Used for team RO:BIT, 2023 Robocup Rescue bordeaux.\n## The concept of this package is simple. - Calculate the angle from the object, get feedback from the IMU data, and publish the data. \n## Development Environment\n### - Ubuntu 18.04\n### - ROS melodic\n\n## REQUIREMENTS\n### realsense_filter node \n#### - Realsense SDK 2.0 \n####   https://www.intelrealsense.com/sdk-2/ : Intel realsense official site\n#### or\n```shell\nsudo apt update\nsudo apt install ros-melodic-librealsense*\n```\n#### - Realsense ros package \n```shell \nsudo apt update\nsudo apt install ros-melodic-realsense2*\n```\n\n#### - PCL ros \n```shell \nsudo apt-get install ros-melodic-pcl-ros \u0026\u0026 sudo apt-get install ros-melodic-pcl-conversions\n```\n### flipper_control_data node\n#### - QT4 build depends\n```shell\nsudo apt-get install ros-melodic-ddynamic-reconfigure \u0026\u0026 sudo apt-get install ros-melodic-qt-build\n```\n\n## How to use\n###\n```shell \nroslaunch realsense_filter realsense_flipper.launch \n```\n### Launch parameters\n#### - visuals (true/false) : rviz \u0026 flipper data UI(flipper_control_data node) available default -\u003e false\n#### - front (true/false) : front two fillper control parameter default -\u003e true\n#### - back (true/false) : back two flipper control parameter default -\u003e true\n#### - init (true/false) : auto init control parameter default -\u003e true\n\n## Package Description \n### realsense_filter \n#### This package calculates the angel from the object in the surface. Our team had to control four flippers, so I used two realsense camera(d435i) to get pointcloud data. \n![KakaoTalk_20230604_190737533](https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/assets/66550892/33506bf5-38d4-4263-b509-22351ca19d45)\n#### The input from the realsense camera is filtered to compress the raw data size, and remove the unneccesary parts. Three filters were used, descripted below.\n#### - Passthrough Filter\n![image](https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/assets/66550892/cdb386fd-8195-4826-a262-4e84d4a7528d)\n#### - Voxel Grid Filter \n![image](https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/assets/66550892/135fe60f-a172-46e9-8a47-143cff9ff9cd)\n#### - Outline Removal Filter \n![image](https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/assets/66550892/e6646897-e953-41b3-8cc0-e024c8c477fd)\n####\n#### - Three Filters at once\n![image](https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/assets/66550892/8e39d5f4-a71e-4f90-b67a-e3be5bed26f3)\n#### Using These Filters, two pointcloud raw data is splitted to four pointcloud data for flippers each.\n#### Four pointcloud data are used to calculate the angle of the object from the surface. Simple math is used in this process. \n#### atan() function returns a float data from the input. This function refers to arctangent. \n#### From the pointcloud data, a point which has the biggest Z coordinate data is founded. The Z coordinate and Y coordinate can be used as height of the object and distance from the robot each.\n#### Having Z and Y data, tangent value can be derived. Finaly, the target angle's value equals to atan(tan(angle)) = atan(tan(Y/Z)) \n#### Here is a simple image that explains the description.\n![그림1](https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/assets/66550892/2e068655-2e60-45db-bcfb-76b141eef201)\n####\n#### Back flipper simple test video without IMU feedback. (click)\n[![Video Label](http://img.youtube.com/vi/kS8Jb-Vb5oQ/0.jpg)](https://youtu.be/kS8Jb-Vb5oQ)\n#### Four flipper angle calculation test in Gazebo\n![image10](https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control/assets/66550892/d520463a-ce0e-4fed-a2f2-410af5514067)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjlee111%2Fpointcloud_and_imu_flipper_angle_control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjlee111%2Fpointcloud_and_imu_flipper_angle_control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjlee111%2Fpointcloud_and_imu_flipper_angle_control/lists"}