[ROS package] M1 group proyect
In collaboration with Mahmoud Ali
The aim of this project is to perform localization using an Extended Kalman Filter (EKF) and beacons as visual markers. Detailed information can be found in the PDF report.
- ROS kinect
- C++
- LaTeX
- Turtlebot 2
- Omni 60 (omnidirectional camera capruting 360° panoramic images at 60Hz)
image_rectifier
rectifies images published by camera (Omni 60)
- Subscribes to
camera_info
: intrensic parameters and distortion coefficients required for image rectificationimage_raw
: image itself
- Publishes to
image_rect
: rectified image
image_tiles
combines 5 different images into single panoramic image (no stitching)
- Subscribes to
camera0/image_rect
: rectified image from camera0camera1/image_rect
: rectified image from camera1camera2/image_rect
: rectified image from camera2camera3/image_rect
: rectified image from camera3camera4/image_rect
: rectified image from camera4
- Publishes to
image_tiles
: resulting panoramic image
blob detector_v1
outputs distance between a beacon (blob) and the omni camera. HSV thesholding and morhological operations are used as pre-processing methods.
- Subscribes to
image
: often remapped toimage_tiles
in our case
- Publishes to
beacon_distance
: distance in cm
- Parameters
invert
: boolean variable used to determine if image should be inverted or not (useful for solving discontinuity in HSV transformation)HMin
: minimum threshold value for Hue channelHMax
: maximum threshold value for Hue channelSMin
: minimum threshold value for Saturation channelSMax
: maximum threshold value for Saturation channelSMin
: minimum threshold value for Value channelSMax
: maximum threshold value for Value channel
blob dist interface
manages the distances associated with the beacons in the scenario
- Subscribes to
blue\beacon_distance
: often remapped toimage_tiles
in our casered\beacon_distance
: often remapped toimage_tiles
in our casegreen\beacon_distance
: often remapped toimage_tiles
in our case
- Publishes to
beacon_distances
: distances in cm [blue, red, green]
odom interface
extract relevand data from the nav_msgd/Odometry
coming from the turtlebot
- Subscribes to
odom
: contains information about the 3D pose of the turtlebot
- Publishes to
odom_2D
: publishes 2D pose data (x, y, theta) and their covariance
ekf_node
implements the extended kalman filter (not fully tested)
- Subscribes to
odom2D
: contains 2D pose data (x, y, theta) and corresponding covariancebeacon_distances
: contains distances in cm [blue, red, green]
- Publishes to
robot_pose_ekf
: 2D pose estimation