Table of contents generated with markdown-toc
InSitu is an extensible situational awareness platform that organizes ROS image
streams in a grid layout and applys overlays to create complex HUD interfaces
for robot teleoperation and supervision. These overlays are created through
user-created plugins called filters
, but first time users are encouraged to
check out the list of available filters to get started
without needing to write any code themselves. InSitu was inspired by Guy
Zaidner's work at the
Nuclear and Applied Robotics Group at the
University of Texas at Austin and built on ROS pluginlib, Qt5, OpenCV, and
jsoncpp.
InSitu is not packaged for ROS yet so new users will have to build from from source.
First, ensure that you've installed ROS Noetic and rosdep
following the ROS wiki. Then,
create a new catkin workspace and clone the repository into the src
directory.
mkdir -p catkin_ws/src && cd catkin_ws
catkin build
source devel/setup.bash
cd src
git clone git@github.com:PaperFanz/insitu.git
Next, install any dependencies by running the following from the top directory of your catkin workspace:
# in catkin_ws:
rosdep install --from-paths . --ignore-src -r -y
Finally, build the packages:
catkin build
To run InSitu, start roscore
in a separate terminal and start some nodes that
publish image topics, such as usb_cam. Then,
run InSitu using rosrun insitu insitu
.
For a comprehensive list of InSitu functions and configuration options, please refer to the USER_GUIDE.md.
Curated list of tested, publicly available filter packages for InSitu.
- insitu_plugins: a set of filters included with InSitu that provides some out-of-box functionality
- iort_filters: overlays for IoT data streamed using iort_lib
There are two ways to contribute to the InSitu project, creating new filters to add custom functionality or modifying InSitu core to fix bugs and develop new features.
Those interested in creating their own filters should refer to FILTERS.md to get started with the filter creation script that generates the necessary boilerplate and explains the basic operation of a filter.
Found a bug or want to see your custom feature merged into InSitu core? Fork the repository, make your changes, and open a pull request. Please refer to CONTRIBUTING.md for an explanation of InSitu's program structure and more detailed contribution guidelines.
While InSitu was functionally inspired by Guy Zaider's work referenced in the description, its implementation was heavily based on RQT and RVIZ, two existing giants in the ROS Visualization application sphere. InSitu's plugin architecture is modeled after the great work that went into these related projects.
This project uses icons from Font Awesome: LICENSE