This repo is the place holder for enhanced collision avoidance solution based on ROS system (highly depend on navigation stack).
iCA (short for Intelligent Collision Avoidance) addresses the main functionalities of avoiding obstacles during robot moving. intelligent shows the differentiation to the legacy collision avoidance in existing ROS navigation stack. That is, the solution adopts and enables new sensor inputs (such as range sensor, RGB-D camera sensor, etc.) to extends the ability of common navigation by such points as:
- multi-sensor fusion depend on navigation plugin mechanism.
- different collision avoidance policy, accellerated by deep learning and object tracking.
In this design, we make Navigation as a sub-component in Intelligent Collision Avoidance component. ROS Navigation stacke is adopted and updated by adding navigation plugins to address versatile sensors' input (such as sonar and RGB-D camera). Sensor Fusion sub-component gathers each kind of sensor data and fuse them under the specific needs from navigation or CA Policy. CA Policy sub-component arbitrates the suitable collision avoidance policy according to the fused sensor data. Furthermore, CA Policy, through Dynamic Reconfigure mechanism, tells navigation stack to update its global plan and local plan once the collision avoidance policy is changed. Sonar Node takes as a wrapper for sonar sensor device, who talks to sonar device and wrap sonar device data into ROS topic. Sonar data filter sub-component takes charge of sonar data correct check and filtering.
This folder holds navigation customization for turtlebot2 robot base, as well our pre-analysis result for POC robot base (say, water base) temporally.
This folder holds navigation customization for Water Robot Base robot base, as well our pre-analysis result for POC robot base (say, water robot base) temporally.
This folder holds the simple linear filtering algorithm implementation. Currently, the filtering algorithm addresses the noise of sonar input, and filters them out.
By following Intel naming clearing policy. "ca_policy" has been moved to another git repo (ros_moving_object) for opensource preparation.
This folder holds costmap2D plugins updated and/or created for AMR POC projects.
This package was verified under Ubuntu 16.04 with ROS kinectic environment.
Follow ROS Wiki and catkin tool to download related packages in your Linux machine.
NOTE: Currently for AMR POC Demo, turtlebot_navigation package is ignored for catkin_make. If you want to use turtlebot base for debugging or demo use, please remove CATKIN_IGNORE under its folder before code building first.
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.intel.com/otc-rse/AMR_ros_collision_avoidance.git
cd AMR_ros_collision_avoidance/navigation_layers
git submodule init
git submodule update
git checkout demo
cd ~/catkin_ws
catkin_make
NOTE: navigation layers's compiling depends on navigation stack. Before building it, please make sure navigation stack is already in the including paths. AMR_ros_navigation is recommended to use, in which some enhanced features are enabled.
cd ~/catkin_ws
catkin_make install
After building the workspace, source it via:
source devel/setup.bash
For security issues, please send mail to [email protected]