Giter Site home page Giter Site logo

ethzasl_ptam's People

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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ethzasl_ptam's Issues

World pose output

Hi, in system.cc lines 331 and 332 (where the "camera in the world frame" message is being created) I think there is a bug.

I think the lines,

const tf::Quaternion & q_tf_world = transform_ptam.getRotation();
const tf::Vector3 & t_tf_world = transform_ptam.getOrigin();

should be,

const tf::Quaternion & q_tf_world = transform_world.getRotation();
const tf::Vector3 & t_tf_world = transform_world.getOrigin();

At the moment the same pose is output twice in a row under two different topic names.

Thanks

Kieran

best PTAM parameters if unlimited computation power is available

On 16.5.13 17:20 , "Kieran" wrote:

[...]

There are lots of settings for the ptam algorithm and I wondered if you
could advise the best settings if computation power was unlimited. i.e I
don't mind if the computational delay is increased but I want the best
pose estimate possible.

Also, is there any way of manually setting the orientation of the ground
plane? I would like the ptam 'world' axes to be aligned to the initial
image axes. One way I can think of doing this is to take the first
reported arbitrary pose(immediately after the baseline movement) and use
this as an offset for all following orientations.

Thanks again

Kieran

On 22/05/2013 23:26, Weiss, Stephan wrote:

Hi Keiran,

Thanks for using our framework.
If you have unlimited computation power you could use the following (all in the dynamic reconfigure):

  • MaxPatchesPerFrame: some high value (e.g. 1000) the more feature you track, the more errors get "averaged"
  • UseKFPixelDist = TRUE: this creates a new KF if the new image has a disparity of at least "AutoInitPixel"
  • AutoInitPixel=20
  • NoLevelZeroMapPoints=TRUE: lvl0 map point usually are very unreliable (see my thesis chapter 2 for stats)
  • Only if you work on a planar surface: EpiDepthSearchMaxRange=1 (or smaller): this is the sigma-bound of the existing point cloud within which new features are added. This is an extremely strong rejection criteria for outliers/features not lying in a plane.
  • MaxKF=0: do not delete distant KFs, keep them all. NOTE: with UseKFPixelDist=true and MaxKF=0 you will create many KFs - a global bundle adjustment will even bring a very powerful machine to its limits soon
    => do not change all the other parameters. Furthermore, you want to have the camera rate as fast as possible with no motion blur and sufficient, strong, and evenly distributed features.

As for the handling:

  • a clean initialization is crucial. Only translate the camera, try to not apply any rotation in the initialization phase. Many feature tracks improve the initialization, find a good trade-off between disparity of the first two KFs and number of feature tracks (a disparity of about 20-40 pixels for init is ok). You may set AutoInit=true for this - it does some sanity checks and initializes only if some conditions are met. Uncheck this during the run, so you see better when the mapping fails.
  • As soon as some KFs are created, stop at each new creation of a KF until the global bundle adjustment has finished.

Aligning the (initial) map:
your best bet is to do this in System.cc in the ImageCallback function using

  • mpMapMaker->ApplyGlobalScaleToMap() // scale the whole map
  • mpMapMaker->ApplyGlobalTransformationToMap() //transform the whole map
    you can verify if the map is already there/initialized with "mpMap->IsGood()"
    You probably want to record some PTAM poses first with which you can determine the transformation to your desired coordinate system and only then apply the global map transformation.

Best
Stephan

From: Kieran Wood Sent: Thursday, May 23, 2013 4:08 AM

Hi,

Thanks for this. I will be trying it soon (within the next 2 weeks) and
will let you know the result.

I am expecting to bring the machine to its limits in order to see if
increased accuracy can be gained at the expense of lower rates and
increase delay.

Kieran

Kieran,

Great. Any experience and feedback on this from your side will be much appreciated.

After initialization, PTAM crashes, ROS Fuerte

In ROS Fuerte, I receive the following error immediately after a successful initialization:

[ INFO] [1341256907.691494752]: starting ptam with node name /ptam
Welcome to PTAM


Parallel tracking and mapping for Small AR workspaces
Copyright (C) Isis Innovation Limited 2008

[ INFO] [1341256928.550455828]: Initialized map on level 1
MapMaker: made initial map with 271 points.
terminate called after throwing an instance of 'std::runtime_error'
what(): Time is out of dual 32-bit range
[ptam-1] process has died [pid 12738, exit code -6, cmd /home/schaves/ros_workspace/ethzasl_ptam/ptam/bin/ptam image:=/camera/image_raw pose:=pose __name:=ptam __log:=/home/schaves/.ros/log/5bfa4344-c47a-11e1-a996-000e8e1f42cc/ptam-1.log].
log file: /home/schaves/.ros/log/5bfa4344-c47a-11e1-a996-000e8e1f42cc/ptam-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

If ptam does not initialize correctly, I do not receive the error and I am able to try the initialization again. This error occurs when running with the GUI and when running remote_ptam, and on multiple computers (the Pelican Atom running 10.04 and my Dell 15Z with 12.04). Is it possible that this is only an issue with ROS Fuerte?

Cannot locate rosdep definition for [ptam_com]

Following instructions on homepage, but cannot install PTAM:

~$ rosdep install ptam
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
ptam: Cannot locate rosdep definition for [ptam_com]

Ubuntu 14.04
ROS indigo 1.11.9

Problems on launching PTAM

I am trying to launch PTAM on ROS Hydro on Ubuntu 12.04 32 bit. When I do

roslaunch ptam ptam.launch 

I get the following output

started roslaunch server http://prova-VirtualBox:53435/

SUMMARY
========

CLEAR PARAMETERS
 * /ptam/

PARAMETERS
 * /ptam/ARBuffer_height
 * /ptam/ARBuffer_width
 * /ptam/AutoInitPixel
 * /ptam/BundleMEstimator
 * /ptam/Calibrator_BlurSigma
 * /ptam/Calibrator_MeanGate
 * /ptam/Calibrator_MinCornersForGrabbedImage
 * /ptam/Calibrator_NoDistortion
 * /ptam/Calibrator_Optimize
 * /ptam/Calibrator_Show
 * /ptam/Cam_cx
 * /ptam/Cam_cy
 * /ptam/Cam_fx
 * /ptam/Cam_fy
 * /ptam/Cam_s
 * /ptam/CameraCalibrator_CornerPatchSize
 * /ptam/CameraCalibrator_MaxStepDistFraction
 * /ptam/CandidateMinSTScore
 * /ptam/FASTMethod
 * /ptam/GLWindowMenu_Enable
 * /ptam/GLWindowMenu_mgvnMenuItemWidth
 * /ptam/GLWindowMenu_mgvnMenuTextOffset
 * /ptam/ImageSizeX
 * /ptam/ImageSizeY
 * /ptam/InitLevel
 * /ptam/MaxKF
 * /ptam/MaxKFDistWiggleMult
 * /ptam/MaxPatchesPerFrame
 * /ptam/MaxStereoInitLoops
 * /ptam/MinTukeySigma
 * /ptam/NoLevelZeroMapPoints
 * /ptam/TrackerMEstimator
 * /ptam/TrackingQualityFoundPixels
 * /ptam/UseKFPixelDist
 * /ptam/WiggleScale
 * /ptam/gui
 * /ptam/parent_frame
 * /rosdistro
 * /rosversion

NODES
  /
    ptam (ptam/ptam)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
ERROR: cannot launch node of type [ptam/ptam]: can't locate node [ptam] in package [ptam]
No processes to monitor
shutting down processing monitor...

[Information - Email Thread] ethzasl_ptam: nloose in MapMaker::BundleAdjustRecent and img->header.frame_id in System.cc

Hi All,

I just want to share my latest consultation with Stephan Weiss and Simon Lynen, regarding nloose variable in MapMaker::BundleAdjustRecent and img->header.frame_id in System.cc, as follows (read bottom -> up):


Giovanni,

  1. sAdjustSet always contains the the newest KF (line 991). If we limit the total number of KF we only optimize this last KF (since we assume the user is concerned about computational complexity). If we keep
    all KFs then the newest plus its 4 closest neighbours are optimized.

  2. correct. ethzasl_ptam is only the visual part.

Best,
Stephan

From: Giovanni Sutanto
Sent: Saturday, August 09, 2014 12:55 PM

To: Lynen Simon
Cc: Weiss Stephan; USC Mail
Subject: Re: ethzasl_ptam: nloose in MapMaker::BundleAdjustRecent and img->header.frame_id in System.cc

Hi Simon,

Thanks for your reply.
Actually I have read through all the code in MapMaker.cc and Tracker.cc (currently reading System.cc).
What makes me think that if nloose == 0, the BundleAdjustRecent is NEVER executed is the following lines:
...
const
ptam::PtamParamsConfig&

pPars

PtamParameters::varparams();
// (line 986) if
(pPars.MaxKF>1)
// MaxKF<2 means keep all KFs
// (line 987) nloose=0;
// (line 988) ...
for(int
i=0;
i<nloose;
i++) // (line 993)

if(vClosest[i]->bFixed

false) // (line 994) sAdjustSet.insert(vClosest[i]);
// (line 995) ...
If nloose is 0, the lines inside the for loop (line 994-995) is NEVER executed, which means sAdjustSet will just be an Empty Set (since there is NO other place inside the MapMaker::BundleAdjustRecent which add keyframe into sAdjustSet...) Please correct
me if I am wrong...
I see...so the IMU data is integrated through the SensorFusion framework...
Thanks again for your time.

Best Regards,

Giovanni Sutanto

On Sat, Aug 9, 2014 at 12:06 PM, Lynen Simon wrote:

  1. No, nloose is not the only means of fixing keyframes. All frames that are non recent will still be optimized. Have a careful look through the rest of the code further down.I
  2. You will not need to use the IMU inside PTAM as I wrote before, you might even get worse results by using it. Even for rapid hand movement the default motion model in PTAM is robust enough. The actual pose-estimate is then provided by fusing the output of PTAM with the IMU measurements in the EKF.

Simon


From: Giovanni Sutanto
Sent: Saturday, August 09, 2014 15:59
To: Lynen Simon
Cc: Weiss Stephan; USC Mail
Subject: Re: ethzasl_ptam: nloose in MapMaker::BundleAdjustRecent and img->header.frame_id in System.cc

Hi Simon,

Thank you so much for your time responding to this email. I really appreciate it.

  1. I see. So, the lines:
    if (pPars.MaxKF>1) // MaxKF<2 means keep all KFs nloose=0; Means if we specify MaxKF>1, we will NOT (NEVER) do the Bundle Adjust Recent, only doing Bundle Adjust All, all the time? Am I right?
  2. Actually we are gonna use the PTAM and sensor fusion for SLAM application on ground, for looking modular robots (http://www.isi.edu/robots/), formed in snake or caterpillar formation...and we will use IMU as the motion model. In this case, how do we do it? How do we specify the frame_id of img's header? and how do we specify the frame, which is actually referred to by the frame_id itself?

Again, thank you so much for your time!

Best Regards,

Giovanni Sutanto

On Sat, Aug 9, 2014 at 12:45 AM, Lynen Simon wrote:
Hi Giovanni,

nloose denotes the number of keyframes which are not fixed in the bundle-adjustment problem. We only want the adjust the most recent ones and the ones which coobserve points with these. The rest stays fixed: https://github.com/ethz-asl/ethzasl_ptam/blob/master/ptam/src/MapMaker.cc#L1011

  1. You suggestion of setting all keyframes in the map to loose would result in gauge-freedom of the BA problem not being fixed and thus allowing your map to be moved arbitrarity by the minimizer. This is not what you want.

  2. The only purpose of that call is to retrieve the TF that transforms IMU rotational velocity measurements into the camera frame to predict the orientation of the tracker w.r.t. the last frame. Afaik this is not used by default since PTAM uses a constant velocity motion model for prediction which works just fine.

Simon


From: Giovanni Sutanto
Sent: Friday, August 08, 2014 18:24
To: Weiss Stephan; Lynen Simon
Cc: USC Mail
Subject: ethzasl_ptam: nloose in MapMaker::BundleAdjustRecent and img->header.frame_id in System.cc

Hi Stephan and Simon,

I have some questions about ethzasl_ptam again:

  1. about nloose variable defined in MapMaker::BundleAdjustRecent, in line 986-988 of MapMaker.cc, as follows:

const ptam::PtamParamsConfig& pPars = PtamParameters::varparams(); if (pPars.MaxKF>1) // MaxKF<2 means keep all KFs nloose=0;
Why is it filled with 0, if pPars.MaxKF>1 ? Isn't it supposed to be:

nloose = pPars.MaxKF;

, that is to limit the bundle adjustment to the newest keyframe and the closest <pPars.MaxKF> keyframes to it?

  1. about System::imageCallback, line 115 of System.cc, as follows:
    if (!transformQuaternion(img->header.frame_id, imu.header, imu.orientation, imu_orientation)) as I understand, this is trying to tranform imu's orientation (in quaternion format) with reference in img's coordinate frame (contained in the header information's frame_id), into rotation matrix, stored in imu_orientation variable. Am I right?
    If it is so, how do I specify the frame_id inside img's header? and what frame (which variable) is actually referred by the frame_id itself? I feel a bit lost here...

I am looking forward to hear from you. Thank you so much for your time!


Hope that helps! Thanks!

Best Regards,

Giovanni Sutanto

problem in installing ptam

I tried to install ptam with these commands :

$cd Desktop/catkin_ws/src
$git clone git://github.com/ethz-asl/ethzasl_ptam.git ethzasl_ptam
$cd ...
$catkin_make

but in the end I got this err msg:

/usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -llapack
collect2: ld returned 1 exit status
make[2]: *** [/home/hamid/Desktop/catkin_ws/devel/lib/ptam/ptam] Error 1
make[1]: *** [ethzasl_ptam/ptam/CMakeFiles/ptam.dir/all] Error 2
make: *** [all] Error 2

how can I fix this problem?

Thanks.

/vslam/pose coordinate system

Hi,
I am trying to understand the coordinate system of /vslam/pose. I have a few questions:

  1. I have read on other issues' threads that ethzasl_ptam uses a right handed coordinate system, following the ros standards. However, z decreases when I moved toward the tracked plane, y increases when I move the camera up and x increases when I go left, making it a left handed coordinate system.

  2. What is the difference between /vslam/pose and /vslam/pose_world ? Only the x coordinate seems to be flipped.

  3. When I click "Map View" in the PTAM gui, there are coordinates named "Camera Pos" displayed in the bottom of the screen. However, these coordinates are completely different from /vslam/pose. What those coordinates represents? Can I have access to this via a ros topic?

  4. The orientation of /vslam/pose is always around x ~= 1, y ~=0, z ~=0 and w ~=0.1. Even when I roll the camera, the axis the the Quaternion doesn't change. It doesn't make sense to me.

What I want to achieve is augmented reality over the video feed of the camera. I want to get an absolute position and orientation of my real camera in any referential, and set it to the camera of my 3D engine (I use Ogre).

Thanks in advance!

Mac OS X Support / Clarification

Hi all,

Although this might be known, this package is not compatible with the niche userbase of Mac OS X. Although it might not be feasible to do the work to make it compatible with the OS, it may be a good idea to clarify the (lack of?) support on each operating system in the README.md.

Thanks,
Christian

No SIMD support on odroid X2

I am working on a project which requires use of PTAM package. I am using ROS HYDRO on Odroid X2. While compiling using catkin_make it is showing that the SIMD support is missing....

Missing support for armv71-unknown-linux-gnu.

can anyone please provide me the complete instruction set for compiling ptam package on odroid X2.

Cameracalibrator crashed

Hi,

I have a problem with the cameracalibrator. I ran it via the standard launch file, It worked. But after some point of time, it got crashed and showed an error message "Segmentation fault". Sometimes the period of crashing is long and I can manage to calibrate the camera, but other times it happened so fast. Do you have an explanation why it happens?

Another question regarding the stereo initialization phase for PTAM, did you always manually do this initialization before flying (as shown in here: http://www.youtube.com/watch?v=7nhlDK34k_c&list=UUrZt485fBMeNtCDlgEZAHVA&index=9&feature=plcp)?

Thank you before for your answer.
Finley

libcvd impede to run PTAM

I'm trying to run ethzasl_ptam framework on a Ubuntu 12.04 machine, ATI graphic video card, ROS groovy.

Once installed I couldn't run ptam node. The message received is:

ERROR: cannot launch node of type [ptam/ptam]: can't locate node [ptam] in package [ptam]

I realized that maybe I have some problems compiling libcvd. After typing rosdep install ptam(or even the command "./configure" and the "make" inside libcvd folder) I get this message:

g++ -o progs/se3_exp progs/se3_exp.o -L. -lcvd -ltiff -ljpeg -lpng -lpng -llapack -lGLU -lGL -lrt -ldc1394 -L -lX11 -lXext -pthread
./libcvd.so: error: undefined reference to 'raw1394_new_handle'
./libcvd.so: error: undefined reference to 'raw1394_get_port_info'
./libcvd.so: error: undefined reference to 'raw1394_new_handle_on_port'
./libcvd.so: error: undefined reference to 'raw1394_iso_stop'
./libcvd.so: error: undefined reference to 'raw1394_iso_shutdown'
./libcvd.so: error: undefined reference to 'raw1394_reset_bus'
./libcvd.so: error: undefined reference to 'raw1394_destroy_handle'
./libcvd.so: error: undefined reference to 'XUnmapWindow'
./libcvd.so: error: undefined reference to 'XDestroyWindow'
./libcvd.so: error: undefined reference to 'XFlush'
./libcvd.so: error: undefined reference to 'XCloseDisplay'
./libcvd.so: error: undefined reference to 'XStoreName'
./libcvd.so: error: undefined reference to 'XSelectInput'
./libcvd.so: error: undefined reference to 'XNextEvent'
./libcvd.so: error: undefined reference to 'XPending'
./libcvd.so: error: undefined reference to 'XQueryPointer'
./libcvd.so: error: undefined reference to 'XOpenDisplay'
./libcvd.so: error: undefined reference to 'XCreateColormap'
./libcvd.so: error: undefined reference to 'XCreateWindow'
./libcvd.so: error: undefined reference to 'XMapWindow'
./libcvd.so: error: undefined reference to 'XGetWindowAttributes'
./libcvd.so: error: undefined reference to 'XSetClassHint'
./libcvd.so: error: undefined reference to 'XInternAtom'
./libcvd.so: error: undefined reference to 'XSetWMProtocols'
./libcvd.so: error: undefined reference to 'XLoadQueryFont'
./libcvd.so: error: undefined reference to 'XCreateGlyphCursor'
./libcvd.so: error: undefined reference to 'XFreeFont'
./libcvd.so: error: undefined reference to 'XResizeWindow'
./libcvd.so: error: undefined reference to 'XMoveWindow'
./libcvd.so: error: undefined reference to 'XWarpPointer'
./libcvd.so: error: undefined reference to 'XDefineCursor'
./libcvd.so: error: undefined reference to 'XUndefineCursor'
./libcvd.so: error: undefined reference to 'XLookupString'
./libcvd.so: error: undefined reference to 'png_set_longjmp_fn'
collect2: ld returned 1 exit status
make: *** [progs/se3_exp] Error 1

I've already read here:

http://stackoverflow.com/questions/16077809/libcvd-undefined-reference-to-x-while-compiling-c

that is a known problem on the MakeFile but I can't fix it.

Does PTAM node not run because of this problem? Or is the ATI graphic card that doesn't allow me to execute the node correctly?

I even try to download libcvd from ethzasl 's git repository and from Edward Rosten's website but I still can't fix the problem. Thank you very much

Error message: tf frame_id not set

Hello,

when starting ptam , I get an error message which I do not get to understand:

[ERROR] [1353944426.202390728]: TF_NO_FRAME_ID: Ignoring transform with child_frame_id "/world" from authority "/ptam" because frame_id not set

And this message gets repeated several times

Regards

Distributing PTAM

I was wondering how feasible it would be to split PTAM Tracker and Mapper into two separate ROS nodes? Having the Tracker running on a separate device and exchanging Keyframes with the Mapper process running on a more powerful ground station.

problem with usb camera node converter

Since the package needs mono8 camera stream

I am trying to convert the video from rgb8 to mono8 in a usb_cam node

but in the code below


cv_bridge::CvImagePtr cv_ptr;

cv_ptr = cv_bridge::toCvCopy(img_ , enc::MONO8);

sensor_msgs::Image img2_ = cv_ptr->toImageMsg();

image_pub_.publish(img2_, *ci);


it seems the compiler cannot recognize cv_ptr->toImageMsg() expression

coz' it says

/root/catkin_ws/src/usb_cam/nodes/usb_cam_node.cpp:178:51: error: conversion from ‘sensor_msgs::ImagePtr {aka boost::shared_ptr<sensor_msgs::image_<std::allocator > >}’ to non-scalar type ‘sensor_msgs::Image’ requested

could anyone help me out of this ? thx !

PTAM installation problem

Hi
I have the same problem of issue #39.
I also checked out new commit by markus.
Which thing generates that header file exactly?

These are steps that I am following:

  • Install fresh Ubuntu 14.04
  • Install ROS Indigo ( sudo apt-get install ros-indigo-desktop )
  • source /opt/ros/indigo/setup.bash
  • mkdir -p ~/catkin_ws/src
  • cd ~/catkin_ws/src
  • git clone https://github.com/ethz-asl/ethzasl_ptam
  • cd ../ && catkin_make

compilation problem ethzasl_ptam

Hi im having following probmem on ubunto 14.04 ROS indigo

Linking CXX executable /home/farhan/catkin_ws/devel/lib/ptam/ptam
/usr/bin/ld: cannot find -lglut
collect2: error: ld returned 1 exit status
make[2]: *** [/home/farhan/catkin_ws/devel/lib/ptam/cameracalibrator] Error 1
make[1]: *** [ethzasl_ptam/ptam/CMakeFiles/cameracalibrator.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/usr/bin/ld: cannot find -lglut
collect2: error: ld returned 1 exit status
make[2]: *** [/home/farhan/catkin_ws/devel/lib/ptam/ptam] Error 1
make[1]: *** [ethzasl_ptam/ptam/CMakeFiles/ptam.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

Thanks

Farhan

test

this is a test to see how this issue thing works

ethzasl_ptam initializaton with camera/image_mono/compressed

Hi
i using ethzasl_ptam on the ground workstation. on the drone (Asctec Pelican) pc im publishing image on camera/image/mono/compressed using image_proc node.
how can i edit the ptam.launch so that ethzasl_ptam subscribes to the toipc?

thanks
farhan

PtamParamsConfig.h missing

I am trying to build the package with catkin_make but end up with the following error:

[ 23%] Building CXX object ethzasl_ptam/ptam/CMakeFiles/cameracalibrator.dir/src/CameraCalibrator.cc.o
In file included from /home/gstef/catkin_ws/src/ethzasl_ptam/ptam/src/CameraCalibrator.cc:5:0:
/home/gstef/catkin_ws/src/ethzasl_ptam/ptam/include/ptam/Params.h:11:35: fatal error: ptam/PtamParamsConfig.h: No such file or directory
compilation terminated.
make[2]: *** [ethzasl_ptam/ptam/CMakeFiles/cameracalibrator.dir/src/CameraCalibrator.cc.o] Error 1
make[1]: *** [ethzasl_ptam/ptam/CMakeFiles/cameracalibrator.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed

I cannot find the file PtamParamsConfig.h and I do not know how to generate it. Could somebody point out how to proceed? Any help will be apprecaited.

Running PTAM on a bad resolution camera

Hey guys,

i'm using a parrot ar-drone for my project. But the bottom camera is quite bad(160x120 Pixels). This makes it quite hard to calibrate the camera and afterwards to use stereoinitialisation. It doesnt really find enough features. Do you have any advise on maybe some parameter values i could adjust ?

Best regards

ODROID Branch /vslam/preview Issue

The grid does not draw properly in the /vslam/preview stream (viewable from remote_ptam) in the odroid branch. Instead of drawing a grid, the image instead is overlayed with random black lines (the grid lines, but not drawn correctly at all).

Reproducible:

  • Checkout the odroid branch
  • Make
  • Run ptam
  • Run ptam_remote
  • Initialize the map and observe.

Any fix?

Thanks.

Setting Camera using Opencv in PTAMM and PTAM

Hi
I am trying to execute the code using another webcam( Intex IT-306WC Webcam : http://www.flipkart.com/intex-it-306wc-webcam/p/itmdzbhp8gsbsfh6?pid=ACCDZBKAUREYCRPD&otracker=from-search&srno=t_4&query=webcam&ref=b83f2815-cc12-409a-90df-15268e72fc14
It has a focus range of 4 to Infinity cm .) I am using OpenCV 2.4.4 with VS2010 in Windows so I saw few codes and tried to make the changes but I get errors which I do not know how to handle. I did not modify the VideoSource.h file but I tried to modify the file in the cpp file
VideoSource.h

struct VideoSourceData;

class VideoSource
{
public:
VideoSource();
void GetAndFillFrameBWandRGB(CVD::ImageCVD::byte &imBW, CVD::ImageCVD::Rgb<CVD::byte > &imRGB);
CVD::ImageRef Size();

private:
void *mptr;
CVD::ImageRef mirSize;
};

.cpp file

VideoSource::VideoSource()
{
VideoCapture* cap = new::VideoCapture;//(VideoCapture*)mptr;
mptr = cap;
cout << " VideoSource_Windows: Opening video source..." <isOpened();
if(!cap->isOpened())
{
std::cerr<<"Could Not Find the Camera or Video "<<std::endl;
exit(1);
}
else
{
cout << " ... got video source." << endl;
}
mirSize = ImageRef(640,480);

};

ImageRef VideoSource::Size()
{
return mirSize;
};

void conversionNB(Mat &frame, ImageCVD::byte &imBW)
{

Mat clone = frame.clone();
Mat& frame_p =  Mat(frame.rows,frame.cols, CV_32FC1); //(Mat&)clone;
frame_p = (Mat&)clone;
for (int i = 0; i < 480; i++)
{
    for (int j = 0; j < 640; j++)
    {
        imBW[i][j] = ((frame_p(i,j))[0] + frame_p(i,j)[1] + frame_p(i,j)[2]) / 3;//errpr
    }
}

}

void conversionRGB(Mat &frame, ImageCVD::Rgb<CVD::byte > &imRGB)
{

Mat clone = frame.clone();
Mat_& frame_p = (Mat_&)clone;//error
for (int i = 0; i < 480; i++)
{
    for (int j = 0; j < 640; j++)
    {
        imRGB[i][j].red = frame_p(i,j)[0];//error
        imRGB[i][j].green = frame_p(i,j)[1];//error
        imRGB[i][j].blue = frame_p(i,j)[2];//error
    }
}

}

void VideoSource::GetAndFillFrameBWandRGB(ImageCVD::byte &imBW, ImageCVD::Rgb<CVD::byte > &imRGB)
{
Mat frame;
VideoCapture* cap = (VideoCapture*)mptr;
cap->set(CV_CAP_PROP_FRAME_WIDTH,640);
cap->set(CV_CAP_PROP_FRAME_HEIGHT,480);
cap->set(CV_CAP_PROP_FPS,30);
double fps = cap->get(CV_CAP_PROP_FPS); //get the frames per seconds of the video

 cout << "Frame per seconds : " << fps << endl;
cap->open(1);
*cap >> frame;
//cvCvtColor (&frame,&frame,CV_GRAY2BGR);//
conversionNB(frame, imBW);
conversionRGB(frame, imRGB);
frame.release();

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
during compile time I get the error
1>VideoSource_Win32_CMU1394.cpp(56): error C2664: 'cv::Mat cv::Mat::operator ()(cv::Range,cv::Range) const' : cannot convert parameter 1 from 'int' to 'cv::Range'
1> No constructor could take the source type, or constructor overload resolution was ambiguous
1>VideoSource_Win32_CMU1394.cpp(56): error C2664: 'cv::Mat cv::Mat::operator ()(cv::Range,cv::Range) const' : cannot convert parameter 1 from 'int' to 'cv::Range'
1> No constructor could take the source type, or constructor overload resolution was ambiguous
1>VideoSource_Win32_CMU1394.cpp(56): error C2664: 'cv::Mat cv::Mat::operator ()(cv::Range,cv::Range) const' : cannot convert parameter 1 from 'int' to 'cv::Range'
1> No constructor could take the source type, or constructor overload resolution was ambiguous
1>VideoSource_Win32_CMU1394.cpp(71): error C3849: function-style call on an expression of type 'cv::Mat_' would lose const and/or volatile qualifiers for all 13 available operator overloads
1>VideoSource_Win32_CMU1394.cpp(72): error C3849: function-style call on an expression of type 'cv::Mat_' would lose const and/or volatile qualifiers for all 13 available operator overloads
1>VideoSource_Win32_CMU1394.cpp(73): error C3849: function-style call on an expression of type 'cv::Mat_' would lose const and/or volatile qualifiers for all 13 available operator overloads
1>
1>Build FAILED.

Can someone please help me solve this error cause I have been stuck with the code for sometime. Its a bit urgent. I have not been able to run the code because of the error. Maybe because I am using OpenCV 2.4.4 but I am not sure what header file is missing nor how to modify the code for the error

Adding key frame cause running interrupt

Hi all,
My question is about running interrupt, I am not sure where I can find the reason of interruption. From terminal, just give the following info:
[ptam-1] process has died [pid 4518, exit code -11,.....
My case is following:
When I try to add a keyframe which doesn't exist any reprojected map points (manMeasFound=0 in all levels), this problem happen. I compute camera pose of this frame is based on other algorithm, I just want to add this image frame without any measurements to ptam map's keyframe list firstly, and then do epipolar searching to find some points added into the ptam map finally.
Any suggestion about why adding this kind of image frame result to break off the program. Or someone succeed in adding this kind of keyframe, could you please let me know?
Thanks in advance.

Heather

Setting uEye Camera in OpenCV for PTAMM

Hi everybody,

I'm trying to use an ueye usb 2.0 camera with ptamm, by modifying
the corresponding file in PTAMM source files folder. So, the problem
is when I have to code the function GetAndFillFrameBWandRGB.

At first, I configure ueye camera by calling some functions in
VideoSource::VideoSource(), and here I face up with the first
doubt: my sensor is 752x480, and I set mirSize.x = sensor.width and
the same stuff in height; but I read sthg about height and width
must not be greater than 640x480.

There exists so many examples using different libraries (without ueye),
but the another thing I'd like to know is: what it is supposed to do in the function
GetAndFillFrameBWandRGB?

Mu current code is:

HIDS m_hCam;
int m_nColorMode;
int m_nBitsPerPixel=8;
int m_nSizeX;
int m_nSizeY;
int m_lMemoryId;
char* m_pcImageMemory;
double m_FPS = 30;
IplImage* tmpImg;

VideoSource::VideoSource()
{
if (m_hCam !=0 )
{
is_FreeImageMem (m_hCam, m_pcImageMemory, m_lMemoryId);
is_ExitCamera (m_hCam);
}

m_hCam = (HIDS) 1;    

if(is_InitCamera (&m_hCam, NULL) == IS_SUCCESS)
{
    SENSORINFO sInfo;
    is_GetSensorInfo(m_hCam, &sInfo);

    m_nSizeX = sInfo.nMaxWidth;     
        m_nSizeY = sInfo.nMaxHeight; 
        mirSize.x = sInfo.nMaxWidth;
        mirSize.y = sInfo.nMaxHeight;

            is_SetFrameRate(m_hCam, 30, &m_FPS);
        is_AllocImageMem (m_hCam, m_nSizeX, m_nSizeY,
            m_nBitsPerPixel,&m_pcImageMemory, &m_lMemoryId); 
    mptr = m_pcImageMemory;

    is_SetImageMem (m_hCam, m_pcImageMemory, m_lMemoryId); 

            is_SetColorMode(m_hCam, IS_CM_MONO8);

    if(is_SetExternalTrigger (m_hCam,IS_SET_TRIGGER_SOFTWARE) != IS_SUCCESS)
    {
        is_FreeImageMem (m_hCam, m_pcImageMemory, m_lMemoryId); 
        is_ExitCamera (m_hCam); 
        exit(EXIT_FAILURE);
    }
    else
    {
        tmpImg = cvCreateImageHeader(cvSize(m_nSizeX, m_nSizeY), IPL_DEPTH_8U,3);
        tmpImg->imageData = m_pcImageMemory;
    }
}

};

ImageRef VideoSource::Size()
{
return mirSize;
};

// The two following functions copied from opencv wrapper class ptamm blog
void conversionNB(Mat frame, Image &imBW){
Mat clone = frame.clone();
Mat_& frame_p = (Mat_&)clone;
for (int i = 0; i < m_nSizeY; i++){
for (int j = 0; j < m_nSizeX; j++){
imBW[i][j] = (frame_p(i,j)[0] + frame_p(i,j)[1] + frame_p(i,j)[2]) / 3;
}
}
}

void conversionRGB(Mat frame, Image<Rgb > &imRGB){
Mat clone = frame.clone();
Mat_& frame_p = (Mat_&)clone;
for (int i = 0; i < m_nSizeY; i++){
for (int j = 0; j < m_nSizeX; j++){
imRGB[i][j].red = frame_p(i,j)[2];
imRGB[i][j].green = frame_p(i,j)[1];
imRGB[i][j].blue = frame_p(i,j)[0];
}
}
}

void VideoSource::GetAndFillFrameBWandRGB(Image &imBW, Image<Rgb > &imRGB)
{
Mat frame;
imBW.resize(mirSize);
imRGB.resize(mirSize);

if(is_FreezeVideo(m_hCam, IS_WAIT)==IS_SUCCESS)
{
    frame = *(tmpImg-> imageData);
    conversionNB(frame, imBW);
    conversionRGB(frame, imRGB);
}   

}

And finally, after execute ./CameraCalibration, I get the following error:
Segmentation fault (core dumped)

I would appreciate any help!
Thanks

Calibration problem with fisheye lens

I need a little help. I've got a Point Grey camera FireFly MV;I have a high quality fisheye lens that provides a 190 degree field of view and a normal lens .

I did the calibration with both lenses and I got this results:

normal lens:
[Cam_fx: 1.65485
Cam_fy: 2.20534
Cam_cx: 0.558802
Cam_cy: 0.502825
Cam_s: 0.742477]

fisheye lens:
[Cam_fx: 0.489675
Cam_fy: 0.633751
Cam_cx: 0.583104
Cam_cy: 0.411363
Cam_s: 0]

PTAM works good when I mount the normal lens. I can verify that it correctly works because the tests suggested on the tutorials succeed.

When I run PTAM with the fish-eye lens it loses immediately the tracking and the map. It's quite impossible to try the test to verify how good is calibration. Anyway I try to shoot on the keyboard and its representation on the map is not flat. This is probably due to the distorsion factor that's 0 (!). I strongly doubt about calibration parameters. I've done several attempts but I always get bad results. I'd like to mention that I obtain low RMS values, like 0.4(never 0.3 as you suggest). Shutter speed = 5ms, the chessboard was on a flat surface and the pattern around was uniform; the room was enough enlightened.

I even try to use another toolbox to calibrate the camera and then modify the data to match with PTAM requirements. I didn't get good results neither because probably I modelled wrongly the distortion parameter. However I got very different values of focal length and image center.

Can I have your opinion about my calibration data? Are there any other reasons why PTAM not work with my fish-eye lens?

ethzasl_ptam initialization failure

Hi im on ubunto 12.04 ROS groovy . when i run the sapmle bag file
rosbag play ethzasl_ptam_desktop_sample.bag
and
roslaunch ptam ptam.launch i get

farhan@po-drone:~/catkin_ws$ roslaunch ptam ptam.launch
... logging to /home/farhan/.ros/log/2cdbce0e-e522-11e4-a241-d8fc9361bda4/roslaunch-po-drone-2310.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://po-drone:43078/

SUMMARY

CLEAR PARAMETERS

  • /ptam/

PARAMETERS

  • /ptam/ARBuffer_height
  • /ptam/ARBuffer_width
  • /ptam/AutoInitPixel
  • /ptam/BundleMEstimator
  • /ptam/Calibrator_BlurSigma
  • /ptam/Calibrator_MeanGate
  • /ptam/Calibrator_MinCornersForGrabbedImage
  • /ptam/Calibrator_NoDistortion
  • /ptam/Calibrator_Optimize
  • /ptam/Calibrator_Show
  • /ptam/Cam_cx
  • /ptam/Cam_cy
  • /ptam/Cam_fx
  • /ptam/Cam_fy
  • /ptam/Cam_s
  • /ptam/CameraCalibrator_CornerPatchSize
  • /ptam/CameraCalibrator_MaxStepDistFraction
  • /ptam/CandidateMinSTScore
  • /ptam/FASTMethod
  • /ptam/GLWindowMenu_Enable
  • /ptam/GLWindowMenu_mgvnMenuItemWidth
  • /ptam/GLWindowMenu_mgvnMenuTextOffset
  • /ptam/ImageSizeX
  • /ptam/ImageSizeY
  • /ptam/InitLevel
  • /ptam/MaxKF
  • /ptam/MaxKFDistWiggleMult
  • /ptam/MaxPatchesPerFrame
  • /ptam/MaxStereoInitLoops
  • /ptam/MinTukeySigma
  • /ptam/NoLevelZeroMapPoints
  • /ptam/TrackerMEstimator
  • /ptam/TrackingQualityFoundPixels
  • /ptam/UseKFPixelDist
  • /ptam/WiggleScale
  • /ptam/gui
  • /ptam/parent_frame
  • /rosdistro
  • /rosversion

NODES
/
ptam (ptam/ptam)

auto-starting new master
process[master]: started with pid [2324]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 2cdbce0e-e522-11e4-a241-d8fc9361bda4
process[rosout-1]: started with pid [2337]
started core service [/rosout]
process[ptam-2]: started with pid [2350]
[ INFO] [1429289567.574614608]: starting ptam with node name /ptam
Welcome to PTAM


Parallel tracking and mapping for Small AR workspaces
Copyright (C) Isis Innovation Limited 2008

Gui is on

and NO display of any gui,

when i first launch the
roslaunch ptam ptam.launch
and then
rosbag play ethzasl_ptam_desktop_sample.bag

i get

... logging to /home/farhan/.ros/log/cce2e45a-e522-11e4-9ccd-d8fc9361bda4/roslaunch-po-drone-3701.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://po-drone:52107/

SUMMARY

CLEAR PARAMETERS

  • /ptam/

PARAMETERS

  • /ptam/ARBuffer_height
  • /ptam/ARBuffer_width
  • /ptam/AutoInitPixel
  • /ptam/BundleMEstimator
  • /ptam/Calibrator_BlurSigma
  • /ptam/Calibrator_MeanGate
  • /ptam/Calibrator_MinCornersForGrabbedImage
  • /ptam/Calibrator_NoDistortion
  • /ptam/Calibrator_Optimize
  • /ptam/Calibrator_Show
  • /ptam/Cam_cx
  • /ptam/Cam_cy
  • /ptam/Cam_fx
  • /ptam/Cam_fy
  • /ptam/Cam_s
  • /ptam/CameraCalibrator_CornerPatchSize
  • /ptam/CameraCalibrator_MaxStepDistFraction
  • /ptam/CandidateMinSTScore
  • /ptam/FASTMethod
  • /ptam/GLWindowMenu_Enable
  • /ptam/GLWindowMenu_mgvnMenuItemWidth
  • /ptam/GLWindowMenu_mgvnMenuTextOffset
  • /ptam/ImageSizeX
  • /ptam/ImageSizeY
  • /ptam/InitLevel
  • /ptam/MaxKF
  • /ptam/MaxKFDistWiggleMult
  • /ptam/MaxPatchesPerFrame
  • /ptam/MaxStereoInitLoops
  • /ptam/MinTukeySigma
  • /ptam/NoLevelZeroMapPoints
  • /ptam/TrackerMEstimator
  • /ptam/TrackingQualityFoundPixels
  • /ptam/UseKFPixelDist
  • /ptam/WiggleScale
  • /ptam/gui
  • /ptam/parent_frame
  • /rosdistro
  • /rosversion

NODES
/
ptam (ptam/ptam)

auto-starting new master
process[master]: started with pid [3715]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to cce2e45a-e522-11e4-9ccd-d8fc9361bda4
process[rosout-1]: started with pid [3728]
started core service [/rosout]
process[ptam-2]: started with pid [3741]
[ INFO] [1429289836.057101390]: starting ptam with node name /ptam
Welcome to PTAM


Parallel tracking and mapping for Small AR workspaces
Copyright (C) Isis Innovation Limited 2008

Gui is on
[ptam-2] process has died [pid 3741, exit code -11, cmd /home/farhan/catkin_ws/devel/lib/ptam/ptam image:=/camera/image_raw pose:=pose __name:=ptam __log:=/home/farhan/.ros/log/cce2e45a-e522-11e4-9ccd-d8fc9361bda4/ptam-2.log].
log file: /home/farhan/.ros/log/cce2e45a-e522-11e4-9ccd-d8fc9361bda4/ptam-2*.log

Iv replaced the PtamFixParams.ymal file with that of the sample bag .
here is the rqt_graph

selection_001

Thanks
Farhan

ptam compile issues

Hello,

I'm running ROS Fuerte on ubuntu 12.04, running on the Asctec Mastermind. I just checked out the most recent versions of asctec_mav_framework, ethzasl_sensor_fusion, and ethzasl_ptam.

Compiling the framework and sensor fusion packages works, but when compiling the ptam stack I get an error in the rqt_ptam "rqt_ptam/src/rqt_ptam/remote_ptam.cpp: 326: error: expected constcutor, destructor, or type conversion before EOF"

The line it's referring to is the last line of the file, which says
"PLUGINLIB_EXPORT_CLASS(rqt_ptam::RemotePTAM, rqt_gui_cpp::Plugin)", though, I'm not sure that the error relates to the pluginlib package. Commenting out this line results in successful compilation, but running 'cameracalibration.launch' does not pull up a GUI.

Edit: In fact, I had the camera image topic remapped incorrectly in "ptam.launch", which was the reason that the GUI did not initialize. So far the package seems to be working as intended. I'm not sure what the consequences are for removing this line of code. I will leave the issue open for now..

Thanks

Performance Issues on Catkinized Version

Hi,

I have been using this package for my research and recently updated it to the catkinized version in order to build it directly into my code.

However, I am seeing a significant performance degradation when it comes to the map building. The map does not keep all points, but rather seems to have a sliding window. I also get this error:

NANNERY!
0.000967144 -8.89124e-05 0.00125707
-8.89124e-05 9.84169e-06 -0.000115841
0.00125707 -0.000115841 0.00163993

alot more than I did before catkinization. I have the previous version saved and this error never pops up.

Hope someone knows what is up with this.

Thanks,

Oscar Mendez

Cannot install ethzasl_ptam package

I'm following the instructions at the package page at ros.org

# Fetch ethzasl_ptam stack
git clone git://github.com/ethz-asl/ethzasl_ptam.git ethzasl_ptam

# Update ROS_PACKAGE_PATH (if necessary)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ethzasl_ptam

# Install ROS standalone tools, if not done already
sudo apt-get install python-rosinstall python-rosdep

# Install system dependencies:
rosdep install ptam

and on the last step (rosdep install ptam) I get

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
ptam: Cannot locate rosdep definition for [ptam_com]

Any ideas what's going wrong?

Installation problem

Hi
I have an installation problem when I run "rosdep install ptam"
I got an error:
ptam: cannot locate rosdep definition for [ptam_com]

Ubuntu 12.04
ROS groovy

Problem with estimated pose and grid not stable

Hi guys,
I'm trying to use PTAM to localize and track a mobile robot using only a camera.
I have a few questions to ask:

  1. it's possible to mantain the correct tracking and create a consistent map without using any sensor besides the camera? I know that PTAM is a monocular SLAM and so can not recover the absolute scale of the map, but, for the time being, I don't care.

  2. every time I run the program the grid created in the initialization, after some movements, moves away from the initial position and sometimes becomes very small. I've tried to change some parameters as suggested in issue #7 but it doesn't work. I don't understand if the problem regards the camera, the calibration, the initialization or something else.

  3. how can I transform the value of the estimated PTAM pose in metric scale without using any sensor that provides metric information? Maybe during the initialization I have to translate the camera exactly 10 cm so the calculated pose rappresents the distance in metric scale from the center of the grid?

Thanks in advance

Mauro

Trouble getting a propper camera image

Hey guys,

really great work that you have done there. I am really looking forward to get this package running correctly on my thesis project. But until now i can not get a propper camera image.

At first. I run a camera driver through my the usb driver from "bosh" and i get this:

file = /home/xyzxyz/ros/ethzasl_ptam/ptam/src/System.cc
line = 95
cond = img->encoding == sensor_msgs::image_encodings::MONO8 && img->step == img->width

it seems to be that i need a mono8 image ? So i tried two things:

  1. I just took away the "ROS_ASSERT" line and looked what happend. The result was a grey scale picture which had many layers over each other and looked everything else than korrekt.
  2. I used a converter node which converts my image from rgb8 to mono8. The result here was that the ROS_ASSERT error did not occure, but i got a segmention fault a couple of lines later..

Do you have any solution for my problem ? Am i maybe using a wrong camera driver ?

Best regards

RGB video source problem

Hi the PTAMM code started to work finally in Windows7 and I was finally able to get the video source from usb web cam using the code.

include “VideoSource.h”

//#include

include

include

include

include

include

include

using namespace CVD;
using namespace std;
gray

using namespace GVars3;
using namespace cv;

define OPENCV_VIDEO_W 640

define OPENCV_VIDEO_H 480

namespace PTAMM
{
VideoSource::VideoSource()
{
cout << " VideoSource_Linux: Opening video source…" <isOpened()){
cerr << "Unable to get the camera" << endl;
exit(-1);
}
cout << " … got video source." << endl;
mirSize = ImageRef(OPENCV_VIDEO_W, OPENCV_VIDEO_H);
};

ImageRef VideoSource::Size()
{
return mirSize;
};

void conversionNB(Mat frame, Image &imBW){
Mat clone = frame.clone();
Mat_& frame_p = (Mat_&)clone;
for (int i = 0; i < OPENCV_VIDEO_H; i++){
for (int j = 0; j < OPENCV_VIDEO_W; j++){
imBW[i][j] = (frame_p(i,j)[0] + frame_p(i,j)[1] + frame_p(i,j)[2]) / 3;
}
}

}

void conversionRGB(Mat frame, Image &imRGB){
Mat clone = frame.clone();
Mat_& frame_p = (Mat_&)clone;
for (int i = 0; i < OPENCV_VIDEO_H; i++){
for (int j = 0; j < OPENCV_VIDEO_W; j++){
imRGB[i][j].red = frame_p(i,j)[2];
imRGB[i][j].green = frame_p(i,j)[1];
imRGB[i][j].blue = frame_p(i,j)[0];
}
}
}

void VideoSource::GetAndFillFrameBWandRGB(Image &imBW, Image &imRGB)
{
Mat frame;
VideoCapture* cap = (VideoCapture*)mptr;
*cap >> frame;
conversionNB(frame, imBW);
conversionRGB(frame, imRGB);
}
}

But the video source for PTAMM is black and white how do I get the an RGB video source instead of a gray image as video source. I think I need to add the line

cvCvtColor(&frame,&frame,CV_GRAY2BGR);

but it dosnt work cause I get OpenCV assertion error.
Could someone tell me how to get RGB type or a coloured video Input Source

PTAM Installaltion problem

I could not install PTAM using the instructions given in tutorial. I encounter error "catkin_make-command not found" when entering "catkin_make" in the terminal. I am following these instructions given in the official wiki of ptam -

  1. cd ~/catkin_ws/src
  2. git clone https://github.com/ethz-asl/ethzasl_ptam
  3. cd ..
  4. catkin_make

I have catkin already installed.

initialization failure for PTAM

Hi, guys

I run the PTAM following this tutorial because my laptop does not have a Nvidia graphic card:
http://wiki.ros.org/ethzasl_ptam/Tutorials/remote_ptam

I got:
process[ptam-1]: started with pid [5581]
[ INFO] [1422319852.242389196]: starting ptam with node name /ptam
Welcome to PTAM


Parallel tracking and mapping for Small AR workspaces
Copyright (C) Isis Innovation Limited 2008
Gui is off

Then I run the remote_ptam. When I first pressed the space key, I can see feature tracks when I moved the camera but when I pressed the space key again, the PTAM node died immediately:
[ptam-1] process has died [pid 5581, exit code -4, cmd /home/liping/catkin_ws/devel/lib/ptam/ptam image:=/gray/image_raw pose:=pose __name:=ptam __log:=/home/liping/.ros/log/88182626-a5be-11e4-87f3-40e2301b88e0/ptam-1.log].
log file: /home/liping/.ros/log/88182626-a5be-11e4-87f3-40e2301b88e0/ptam-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete

I tried many times with large baseline between the first key frames. Any idea why this happens?
Thank you.

BTW, this link: #6 did not help me solve my problem.

PTAM Motion Model

Hi,

I have some questions regarding the motion model. Is it the original motion model assumption in PTAM for "CONSTANT"? Are there any explanation for the other two motion models available in this package? Thanks before.

Cheers,
fins

No GUI during calibration although using NVIDIA graphics card

I am trying to run the calibration tool, but I can not see any GUI appearing. I have a Samsung NP450R4E Laptop with a NVIDIA graphics card (optimus). Here are some greps of my OpenGL setting:

long@long:~/Workspaces/catkin$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.4.0 NVIDIA 331.38
long@long:~/Workspaces/catkin$ glxinfo | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 710M/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 331.38
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 331.38
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

And here is the dump of roslaunch:

SUMMARY
========

CLEAR PARAMETERS
 * /cameracalibrator/

PARAMETERS
 * /cameracalibrator/ARBuffer_height: 900
 * /cameracalibrator/ARBuffer_width: 1200
 * /cameracalibrator/AutoInitPixel: 20
 * /cameracalibrator/BundleMEstimator: Tukey
 * /cameracalibrator/Calibrator_BlurSigma: 1.0
 * /cameracalibrator/Calibrator_MeanGate: 10
 * /cameracalibrator/Calibrator_MinCornersForGrabbedImage: 20
 * /cameracalibrator/Calibrator_NoDistortion: 0
 * /cameracalibrator/Calibrator_Optimize: 0
 * /cameracalibrator/Calibrator_Show: 0
 * /cameracalibrator/Cam_cx: 0.50417
 * /cameracalibrator/Cam_cy: 0.51687
 * /cameracalibrator/Cam_fx: 0.795574
 * /cameracalibrator/Cam_fy: 1.25149
 * /cameracalibrator/Cam_s: 0.482014
 * /cameracalibrator/CameraCalibrator_CornerPatchSize: 20
 * /cameracalibrator/CameraCalibrator_MaxStepDistFraction: 0.3
 * /cameracalibrator/CandidateMinSTScore: 70
 * /cameracalibrator/FASTMethod: OAST16
 * /cameracalibrator/GLWindowMenu_Enable: True
 * /cameracalibrator/GLWindowMenu_mgvnMenuItemWidth: 90
 * /cameracalibrator/GLWindowMenu_mgvnMenuTextOffset: 20
 * /cameracalibrator/ImageSizeX: 640
 * /cameracalibrator/ImageSizeY: 480
 * /cameracalibrator/InitLevel: 1
 * /cameracalibrator/MaxKF: 15
 * /cameracalibrator/MaxKFDistWiggleMult: 1
 * /cameracalibrator/MaxPatchesPerFrame: 300
 * /cameracalibrator/MaxStereoInitLoops: 4
 * /cameracalibrator/MinTukeySigma: 0.4
 * /cameracalibrator/NoLevelZeroMapPoints: True
 * /cameracalibrator/TrackerMEstimator: Tukey
 * /cameracalibrator/TrackingQualityFoundPixels: 50
 * /cameracalibrator/UseKFPixelDist: True
 * /cameracalibrator/WiggleScale: 0.1
 * /cameracalibrator/gui: True
 * /cameracalibrator/parent_frame: world
 * /rosdistro: indigo
 * /rosversion: 1.11.7

NODES
  /
    cameracalibrator (ptam/cameracalibrator)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[cameracalibrator-1]: started with pid [26423]
GNU gdb (Ubuntu 7.7-0ubuntu3.1) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/long/Workspaces/catkin/devel/lib/ptam/cameracalibrator...(no debugging symbols found)...done.
Starting program: /home/long/Workspaces/catkin/devel/lib/ptam/cameracalibrator image:=camera/image_raw pose:=pose __name:=cameracalibrator __log:=/home/long/.ros/log/a8fc0c54-172f-11e4-971f-24f5aa6f5f4f/cameracalibrator-1.log
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[ INFO] [1406645466.213345330]: starting CameraCalibrator with node name /cameracalibrator
  Welcome to CameraCalibrator 
  -------------------------------------- 
  Parallel tracking and mapping for Small AR workspaces
  Copyright (C) Isis Innovation Limited 2008 
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0x7fffe9b7b700 (LWP 26430)]
[New Thread 0x7fffe937a700 (LWP 26431)]
[New Thread 0x7fffe8b79700 (LWP 26432)]
[New Thread 0x7fffe3fff700 (LWP 26437)]
Gui is on
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]

Might there be a problem with NVIDIA Optimus?

working on asctec pelican

dose your project work on asctec pelican if it dose how to setup up in on

i am sorry i total new for these things so forgive my stupid question :D

No message receive from /vslam/pc2

When I try to run the ptam remotely, the pointcloud2 in rviz showed that it did not receive any message from /vslam/pc2.

What may bring the problem? Is that because the camera calibration?

PTAM : libGL.so.1: error adding symbols: DSO missing from command line

Hi,I'm trying to install PTAM on ubuntu 14.04 and I have this error :

/usr/bin/ld: GLWindow2.o: référence au symbole non défini «glColorMask»
//usr/lib/x86_64-linux-gnu/mesa/libGL.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [PTAM] Erreur 1

Any suggestion please? And, thank you.

ptam remotely from odroid

Hi,
I am running the odroid branch of ptam on my odroid u2 running linaro 12.11 ubuntu with ros fuerte. Since I cannot view directly, I am trying to use remote_ptam from my laptop running the standard ethzasl_ptam on ubuntu desktop 12.04 with ros groovy.

On my laptop, both direct and remote versions of ptam work well on local host. On the odroid, the program runs fine, but after map initialization there is a segmentation fault. I dont think its got to do with the package, but any hint on a broken package will be helpful.

On my laptop side, I can see that vslam_preview and space key topics of the remote_ptam are registered and I am able to initialize the map. Then I see the grid and the image freezes.

roslaunch: https://dl.dropbox.com/u/8948006/roslaunch-linaro-ubuntu-desktop-8495.log
Unfortunately I do not have any ptam specific log. The system doesnt log it. I am not sure why. Any idea on how it can be enabled is appreciated. I am guessing that segmentation fault happens before log.
master log: https://dl.dropbox.com/u/8948006/master.log

Thank you
Aswin

kinect support

Hi,
I would like to test this software with the kinect camera. I am running Ubuntu 12.04 and Fuerte. I compiled everything but when I roslaunch ptam or the camera calibration I just get

[ INFO] [1361374448.310745381]: starting ptam with node name /ptam
Welcome to PTAM


Parallel tracking and mapping for Small AR workspaces
Copyright (C) Isis Innovation Limited 2008

Am I supposed to enter some input to start the program?

PTAM Nan crash

Hi
I've noticed this issue quite a few times, and wanted to know if others face this as well. I'm running PTAM on the Pandaboard running Ubuntu 12.04 and Fuerte, and if I try to initialize a map with very little movement between consecutive keyframes, I get a bunch of error messages
You sucker, tried to give me a nan
and then the node becomes unresponsive.
I set the BundleDebugMessages parameter to be true, and then I see
Nuked 0 measurements.
printed in an infinite loop. My main worry is that I see this error sometimes when AutoInit is set to be true, and PTAM crashes mid flight.
Should I just handle it with an exception, or are worse things happening?
Thanks!

Nor Ptam or Cameracalibrator show image from camera

Hello,

I am very interested in trying out your Ptam package. It looks a very promising tool. However I am facing a problem you might be able to help. My issue is that whilst I am capable of seeing properly the image of the camera using the standard "rosrun image_view image_view image:=camera/image_raw", I am not capable of seeing anything when running "roslaunch ptam cameracalibrator.launch" ( the node runs properly, and I get some green points but nothing else). Do you have an explanation why it happens?

Thanks in advance,

Diego

compilation problem ethzasl_ptam

hello
im having the following compilation problem

Linking CXX executable /home/farhan/Desktop/catkin_ws/devel/lib/ptam/ptam
/usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -llapack
collect2: ld returned 1 exit status
make[2]: *** [/home/farhan/Desktop/catkin_ws/devel/lib/ptam/ptam] Error 1
make[1]: *** [ethzasl_ptam/ptam/CMakeFiles/ptam.dir/all] Error 2
make: *** [all] Error 2
Invoking "make" failed

regards

farhan

Groovy compilation fails

Hi,
The compilation fails on groovy. Surprisingly I did not have any problems in fuerte. Im using Ubuntu 12.10, x86 32 bit
I added #include unistd.h in ptam/thirdparty/libcvd/installfiles/progs/video_play_source.cc. This is needed for usleep.

Build log: https://dl.dropbox.com/u/8948006/build_output.log

I understand that the problems are thirdparty specific. Some errors are already highlighted here http://ewokrampage.wordpress.com/troubleshooting-faq/

However I do not know how to solve them for this ROS package.

Regards

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.