Skip to content

Latest commit

 

History

History
72 lines (65 loc) · 3.74 KB

File metadata and controls

72 lines (65 loc) · 3.74 KB

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

sudo apt update
sudo apt install ros-melodic-librealsense*

- Realsense ros package

sudo apt update
sudo apt install ros-melodic-realsense2*

- PCL ros

sudo apt-get install ros-melodic-pcl-ros && sudo apt-get install ros-melodic-pcl-conversions

flipper_control_data node

- QT4 build depends

sudo apt-get install ros-melodic-ddynamic-reconfigure && sudo apt-get install ros-melodic-qt-build

How to use

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.

KakaoTalk_20230604_190737533

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

image

- Voxel Grid Filter

image

- Outline Removal Filter

image

- Three Filters at once

image

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.

그림1

Back flipper simple test video without IMU feedback. (click)

Video Label

Four flipper angle calculation test in Gazebo

image10