Giter Club home page Giter Club logo

guidance-sdk-ros's Introduction

Gudiance-SDK-ROS

The official ROS package of Guidance SDK for 32/64 bit Ubuntu and XU3.

  • We write the CMakeLists.txt file so that it automatically detects your operating system and choose the appropriate library file.
  • We suppose the users are using USB for Guidance SDK on ROS. To use UART for Guidance SDK, plese reference uart_example.

How to use

  1. Setup USB devide rules so that no root privilege is required when using Guidance SDK via USB.

     sudo sh -c 'echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"fff0\", ATTR{idProduct}==\"d009\", MODE=\"0666\"" > /etc/udev/rules.d/51-guidance.rules'
    
  2. Clone the repo to the catkin workspace source directory catkin_ws/src and then

     cd ~/catkin_ws
     catkin_make
     rosrun GuidanceRos GuidanceNode
     rosrun GuidanceRos GuidanceNodeTest
    

Documentation

To reduce the size of this package, we omit all documents.

Using ROS tools for calibration and stereo processing

(experimental node by @madratman. Ideal would be using camera_info_manager on the lines on camera1394stereo)

  • Look inside /calibration_files. A sample file for one stereo pair is provided. ROS image pipeline needs a camera_info msg which consists of the calibration parameters. GuidanceNodeCalibration is an experimental node that parses the calibration params from the YAMLs in the /calibration_files directory, publishes on the /guidance/right/camera_info and /guidance/left/camera_info topics.

  • First, you should calibrate using the camera_calibration package, and save the result to the left and right YAML in /calibration_files directory.

roslaunch GuidanceRos load_calib_file.launch  
(The launch file just sets a couple of parameters to retrieve the calibration files)

rosrun GuidanceRos GuidanceNodeCalibration  

 rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 right:=/guidance/right/image_raw left:=/guidance/left/image_raw right_camera:=/guidance/right left_camera:=/guidance/left --no-service-check
  • Follow the calibration tutorials here and here
    If you are unable to save the calibration file using the GUI, you can do it manually from the terminal output. A reference for the same is provided in the sample /calibration_files/raw_from_terminal file.

  • Alternatively if you don't want to recalibrate, you can also manually enter the current calibration params in the YAML, which you would have from using the DJI Windows utility for Guidance. The same is printed out in the terminal from either node - the official GuidanceNode or the experimental GuidanceNodeCalibration.

  • Now that calibration is done, or you chose to use enter the pre-existing params in the YAMLs, we can use stereo_image_proc and play around to view and improve the disparity and point cloud in RViz.
    We can use the dynamic reconfigure GUI to change the stereo algo used and its params as explained in this tutorial.

ROS_NAMESPACE=guidance rosrun stereo_image_proc stereo_image_proc _approximate_sync:=True
rosrun image_view stereo_view stereo:=guidance image:=image_rect_color
rosrun rqt_reconfigure rqt_reconfigure
rosrun rviz rviz Change frame to "guidance". Add published point cloud pc2.

guidance-sdk-ros's People

Watchers

 avatar  avatar

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.