Giter Club home page Giter Club logo

ros-gopro-driver's Introduction

ros-gopro-driver

ros-gopro-driver Artwork

This is an interface between ROS and a GOPRO camera (GOPRO 4 and above), this driver transports images from the camera using WiFi towards the ROS environment, publishing it as a ROS image topic, leaving it usable for any further process.

Quickstart (Linux)

These steps describe the process of compiling the ROS driver, connecting the GoPro, and viewing the video stream over a ROS topic. Ubuntu 18.04 (Bionic Beaver) was used to write this, but the steps are expected to be fairly general. These steps are confirmed for GOPRO Hero versions 4 and 5.

Install ROS

If you do not already have ROS installed, follow the ROS officials insructions.

Install the rospkg python module.

Python (python 2.7) is almost certainly installed by default, but the installation steps for ROS might not include the rospkg module.

pip install rospkg

Setup catkin workspace for compiling ROS packages.

If you continued the sequence of ROS tutorials past installation, you already setup a catkin workspace. Otherwise, follow ROS officials insructions.

The typical path to your catkin workspace path is ~/catkin_ws. Since you can setup catkin anywhere, the following steps will use $CATKIN_PATH to refer to your catkin workspace path.

Download and install ros-gopro-driver.

cd $CATKIN_PATH/src/
git clone https://github.com/TOTON95/ros-gopro-driver.git
cd ..
catkin_make

Connect computer's WiFi to GoPro.

On the GOPRO, enable WiFi connections in settings. There will be a menu item to find the GOPRO's WiFi network ID and password. On the computer, connect to that WiFi network.

Launch the ros-gopro-driver node.

roslaunch ros-gopro-driver gopro_5.launch

If the camera is connected over WiFi, the driver should connect after a few seconds, and the console output show that the frames are being recieved.

Example output:

[ INFO] [1613796372.141513528]: Frame: 10039 Bytes decoded 7023 check 1

[ INFO] [1613796372.182556570]: Frame: 10040 Bytes decoded 6028 check 1

[ INFO] [1613796372.228475522]: Frame: 10041 Bytes decoded 8986 check 1

View the stream using rqt_image_view.

  rqt_image_view /gopro_5/gopro_out

If there are no issues, you will see the GOPRO stream!

Node's ROS topics

  • gopro_out: topic that contains the streaming GOPRO frames
  • gp_shutter: topic that activates the GOPRO shutter/start video command
  • gp_stop: topic that stops the GOPRO recording

Note: Currently, this interface is only capable of work with GOPRO 4 and 5. More cameras with their respective configuration files are going to be added in the future.

Known issues: There is some delay between the camera and the image being published, this driver is built with the best way found to reduce it and sacrificing the absence of some image errors, so far it can achieve a performance similar to the stock application from GOPRO itself, hopefully this is not the lowest delay possible. So it is recommendable to use it as a video logging tool, unless your application does not depend on real-time video feed or your strategy is robust enough to tackle the delay drawbacks.

ros-gopro-driver's People

Contributors

ekrell avatar toton95 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ros-gopro-driver's Issues

Create support for ROS2

This driver is scheduled to be migrated no later than the end of the year. ๐Ÿ™Œโ˜•

Suggestions can be placed at this issue.

Connect to multiple goPros simultanously.

Hey, thank you for the awesome work.

Wondering if is possible to use this package to connect to multiple gopros simultaneously?

If this isn't possible, what would be the best way of implementing this feature?

Add BLE support for new cameras

Adding BLE support might help to be fully compatible with newer GoPro Cameras and use less energy.

Scheduled for winter holidays

Stream resolution

Is there any way to increase the quality of the stream? Or should I switch from Wifi to Usb C? What changes are then required?
Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.