Skip to content

mjlee111/pointcloud_and_imu_flipper_angle_control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Crawler Robot Flipper control package with intel Realsense and IMU

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published