https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control
Crawler Robot Flipper control package with intel Realsense and IMU
https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control
autonomous realsense robocup-rescue ros
Last synced: 2 months ago
JSON representation
Crawler Robot Flipper control package with intel Realsense and IMU
- Host: GitHub
- URL: https://github.com/mjlee111/pointcloud_and_imu_flipper_angle_control
- Owner: mjlee111
- License: mit
- Created: 2023-05-23T12:47:46.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-01T10:40:15.000Z (over 2 years ago)
- Last Synced: 2024-12-28T19:46:03.521Z (9 months ago)
- Topics: autonomous, realsense, robocup-rescue, ros
- Language: C++
- Homepage:
- Size: 263 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flipper Angle Control With Pointcloud and IMU data
## This package is developed to control crawler robot's flipper autonomously. Used for team RO:BIT, 2023 Robocup Rescue bordeaux.
## The concept of this package is simple. - Calculate the angle from the object, get feedback from the IMU data, and publish the data.
## Development Environment
### - Ubuntu 18.04
### - ROS melodic## REQUIREMENTS
### realsense_filter node
#### - Realsense SDK 2.0
#### https://www.intelrealsense.com/sdk-2/ : Intel realsense official site
#### or
```shell
sudo apt update
sudo apt install ros-melodic-librealsense*
```
#### - Realsense ros package
```shell
sudo apt update
sudo apt install ros-melodic-realsense2*
```#### - PCL ros
```shell
sudo apt-get install ros-melodic-pcl-ros && sudo apt-get install ros-melodic-pcl-conversions
```
### flipper_control_data node
#### - QT4 build depends
```shell
sudo apt-get install ros-melodic-ddynamic-reconfigure && sudo apt-get install ros-melodic-qt-build
```## How to use
###
```shell
roslaunch realsense_filter realsense_flipper.launch
```
### Launch parameters
#### - visuals (true/false) : rviz & flipper data UI(flipper_control_data node) available default -> false
#### - front (true/false) : front two fillper control parameter default -> true
#### - back (true/false) : back two flipper control parameter default -> true
#### - init (true/false) : auto init control parameter default -> true## Package Description
### realsense_filter
#### 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.

#### 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.
#### - Passthrough Filter

#### - Voxel Grid Filter

#### - Outline Removal Filter

####
#### - Three Filters at once

#### Using These Filters, two pointcloud raw data is splitted to four pointcloud data for flippers each.
#### Four pointcloud data are used to calculate the angle of the object from the surface. Simple math is used in this process.
#### atan() function returns a float data from the input. This function refers to arctangent.
#### 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.
#### 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))
#### Here is a simple image that explains the description.

####
#### Back flipper simple test video without IMU feedback. (click)
[](https://youtu.be/kS8Jb-Vb5oQ)
#### Four flipper angle calculation test in Gazebo
