Friday, April 3, 2009

Opencv with Octave

The new opencv SVN version can support octave, BUT not download version.
If you download the source and try to install it which can support octave, you will find it can not find octave.
You need install most new version of octave and swig. For ubuntu , apt-get can find a old version of swig, but that can not support this function.
After install swig and octave.
Using
$./configure --with-swig --with-octave

It will show you it can find octave and swig.
Then do :
$make

Now you will get error like:
"can not find octcvseq.hpp" or "INDEX",etc ..


Now you need find these files from SVN opencv version.
Copy these files to /opencv/interface/swig/octave/
Dont copy all files, just copy what it need, otherwise you will get more errors.

Wednesday, April 1, 2009

Open Source SLAM Software

Author Description Link
Kai Arras
The CAS Robot Navigation Toolbox, a Matlab simulation toolbox for robot localization and mapping.
www.cas.kth.se/toolbox/index.html

Tim Bailey Matlab simulators for EKF-SLAM, UKF-SLAM,and FastSLAM 1.0 and 2.0.
www.acfr.usyd.edu.au/homepages/academic/tbailey/software/index.html

Mark Paskin Java library with several SLAM variants, including Kalman filter, information filter, and thin junction tree forms. Includes a Matlab interface.
www.stanford.edu/~paskin/slam/

Andrew Davison Scene, a C++ library for map-building and localisation. Facilitates real-time single camera SLAM.
www.doc.ic.ac.uk/~ajd/Scene/index.html

Jos ́ Neira
e Matlab EKF-SLAM simulator that demonstrates joint compatibility branch-and-bound data association.
http://webdiis.unizar.es/~neira/software/slam/slamsim.htm


Dirk H ̈hnel
a C language grid-based version of FastSLAM.
www.informatik.uni-freiburg.de/~haehnel/old/download.html

Various Matlab code from the 2002 SLAM summer school.
www.cas.kth.se/slam/toc.html

Table 2: Online Datasets
Author Description Link
Jose Guivant, Juan Nieto Numerous large-scale outdoor datasets, notably and Eduardo Nebot the popular Victoria Park data.
www.acfr.usyd.edu.au/homepages/academic/enebot/dataset.htm


Chieh-Chih Wang Three large-scale outdoor datasets collected by the Navlab11 testbed.
www.cs.cmu.edu/~bobwang/datasets.html


Radish (The Robotics Many and varied indoor datasets, including large-Data Set Repository) area data from the CSU Stanislaus library, the
Intel Research Lab in Seattle, the Edmonton Con-
vention Centre, and more.
http://radish.sourceforge.net/

IJRR (The International IJRR maintains a webpage for each article, often Journal of Robotics Research containing data and video of results. A good example is a paper by Bosse et al. [3], which has data from Killian Court at MIT.
www.ijrr.org/contents/2312/abstract/1113.html

Monday, March 16, 2009

A real time tool can not promise your task is real time

A real time tool like Orocos RTT can not promise that your task is real time task.. It just means that you can use it to build real time task.

A simple case is that:
I have two task, one is period task which has lower priority than the other aperiodic task. If aperiodic need more process time than the interval time of period task, the periodic task can not run anymore as it can not get cpu time. So the periodic task is not periodic anymore. Of course ,for periodic task is not realtime. But if aperiodic task has highest priority in the OS, it will be realtime task.

So whether the task is realtime depends on how you design your multi-task. The real time tools like RTAI or RTLINUX ,hence orcos just give you the ability to build your realtime task.

Saturday, March 14, 2009

Orocos: real time multi-task system

What's mean real time?
It does not mean it's fast. It means the task can be finished in a certain time(determination) with out disturbed by system process or user process.
For a period task, it will run and if it was finished in one period, it will wait next period. When it's waiting , the processor will give the time to other process, which can run for a moment, so that the processor can use more time efficiently .

Orocos : the way to trigger nonperiod activity update funtion

For NonPeriod Activity, the updateHook just can work once after start. But how can I make it work when events come or command come?

Three ways to make updateHook work again for NonPeriod activity:
1, The simple way is add trigger in the updateHook function. But this way will waste the processor time. It likes a loop.
2, Using command method. If other task use this NonPeriod activity's command, then it will run again. The NonPeriod activity engine will first run command, and then run updateHook function.
3, Using event method. But event has two kinds. One is synchronous and the other one is asynchronous. Only the asynchronous one can be used to trigger updateHook. The reason is if the call back is in this NonPeriod activity, synchronous only make this call back run in caller's engine but not this NonPeriod activity's engine. Asynchronous will make the call back part work in the NonPeriod activity's engine.

Thursday, March 12, 2009

A way to load module when linux system is booting

If you want load a modules "some.ko" to kernel when system is booting.. You can do this:

$ cd /etc/init.d/
$ sudo gvim "boot.local"

Add follow line in boot.local file:
"insmod /filedirectory/some.ko"

Make the file executable
$ sudo chmod +x boot.local


Make it bootable ..Dont forget the last dot.
$ sudo update-rc.d boot.local start 51 S .



Now If you reboot system ,you will see the that module already was loaded by command "lsmod";

Monday, March 9, 2009

Combination translation and rotation

The order is very important, so rotation before translation is different translation after rotation.
Of course , rotation matrix also can not change the order ...

Remember that..