Skip to content

Commit

Permalink
Merge pull request #1522 from fspindle/fix_opencv_5.x
Browse files Browse the repository at this point in the history
Fix compat with opencv 5.x
  • Loading branch information
fspindle authored Dec 17, 2024
2 parents 96a05ed + 2e79d60 commit bbb1d8e
Show file tree
Hide file tree
Showing 160 changed files with 2,686 additions and 1,827 deletions.
18 changes: 1 addition & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1214,25 +1214,9 @@ if(USE_LIBFREENECT AND USE_LIBUSB_1 AND USE_THREADS)
endif()
endif()

# check OpenCV nonfree modules and version
# OpenCV version
if(USE_OPENCV)
set(VISP_HAVE_OPENCV_VERSION "(${OpenCV_VERSION_MAJOR}<<16 | ${OpenCV_VERSION_MINOR}<<8 | ${OpenCV_VERSION_PATCH})") # for vpConfig.h
if(OpenCV_VERSION)
if(OpenCV_VERSION VERSION_LESS "2.4.0")
message(STATUS "opencv nonfree module found")
set(VISP_HAVE_OPENCV_NONFREE TRUE) # for header vpConfig.h
elseif(OPENCV_NONFREE_FOUND) # OpenCV < 3.0.0
message(STATUS "opencv xfeatures2d module found")
set(VISP_HAVE_OPENCV_NONFREE TRUE) # for header vpConfig.h
elseif(OPENCV_XFEATURES2D_FOUND) # OpenCV >= 3.0.0
set(VISP_HAVE_OPENCV_XFEATURES2D TRUE) # for header vpConfig.h
else()
message(STATUS "opencv nonfree or xfeature2d module not found")
endif()
else()
message(STATUS "opencv nonfree not found")
set(VISP_HAVE_OPENCV_VERSION "(0)") # for vpConfig.h
endif()
endif()

# coin and gui
Expand Down
2 changes: 1 addition & 1 deletion apps/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#############################################################################
#
# ViSP, open source Visual Servoing Platform software.
# Copyright (C) 2005 - 2023 by Inria. All rights reserved.
# Copyright (C) 2005 - 2024 by Inria. All rights reserved.
#
# This software is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
Expand Down
2 changes: 1 addition & 1 deletion apps/calibration/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ if(VISP_HAVE_UR_RTDE)
list(APPEND apps_cpp visp-acquire-universal-robots-calib-data.cpp)
endif()

file(GLOB apps_data "*.yaml" "*.py" "camera.xml" "*.png")
file(GLOB apps_data "*.yaml" "*.py" "camera.xml" "*.jpg")

foreach(cpp ${apps_cpp})
visp_add_app(${cpp})
Expand Down
Binary file added apps/calibration/image-1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-1.png
Binary file not shown.
Binary file added apps/calibration/image-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-2.png
Binary file not shown.
Binary file added apps/calibration/image-3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-3.png
Binary file not shown.
Binary file added apps/calibration/image-4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-4.png
Binary file not shown.
Binary file added apps/calibration/image-5.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-5.png
Binary file not shown.
Binary file added apps/calibration/image-6.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-6.png
Binary file not shown.
Binary file added apps/calibration/image-7.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-7.png
Binary file not shown.
Binary file added apps/calibration/image-8.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed apps/calibration/image-8.png
Binary file not shown.
53 changes: 32 additions & 21 deletions apps/calibration/visp-compute-chessboard-poses.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* ViSP, open source Visual Servoing Platform software.
* Copyright (C) 2005 - 2023 by Inria. All rights reserved.
* Copyright (C) 2005 - 2024 by Inria. All rights reserved.
*
* This software is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -36,9 +36,14 @@

#include <visp3/core/vpConfig.h>

#if defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_CALIB3D) && defined(VISP_HAVE_PUGIXML)
#if defined(VISP_HAVE_PUGIXML) && defined(HAVE_OPENCV_IMGPROC) && defined(HAVE_OPENCV_HIGHGUI) && \
(((VISP_HAVE_OPENCV_VERSION < 0x050000) && defined(HAVE_OPENCV_CALIB3D)) || ((VISP_HAVE_OPENCV_VERSION >= 0x050000) && defined(HAVE_OPENCV_CALIB)))

#if defined(HAVE_OPENCV_CALIB3D)
#include <opencv2/calib3d/calib3d.hpp>
#elif defined(HAVE_OPENCV_CALIB)
#include <opencv2/calib.hpp>
#endif
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
Expand Down Expand Up @@ -101,7 +106,7 @@ void usage(const char **argv, int error)
<< std::endl
<< " --input <input images path> Generic name of the images to process." << std::endl
<< " Default: empty" << std::endl
<< " Example: \"image-%d.png\"" << std::endl
<< " Example: \"image-%d.jpg\"" << std::endl
<< std::endl
<< " --intrinsic <Camera intrinsic parameters xml file> XML file that contains" << std::endl
<< " camera parameters. " << std::endl
Expand All @@ -120,6 +125,11 @@ void usage(const char **argv, int error)
#endif
<< " --help, -h Print this helper message." << std::endl
<< std::endl;
std::cout << "Example" << std::endl
<< " "
<< argv[0]
<< " --input image-%d.jpg" << std::endl
<< std::endl;
if (error) {
std::cout << "Error" << std::endl
<< " "
Expand All @@ -140,32 +150,25 @@ int main(int argc, const char **argv)

for (int i = 1; i < argc; i++) {
if (std::string(argv[i]) == "-w" && i + 1 < argc) {
opt_chessboard_width = atoi(argv[i + 1]);
i++;
opt_chessboard_width = atoi(argv[++i]);
}
else if (std::string(argv[i]) == "-h" && i + 1 < argc) {
opt_chessboard_height = atoi(argv[i + 1]);
i++;
opt_chessboard_height = atoi(argv[++i]);
}
else if (std::string(argv[i]) == "--square-size" && i + 1 < argc) {
opt_chessboard_square_size = atof(argv[i + 1]);
i++;
opt_chessboard_square_size = atof(argv[++i]);
}
else if (std::string(argv[i]) == "--input" && i + 1 < argc) {
opt_input_img_files = std::string(argv[i + 1]);
i++;
opt_input_img_files = std::string(argv[++i]);
}
else if (std::string(argv[i]) == "--intrinsic" && i + 1 < argc) {
opt_intrinsic_file = std::string(argv[i + 1]);
i++;
opt_intrinsic_file = std::string(argv[++i]);
}
else if (std::string(argv[i]) == "--output" && i + 1 < argc) {
opt_output_pose_files = std::string(argv[i + 1]);
i++;
opt_output_pose_files = std::string(argv[++i]);
}
else if (std::string(argv[i]) == "--camera-name" && i + 1 < argc) {
opt_camera_name = std::string(argv[i + 1]);
i++;
opt_camera_name = std::string(argv[++i]);
}
#if defined(VISP_HAVE_MODULE_GUI)
else if (std::string(argv[i]) == "--no-interactive") {
Expand Down Expand Up @@ -213,7 +216,6 @@ int main(int argc, const char **argv)
std::cout << " Output camera poses : " << opt_output_pose_files << std::endl;
std::cout << " Interactive mode : " << (opt_interactive ? "yes" : "no") << std::endl << std::endl;


#if defined(VISP_HAVE_MODULE_GUI)
vpDisplay *display = nullptr;
if (opt_interactive) {
Expand All @@ -228,7 +230,7 @@ int main(int argc, const char **argv)
#elif defined(VISP_HAVE_GTK)
display = new vpDisplayGTK(I);
#endif
}
}
#endif

std::vector<vpPoint> corners_pts;
Expand Down Expand Up @@ -339,7 +341,7 @@ int main(int argc, const char **argv)
}
}
#endif
}
}
catch (const vpException &e) {
std::cout << "Catch an exception: " << e.getMessage() << std::endl;
}
Expand All @@ -349,9 +351,18 @@ int main(int argc, const char **argv)
#else
int main()
{
#if !(defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_CALIB3D))
#if !defined(HAVE_OPENCV_IMGPROC)
std::cerr << "OpenCV imgproc module is requested to run the calibration." << std::endl;
#endif
#if !defined(HAVE_OPENCV_HIGHGUI)
std::cerr << "OpenCV highgui module is requested to run the calibration." << std::endl;
#endif
#if (VISP_HAVE_OPENCV_VERSION < 0x050000) && !defined(HAVE_OPENCV_CALIB3D)
std::cerr << "OpenCV calib3d module is requested to run the calibration." << std::endl;
#endif
#if (VISP_HAVE_OPENCV_VERSION >= 0x050000) && !defined(HAVE_OPENCV_3D)
std::cerr << "OpenCV 3d module is requested to run the calibration." << std::endl;
#endif
#if !defined(VISP_HAVE_PUGIXML)
std::cout << "pugixml built-in 3rdparty is requested to run the calibration." << std::endl;
#endif
Expand Down
3 changes: 1 addition & 2 deletions cmake/templates/VISPConfig.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -240,11 +240,10 @@ set(VISP_HAVE_OGRE "@VISP_HAVE_OGRE@")
set(VISP_HAVE_OIS "@VISP_HAVE_OIS@")
set(VISP_HAVE_OPENBLAS "@VISP_HAVE_OPENBLAS@")
set(VISP_HAVE_OPENCV "@VISP_HAVE_OPENCV@")
set(VISP_HAVE_OPENCV_NONFREE "@VISP_HAVE_OPENCV_NONFREE@")
set(VISP_HAVE_OPENCV_VERSION "@VISP_HAVE_OPENCV_VERSION@")
set(VISP_HAVE_OPENGL "@VISP_HAVE_OPENGL@")
set(VISP_HAVE_OPENMP "@VISP_HAVE_OPENMP@")
set(VISP_HAVE_PANDA3D "@VISP_HAVE_PANDA3D@")
set(VISP_HAVE_PANDA3D "@VISP_HAVE_PANDA3D@")
set(VISP_HAVE_PARPORT "@VISP_HAVE_PARPORT@")
set(VISP_HAVE_PCL "@VISP_HAVE_PCL@")
set(VISP_HAVE_PIONEER "@VISP_HAVE_PIONEER@")
Expand Down
10 changes: 4 additions & 6 deletions cmake/templates/vpConfig.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -177,19 +177,17 @@ namespace vp = VISP_NAMESPACE_NAME;
// Defined if OpenCV available.
#cmakedefine VISP_HAVE_OPENCV

// Defined if OpenCV nonfree module available. Only with OpenCV < 3.0.0
#cmakedefine VISP_HAVE_OPENCV_NONFREE

// Defined if OpenCV xfeatures2d module available. Only since OpenCV >= 3.0.0
#cmakedefine VISP_HAVE_OPENCV_XFEATURES2D

// OpenCV version in hexadecimal (for example 2.1.0 gives 0x020100).
#ifdef VISP_HAVE_OPENCV
# define VISP_HAVE_OPENCV_VERSION ${VISP_HAVE_OPENCV_VERSION}
# include <opencv2/opencv_modules.hpp>
#endif

// For compat with previous releases
#if defined(HAVE_OPENCV_XFEATURES2D)
#define VISP_HAVE_OPENCV_XFEATURES2D
#endif

#if defined(HAVE_OPENCV_OBJDETECT)
#define VISP_HAVE_OPENCV_OBJDETECT
#endif
Expand Down
6 changes: 5 additions & 1 deletion doc/config-doxygen.in
Original file line number Diff line number Diff line change
Expand Up @@ -2400,17 +2400,21 @@ PREDEFINED = @DOXYGEN_SHOULD_SKIP_THIS@ \
VISP_HAVE_OGRE_RESOURCES_PATH \
VISP_HAVE_OIS \
VISP_HAVE_OPENCV \
VISP_HAVE_OPENCV_NONFREE \
VISP_HAVE_OPENCV_VERSION=0x030403 \
HAVE_OPENCV_3D \
HAVE_OPENCV_CALIB \
HAVE_OPENCV_CALIB3D \
HAVE_OPENCV_DNN \
HAVE_OPENCV_FEATURES \
HAVE_OPENCV_FEATURES2D \
HAVE_OPENCV_HIGHGUI \
HAVE_OPENCV_IMGCODECS \
HAVE_OPENCV_IMGPROC \
HAVE_OPENCV_OBJDETECT \
HAVE_OPENCV_VIDEO \
HAVE_OPENCV_VIDEOIO \
HAVE_OPENCV_XFEATURES2D \
HAVE_OPENCV_XOBJDETECT \
VISP_HAVE_OPENGL \
VISP_HAVE_PANDA3D \
VISP_HAVE_PARPORT \
Expand Down
16 changes: 8 additions & 8 deletions doc/tutorial/tracking/tutorial-tracking-blob.dox
Original file line number Diff line number Diff line change
Expand Up @@ -32,40 +32,40 @@ a v4l2 live camera that can be an usb camera, or a Raspberry Pi camera module.

\subsection live-firewire From a firewire live camera

The following code also available in tutorial-blob-tracker-live-firewire.cpp file provided in ViSP source code tree
The following code also available in tutorial-blob-tracker-live.cpp file provided in ViSP source code tree
allows to grab images from a firewire camera and track a blob. The initialisation is done with a user mouse click on
a pixel that belongs to the blob.

To acquire images from a firewire camera we use vp1394TwoGrabber class on unix-like systems or vp1394CMUGrabber class
under Windows. These classes are described in the \ref tutorial-grabber.

\include tutorial-blob-tracker-live-firewire.cpp
\include tutorial-blob-tracker-live.cpp

From now, we assume that you have successfully followed the \ref tutorial-getting-started and the \ref tutorial-grabber.
Here after we explain the new lines that are introduced.

\snippet tutorial-blob-tracker-live-firewire.cpp Construction
\snippet tutorial-blob-tracker-live.cpp Construction

Then we are modifying some default settings to allow drawings in overlay the contours pixels and the position of the
center of gravity with a thickness of 2 pixels.
\snippet tutorial-blob-tracker-live-firewire.cpp Setting
\snippet tutorial-blob-tracker-live.cpp Setting

Then we are waiting for a user initialization throw a mouse click event in the blob to track.
\snippet tutorial-blob-tracker-live-firewire.cpp Init
\snippet tutorial-blob-tracker-live.cpp Init

The tracker is now initialized. The tracking can be performed on new images:
\snippet tutorial-blob-tracker-live-firewire.cpp Track
\snippet tutorial-blob-tracker-live.cpp Track

\subsection live-v4l2 From a v4l2 live camera

The following code also available in tutorial-blob-tracker-live-v4l2.cpp file provided in ViSP source code tree allows
The following code also available in tutorial-blob-tracker-live.cpp file provided in ViSP source code tree allows
to grab images from a camera compatible with video for linux two driver (v4l2) and track a blob. Webcams or more
generally USB cameras, but also the Raspberry Pi Camera Module can be considered.

To acquire images from a v4l2 camera we use vpV4l2Grabber class on unix-like systems. This class is described in the
\ref tutorial-grabber.

\include tutorial-blob-tracker-live-v4l2.cpp
\include tutorial-blob-tracker-live.cpp

The code is the same than the one presented in the previous subsection, except that here we use the vpV4l2Grabber
class to grab images from usb cameras. Here we have also modified the while loop in order to catch an exception when
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ tutorials given in \ref tutorial_install_src.
Once build, to see the options that are available, just run:
\code
$ ./tutorial-mb-generic-tracker-apriltag-webcam --help
Usage: ./tutorial-mb-generic-tracker-apriltag-webcam [--input <camera id>] [--cube_size <size in m>] [--tag_size <size in m>] [--quad_decimate <decimation>] [--nthreads <nb>] [--intrinsic <xml intrinsic file>] [--camera_name <camera name in xml file>] [--tag_family <0: TAG_36h11, 1: TAG_36h10, 2: TAG_36ARTOOLKIT, 3: TAG_25h9, 4: TAG_25h7, 5: TAG_16h5>] [--display_off] [--texture] [--projection_error <30 - 100>] [--help]
Usage: ./tutorial-mb-generic-tracker-apriltag-webcam [--input <camera id>] [--cube-size <size in m>] [--tag-size <size in m>] [--quad-decimate <decimation>] [--nthreads <nb>] [--intrinsic <xml intrinsic file>] [--camera-name <camera name in xml file>] [--tag-family <0: TAG_36h11, 1: TAG_36h10, 2: TAG_36ARTOOLKIT, 3: TAG_25h9, 4: TAG_25h7, 5: TAG_16h5>] [--display-off] [--texture] [--projection-error <30 - 100>] [--help]
\endcode

To test the tracker on a 12.5 cm wide cube that has an AprilTag of size 8 by 8 cm, and enable moving-edges and
Expand All @@ -126,7 +126,7 @@ $ ./tutorial-mb-generic-tracker-apriltag-webcam --input 1
\endcode
- The default size of the cube is 0.125 meter large. To use rather a 0.20 meter large cube, run:
\code
$ ./tutorial-mb-generic-tracker-apriltag-webcam --cube_size 0.20
$ ./tutorial-mb-generic-tracker-apriltag-webcam --cube-size 0.20
\endcode
- The AprilTag size is 0.08 by 0.08 meters. To change the tag size to let say 0.10 meter square, use:
\code
Expand Down Expand Up @@ -160,7 +160,7 @@ $ ./tutorial-mb-generic-tracker-apriltag-webcam --display_off
The default value of this threshold is set to 40 degrees. To decrease this threshold to 30 degrees (meaning that we
accept less projection error and thus trigger a new AprilTag detection more often) you may run:
\code
$ ./tutorial-mb-generic-tracker-apriltag-webcam --projection_error 30
$ ./tutorial-mb-generic-tracker-apriltag-webcam --projection-error 30
\endcode

\subsection mb_generic_apriltag_webcam_result Expected results
Expand Down Expand Up @@ -202,7 +202,7 @@ provided in the tutorials available from \ref tutorial_install_src.
Once build, to see the options that are available, just run:
\code
$ ./tutorial-mb-generic-tracker-apriltag-rs2 --help
Usage: ./tutorial-mb-generic-tracker-apriltag-rs2 [--cube_size <size in m>] [--tag_size <size in m>] [--quad_decimate <decimation>] [--nthreads <nb>] [--tag_family <0: TAG_36h11, 1: TAG_36h10, 2: TAG_36ARTOOLKIT, 3: TAG_25h9, 4: TAG_25h7, 5: TAG_16h5>] [--display_off] [--texture] [--depth] [--projection_error <30 - 100>] [--help]
Usage: ./tutorial-mb-generic-tracker-apriltag-rs2 [--cube-size <size in m>] [--tag-size <size in m>] [--quad-decimate <decimation>] [--nthreads <nb>] [--tag-family <0: TAG_36h11, 1: TAG_36h10, 2: TAG_36ARTOOLKIT, 3: TAG_25h9, 4: TAG_25h7, 5: TAG_16h5>] [--display-off] [--texture] [--depth] [--projection-error <30 - 100>] [--help]
\endcode

To test the tracker on a 12.5 cm wide cube that has an AprilTag of size 8 by 8 cm, and enable moving-edges, keypoints
Expand All @@ -224,7 +224,7 @@ $ ./tutorial-mb-generic-tracker-apriltag-rs2
By default, the following settings are used: <br>
- Default size of the cube is 0.125 meter large. To use rather a 0.20 meter large cube, run:
\code
$ ./tutorial-mb-generic-tracker-apriltag-rs2 --cube_size 0.20
$ ./tutorial-mb-generic-tracker-apriltag-rs2 --cube-size 0.20
\endcode
- The AprilTag size is 0.08 by 0.08 meters. To change the tag size to let say 0.10 meter square, use:
\code
Expand All @@ -251,7 +251,7 @@ $ ./tutorial-mb-generic-tracker-apriltag-rs2 --display_off
The default value of this threshold is set to 40 degrees. To decrease this threshold to 30 degrees (meaning that
we accept less projection error and thus trigger a new AprilTag detection more often) you may run:
\code
$ ./tutorial-mb-generic-tracker-apriltag-webcam --projection_error 30
$ ./tutorial-mb-generic-tracker-apriltag-webcam --projection-error 30
\endcode

\subsection mb_generic_apriltag_realsense_result Expected results
Expand Down
2 changes: 1 addition & 1 deletion doc/tutorial/visual-servo/tutorial-franka-ibvs.dox
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Now enter in `example/servo-franka folder` and run `servoFrankaIBVS` binary usin

$ cd example/servo-franka
$ ./servoFrankaIBVS --help
./servoFrankaIBVS [--ip <default 192.168.1.1>] [--tag_size <marker size in meter; default 0.12>] [--eMc <eMc extrinsic file>] [--quad_decimate <decimation; default 2>] [--adaptive_gain] [--plot] [--task_sequencing] [--no-convergence-threshold] [--verbose] [--help] [-h]
./servoFrankaIBVS [--ip <default 192.168.1.1>] [--tag-size <marker size in meter; default 0.12>] [--eMc <eMc extrinsic file>] [--quad-decimate <decimation; default 2>] [--adaptive_gain] [--plot] [--task_sequencing] [--no-convergence-threshold] [--verbose] [--help] [-h]

Run the binary activating the plot and using a constant gain:

Expand Down
2 changes: 1 addition & 1 deletion doc/tutorial/visual-servo/tutorial-franka-pbvs.dox
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ Now enter in `example/servo-franka folder` and run `servoFrankaPBVS` binary usin

$ cd example/servo-franka
$ ./servoFrankaPBVS --help
./servoFrankaPBVS [--ip <default 192.168.1.1>] [--tag_size <marker size in meter; default 0.12>] [--eMc <eMc extrinsic file>] [--quad_decimate <decimation; default 2>] [--adaptive_gain] [--plot] [--task_sequencing] [--no-convergence-threshold] [--verbose] [--help] [-h]
./servoFrankaPBVS [--ip <default 192.168.1.1>] [--tag-size <marker size in meter; default 0.12>] [--eMc <eMc extrinsic file>] [--quad-decimate <decimation; default 2>] [--adaptive_gain] [--plot] [--task_sequencing] [--no-convergence-threshold] [--verbose] [--help] [-h]

Run the binary activating the plot and using a constant gain:

Expand Down
4 changes: 2 additions & 2 deletions doc/tutorial/visual-servo/tutorial-universal-robot-ibvs.dox
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ Now enter in `example/servo-universal-robots folder` and run `servoUniversalRobo
\verbatim
$ cd example/servo-universal-robots
$ ./servoUniversalRobotsIBVS --help
./servoUniversalRobotsIBVS [--ip <default 192.168.0.100>] [--tag_size <marker size in meter; default 0.12>] \
[--eMc <eMc extrinsic file>] [--quad_decimate <decimation; default 2>] \
./servoUniversalRobotsIBVS [--ip <default 192.168.0.100>] [--tag-size <marker size in meter; default 0.12>] \
[--eMc <eMc extrinsic file>] [--quad-decimate <decimation; default 2>] \
[--adaptive_gain] [--plot] [--task_sequencing] [--no-convergence-threshold] \
[--verbose] [--help] [-h]
\endverbatim
Expand Down
4 changes: 2 additions & 2 deletions doc/tutorial/visual-servo/tutorial-universal-robot-pbvs.dox
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ Now enter in `example/servo-universal-robots folder` and run `servoUniversalRobo
\verbatim
$ cd example/servo-universal-robots
$ ./servoUniversalRobotsPBVS --help
./servoUniversalRobotsPBVS [--ip <default 192.168.1.1>] [--tag_size <marker size in meter; default 0.12>] \
[--eMc <eMc extrinsic file>] [--quad_decimate <decimation; default 2>] \
./servoUniversalRobotsPBVS [--ip <default 192.168.1.1>] [--tag-size <marker size in meter; default 0.12>] \
[--eMc <eMc extrinsic file>] [--quad-decimate <decimation; default 2>] \
[--adaptive_gain] [--plot] [--task_sequencing] [--no-convergence-threshold] \
[--verbose] [--help] [-h]
\endverbatim
Expand Down
Loading

0 comments on commit bbb1d8e

Please sign in to comment.