MoffKalast / vizanti

A mission planner and visualizer for controlling outdoor ROS robots.
https://wiki.ros.org/vizanti
BSD 3-Clause "New" or "Revised" License
145 stars 30 forks source link
flask ros ros2 rosbridge

Icon Vizanti - Web Visualizer & Mission Planner for ROS

License Build Status

Vizanti is a web-based visualization and control tool developed for more convenient operation of outdoor robots running the Robot Operating System (ROS). The application attempts to replicate RViz's orthographic 2D view as closely as possible with a smartphone friendly interface. The second goal is to allow planning and executing movement and mission commands, i.e. goals and waypoints, with custom buttons and parameter reconfigure.

Installation

As a field tool, Vizanti is designed to operate just as well without internet access, and as such the intended way is to host it on a robot, with rosbridge autoconnecting to the host IP.

cd ~/catkin_ws/src
git clone https://github.com/MoffKalast/vizanti.git
cd ..
rosdep install -i --from-path src/vizanti -y
catkin_make

Or if rosdep fails for some reason, these are the main two deps:

sudo apt install ros-noetic-rosbridge-suite ros-noetic-move-base-msgs python3-flask

Flask and Jinja2 are used for templating, rosbridge is required for socket communication.

Docker

Alternativelly, you can also containerize Vizanti. For that you need to install Docker and build the container:

git clone https://github.com/MoffKalast/vizanti.git
cd vizanti
docker build -f docker/Dockerfile -t vizanti:1.0 .

Run

roslaunch vizanti server.launch

Or with Docker:

docker run -dit --net=host --name vizanti-noetic vizanti:1.0

The web app can be accessed at http://<host_ip>:5000. Client settings are automatically saved in localStorage. The satelite imagery renderer also uses the indexedDB to store tiles for offline use (note that this is IP specific). By default the rosbridge instance also occupies port 5001.

If you're using a mobile device connected to a robot's hotspot that doesn't have internet access, make sure to turn off mobile data. This will prevent Android from sending packets to the wrong gateway.

Check the wiki for usage and configuration instructions, as well as feature and compatibility info.

Contributing

Please see Contributing.md for more information.