Author: Shreyas Manjunath
VID_SIP is a UAV path planning algorithm. It uses triangulated mesh (.stl) file as input and samples the viewpoints around the object and an optimized tour is generated using Traveling Salesman Problem (TSP) solver. It is a ROS-based implementation that provides the output as an usable Viewpoint list rostopic and a text file is also written out for using the tour file on different platforms.
Supports only Rotorcraft models.
VID_SIP is a code base developed as part of Master Thesis work of the author.
- Ubuntu 18.04 (Tested on)
- Robot Operating System (ROS) melodic
- Eigen3 package
- CMake 3.14 or higher
- qpOASES [1] or SIP/optec [SIP]
- Google OR tools
- Install Robot Operating System as per thier official documentation. [ROS]
- Setup the ROS workspace using catkin_tools.
- Install Eigen3 library using the following command.
$ sudo apt install libeigen3-dev
-- For higher versions of Eigen3 library, refer to Eigen3 official website [Eigen3] to install it from the source.
- Verify if CMake version is 3.14 or higher
- Install Google OR tools referring to the official installation page [2]. Use cmake build to generate CMake file for easy library usage.
- Clone this VID_SIP package into the ROS workspace src folder.
- Clone the qpOASES library for quadratic problem optimization, and add it into as a folder ’optec’ inside VID_SIP directory.
$ git clone https://github.com/coin-or/qpOASES
----VID_SIP
|___ planner_node
|___ request_client_node
|___ *optec*
OR
- Get the library from the SIP/optec [SIP] folder as it is.
- Build the package using the following command.
$ cd ~/<Your ROS Workspace>/
$ catkin build planner_node
$ catkin build request_client_node
- Add your mesh inside request_client_node/meshes directory. The mesh file (.stl) should be strictly ASCII format.
- A settings file available to set the parameters to the planner and request client. Use accordingly.
- Launch file, planner_node.launch under planner_node/launch is used to launch planner_node, request_client_node and RVIZ visualization together. Use the following command to launch the node.
$ roslaunch planner_node planner_node.launch