Create panoramas using image snapshots or multiple video streams.

Hugin Panorama

Panorama by Senza Senso (cc).

Hugin photo stitching tool is used to automatically stitch panoramas. Specifically, the Hugin command line tools.

Quick Start

1. Install:

$ sudo apt-get install ros-kinetic-hugin-panorama hugin-tools enblend

2. Launch node:

$ roslaunch hugin_panorama hugin_panorama.launch image:=/image_topic

3. Save individual images for input to the panorama: (order doesn't matter)

$ rosservice call /hugin_panorama/image_saver/save
# change angle of camera
$ rosservice call /hugin_panorama/image_saver/save
# repeat as many times as you like...

4. Stitch the panorama:

$ rosservice call /hugin_panorama/stitch

5. View resulting panorama:

$ rqt_image_view /hugin_panorama/panorama/compressed
# or open the panorama file
$ roscd hugin_panorama; eog ./images/output.png

6. Start again:

$ rosservice call /hugin_panorama/reset

This command will clear the images waiting to be stitched so you can start collecting images for an entirely new panorama.

Live Panorama Mode

If you have more than one camera on your robot and you want to stitch them together repetitively in a loop, then use stitch_loop.launch. However, expect a slow frame rate of less than 1 Hz because this package is not optimized for speed (pull requests welcome).

1. Launch the stitch_loop node:

$ roslaunch hugin_panorama stitch_loop.launch image1:=/image_topic2 image2:=/image_topic2

2. View resulting live panorama:

$ rqt_image_view /hugin_panorama/panorama/compressed

If you have more than two cameras then you'll have to edit the simple python script (rosed hugin_panorama stitch_loop.py) and the launch file (rosed hugin_panorama stitch_loop.launch).



Published Topics

panorama/compressed (sensor_msgs/CompressedImage)
  • The resulting panorama.


stitch (std_srvs/Empty)
  • Create the panorama.
reset (std_srvs/Empty)
  • Clear images waiting to be stitched.


~images_path (string, default: "$(find hugin_panorama)/images")
  • This is the working directory where input and output images for the panorama are stored.


This node provided by the image_view package allows you to save images as jpg/png file from a sensor_msgs/Image topic. The saved images are used when stitching the panoramas. The image_saver node should save images to the same location that the hugin_panorama node will look in when stitching. See hugin_panorama.launch for a proper usage example. See the image_saver wiki for full node documentation.

Wiki: hugin_panorama (last edited 2017-08-12 16:09:17 by Daniel Snider)