All Projects → ntnu-arl → hfsd

ntnu-arl / hfsd

Licence: other
This is a ROS package used to detect directions of free space in enclosed areas where sensors fail to get returns

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to hfsd

roskinectic src
This ROS kinectic workspace src folder, which was created on Ubuntu 16.04. Here I worked on ROS1 projects like 2d & 3D SLAM, Motion Planning, SWARM of drone, RL based drone, Surveilling Robot etc.
Stars: ✭ 44 (+238.46%)
Mutual labels:  ros, ros-kinetic
FusionAD
An open source autonomous driving stack by San Jose State University Autonomous Driving Team
Stars: ✭ 30 (+130.77%)
Mutual labels:  ros, ros-kinetic
SASensorProcessing
ROS node to create pointcloud out of stereo images from the KITTI Vision Benchmark Suite
Stars: ✭ 26 (+100%)
Mutual labels:  ros, ros-kinetic
ROS-GPS
GPS Localization with ROS, OSM and rviz
Stars: ✭ 19 (+46.15%)
Mutual labels:  ros, ros-kinetic
summit xl sim
Packages for the simulation of the Summit XL, Summit XL HL and Summit-X (including X-WAM) robots
Stars: ✭ 32 (+146.15%)
Mutual labels:  ros, ros-kinetic
conde simulator
Autonomous Driving Simulator for the Portuguese Robotics Open
Stars: ✭ 31 (+138.46%)
Mutual labels:  ros, ros-kinetic
robotiq 2finger grippers
ROS packages enabling the control, visualization and simulation of the Robotiq 2 Fingers Adaptive Grippers model version C3
Stars: ✭ 59 (+353.85%)
Mutual labels:  ros, ros-kinetic
ros openvino
A ROS package to wrap openvino inference engine and get it working with Myriad and GPU
Stars: ✭ 57 (+338.46%)
Mutual labels:  ros, ros-kinetic
2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (+169.23%)
Mutual labels:  ros, ros-kinetic
find moving objects
A ROS library that finds moving objects and derives their position and velocity, based on 2D laser scan or 3D point cloud 2 data streams.
Stars: ✭ 23 (+76.92%)
Mutual labels:  ros, ros-kinetic
trac ik
ROS 2 port of `trac_ik`, an alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL.
Stars: ✭ 14 (+7.69%)
Mutual labels:  ros
TX2 StereoSLAM
🍀 Develop a SLAM algorithm based on ORB_SLAM2 along with TX2、ZED2、ROS and a mobile platform
Stars: ✭ 21 (+61.54%)
Mutual labels:  ros
ROS
ROS机器人操作系统 学习(写于2020年夏)
Stars: ✭ 102 (+684.62%)
Mutual labels:  ros
ROS-TCP-Connector
No description or website provided.
Stars: ✭ 123 (+846.15%)
Mutual labels:  ros
ubiquity motor
Package that provides a ROS interface for the motors in UbiquityRobotics robots
Stars: ✭ 19 (+46.15%)
Mutual labels:  ros
pc guidelines
Guidelines for using IvLabs PC. General instructions for maintaining and using any PC/laptop while using Ubuntu for Robotics/DL/RL research.
Stars: ✭ 23 (+76.92%)
Mutual labels:  ros
uav core
The main integrator of MRS UAV packages in ROS, part of the "mrs_uav_system".
Stars: ✭ 28 (+115.38%)
Mutual labels:  ros
erwhi-hedgehog
Erwhi Hedgehog main repository
Stars: ✭ 31 (+138.46%)
Mutual labels:  ros
monocular person following
Monocular camera-based person tracking and identification ROS framework for person following robots
Stars: ✭ 124 (+853.85%)
Mutual labels:  ros
RoboticsAcademy
Learn Robotics with JdeRobot
Stars: ✭ 160 (+1130.77%)
Mutual labels:  ros

HFSD

History-Aware Free Space Detection for Efficient Autonomous Exploration using Aerial Robots in ROS

Overview

This package is capable of proposing appropriate directions for exploration by utilizing a sliding-window history of the robot’s pose estimates and the depth measurements of the environment to identify the directions of probable unobservable free space in enclosed environments. More specifically, the method finds areas of sparse sensor returns near the end of the robot’s perception in the vicinity of areas with no sensor returns and determines the directions to these areas to be the probable directions of free space due to the consistency of the lack of sensor readings with the shape of the environment. In tunnel like environments, the probable direction of free space is likely to be the center of the tunnel, while in other cases it may be the center of an open room or closer to a wall that is more heavily observed by the robot’s sensors this is because we cannot assume that merely the lack of sensor readings is the same as free space. This method can be used to assist a path planner by determining the directions of probable free space for efficient exploration.

Installation

Depends on a full installation of ROS Kinetic.

  • Install and initialize ROS Kinetic desktop full, additional ROS packages, catkin-tools:
  $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
  $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
  $ sudo apt-get update
  $ sudo apt-get install ros-kinetic-desktop-full ros-kinetic-joy ros-kinetic-octomap-ros python-wstool python-catkin-tools
  $ sudo rosdep init
  $ rosdep update
  $ source /opt/ros/kinetic/setup.bash
  • Initialize catkin workspace:
  $ mkdir -p ~/catkin_ws/src
  $ cd ~/catkin_ws
  $ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
  $ catkin init  # initialize your catkin workspace
  • Get the Package
  $ cd ~/catkin_ws/src
  $ git clone https://github.com/unr-arl/hfsd.git
  • Build the workspace
  $ cd ~/catkin_ws
  $ catkin build 

Test Installation

  • Open a terminal and type the following:
  $ cd ~/catkin_ws
  $ source devel/setup.bash
  $ roslaunch hfsd hfsd_test.launch
  • In a second terminal play the test bag file included in the test directory:
  $ cd ~/catkin_ws/src/hfsd/test
  $ rosbag play test.bag
  • In Rviz load the config file found in at ../hfsd/rviz_config/hfsd_test.rviz
  • Rviz should show something similar to this:

Rviz Example

Basic Usage

Launching the Package

To launch the program:

  • Modify the launch file to the desired parameters.
  • Run the following:
  $ cd ~/catkin_ws
  $ source devel/setup.bash
  $ roslaunch hfsd hfsd.launch

Subscribed Topics

  • /cloudTransformer/inputcloud of type sensor_msgs/PointCloud2. This should be remapped to a topic that publishes point clouds. It transforms PointCloud2 messages to PCL::PointCloud<<PCL::PointXYZ>> data structures internally.
  • /hfsd/odometry of type nav_msgs/Odometry. The odometry should be in the world frame. This is used to create the sliding window of PointCloud2 messages.

Published Topics

  • /hfsd/OdomOut of type nav_msgs/Odometry. This simply shows the odometry being used by the algorithm.
  • /hfsd/open/contours of type sensor_msgs/Image This publishes a 2D image of color coded contours extracted by the algorithm. The contours also have dots on them representing their centroids.
  • /hfsd/open/image of type sensor_msgs/Image. This publishes a 2D image of the grayscale matrix that is used to determine directions of free space.
  • /hfsd/visualization_marker of type visualization_msgs/MarkerArray. This publishes the visualization of the directions of free space produced by the algorithm.
  • /hfsd/window_points of type sensor_msgs/PointCloud2. This publishes the sliding window of point clouds.

Paramaters

Parameter Description
sensor_frame The internal reference frame associated with the sensor
base_frame The chosen base_frame typically base_link
markerSkip Number of frames before next publishing on /hfsd/visualization_marker
markerMag Length of the visualization markers
markerLifetime Lifetime of the visualization markers
arrowHeadDiameter Diameter of the arrow head for the visualization markers
arrowShaftDiameter Diameter of the arrow shaft fot the visualization markers
arrowHeadLength Length of the arrow head for the visualization markers
HREZ The number of sectors that exist along the azimuth of the spherical matrix
VREZ The number of sectors that exist along the elevation of the spherical matrix
queueSize The number of consecutive point clouds aligned in the sliding window
skipFrames The number of point cloud messages to skip before adding a message to the queue
areaRestricter Filters out all found contours below this number
heightSplitter If a contour has more height than this param it will be split into parts
minDistRejFilterVal Sets spherical sectors below this number to 0
voxelSize Size of the initial voxel grid filter
uniformGrid* Enables/Disables secondary voxel grid
voxelUniformSize* Size of the secondary voxel grid
box* Enables/Disables the box filter
boxSizeX* Changes the X value of the box filter size. Must be odd or 0
boxSizeY* Changes the Y value of the box filter size. Must be odd or 0
blur* Enables/Disables the gaussian blur
blurSizeX* Changes the X value of the gaussian blur size. Must be odd or 0
blurSizeY* Changes the Y value of the gaussian blur size. Must be odd or 0
blurSigmaX* Changes the X value of the gaussian blur sigma. Must be odd or 0
blurSigmaY* Changes the Y value of the gaussian blur sigma. Must be odd or 0
median Enables/Disables the median blur
medianSize Changes the median blur size. Must be odd
intensityOffset The number that modifies intensity values for grayscale.
dilate Enables/Disables dilation
dilationIterations Number of dilations
erode* Enables/Disables erosion
erosionIterations* Number of erosions
showTiming Enable/Disable timing messages
showDebugMessages Enable/Disable debug messages

* These parameters are typically disabled and may cause unknown effects when enabled.

Contact

You can contact us for any question or remark:

Paper Associated With This Code

R. Fite, S. Khattak, D. Feil-Seifer and K. Alexis, "History-Aware Free Space Detection for Efficient Autonomous Exploration using Aerial Robots," 2019 IEEE Aerospace Conference, Big Sky, MT, USA, 2019, pp. 1-8. doi: 10.1109/AERO.2019.8742176

Support

This work was supported by the National Science Foundation (Award#: IIS-1757929)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].