ethz-asl / ethzasl_ptam Goto Github PK
View Code? Open in Web Editor NEWModified version of Parallel Tracking and Mapping (PTAM)
Home Page: http://wiki.ros.org/ethzasl_ptam
Modified version of Parallel Tracking and Mapping (PTAM)
Home Page: http://wiki.ros.org/ethzasl_ptam
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:
Any fix?
Thanks.
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
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
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
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
Hi guys,
When I want to search somethings in Google, I found PTAM source code has been rereleased under the GPL on Github. Do you have any interest in moving these code? I think this licence is better than original licence.
wordpress link http://ewokrampage.wordpress.com/
github link https://github.com/Oxford-PTAM/PTAM-GPL
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.
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?
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
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?
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.
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?
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
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
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...
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
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!
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:
Do you have any solution for my problem ? Am i maybe using a wrong camera driver ?
Best regards
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.
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
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,
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.
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&
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)
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:
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.
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
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.
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:
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?
I am looking forward to hear from you. Thank you so much for your time!
Hope that helps! Thanks!
Best Regards,
Giovanni Sutanto
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.
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
using namespace CVD;
using namespace std;
using namespace GVars3;
using namespace cv;
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
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
and some text
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.
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
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
this is a test to see how this issue thing works
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
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
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:
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.
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.
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
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
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?
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
Does the ethzasl_ptam support Ubuntu12.04 & ROS hydro?
Thanks a lot!:)
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
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:
Hi,
I am trying to understand the coordinate system of /vslam/pose. I have a few questions:
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.
What is the difference between /vslam/pose and /vslam/pose_world ? Only the x coordinate seems to be flipped.
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?
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!
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
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
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.
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 -
I have catkin already installed.
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
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/
CLEAR PARAMETERS
PARAMETERS
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/
CLEAR PARAMETERS
PARAMETERS
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
Thanks
Farhan
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.
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?
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?
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 !
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.