결론부터 말하자면
GTK+Player, stage(64)
Emss(64)
opros(64)
boost(64)
ace(64)
wxWidgets(64)
player stage는 아래문서를 보고 설치 했다.
http://www.doesnotunderstand.org/wikka.php?wakka=InstallingPlayerAndStageInMacOSX106
INSTALL_DIR는 /usr/local로 했다.
설치지 가장 문제가 되는 부분은
/usr/local/lib과 /opt/local/lib이 충돌이 난다는 것다.
arch 선택은 x86_64로 설정 했고
gtk는 gconvert.c 소스를 약간 수정해서 설치 했다. http://letsneverdie.net/blog/?p=75
그래야 player에 있는 Playerv를 쓸수 있다.
emss설치시에는 -lasound가 문제가 되는데 UNIX AND NOT APPLE 조건으로 설치를 배제했고
boost는 그냥 설치, opros는 semapore관련 소스만 간단히 수정해서 설치 했다.
wxWidgets는 opt에 있는 라이브러리를 wxWidgets이 참조하는 라이브리의 path를 ln -s 해서 설치 한게 가장 큰 이슈인것 같다.
install_name_tool 사용 방법에 관해서 http://web.archiveorange.com/archive/v/KtjmXNbcegyOnszBdOHm
ace는 보통 설치 하듯 했고
전반적으로 64bit에서 설치 했고, opt/local/lib은 모두 64bit이다. 반면 /usr/lib, /usr/local/lib은 i386, x86_64, ppc로 링크되어 있다.
여기서 한가지 배운점은 pkg_config_path를 원하는 path로 설치 전에 export해주고
cmake 작성시 pkg-config는 꼭 제작 해야 겠다.
mac은 gcc 4.2( 10.6.3 )로 되어 있어 그게 설정 해줄 것이다. 소스 변경은 없지만 라이브러리 path라던지 컴파일 옵션을 잘 알아야 헤매지 않겠다.
3rdparty관련 라이브러리 소스 수정은 기억이 안나 백업 해서 SVN에 올린다.
습득 툴로는
macports다
sudo port install xxx로 debian의 apt-get과 비슷한 툴이다.
참고로 cmake , pkg-config와 같은 개발툴은 다 설치 해줘야 한다.
우선 여기서 일달락 짖고 본격적으로 IPAD와 놀아 보자 .
2010년 8월 24일 화요일
2010년 8월 23일 월요일
mac for opros, convert modification context
/Users/bcc/build/emss_1.3/Core/GUI/MapObjectsView.cpp:81: error: cast from ‘MapObject*’ to ‘int’ loses precision
/Users/bcc/build/emss_1.3/Core/GUI/RemoteInterfaceView.cpp:96: error: cast from ‘RemoteInterfaceMessage*’ to ‘int’ loses precision
/Users/bcc/build/emss_1.3/Core/GUI/TaskEditor.cpp:134: error: cast from ‘Task*’ to ‘int’ loses precision
mrpt
GL/glut.h -> GLUT/glutl.h
GL/glext.h -> OpenGL/glext.h
/Users/bcc/build/emss_1.3/Core/GUI/RemoteInterfaceView.cpp:96: error: cast from ‘RemoteInterfaceMessage*’ to ‘int’ loses precision
/Users/bcc/build/emss_1.3/Core/GUI/TaskEditor.cpp:134: error: cast from ‘Task*’ to ‘int’ loses precision
mrpt
GL/glut.h -> GLUT/glutl.h
GL/glext.h -> OpenGL/glext.h
2010년 8월 22일 일요일
opros for mac os x
player(not gtk), oce, cdl, RCF, ACE, boost is complete install
GTK
wxWidget
TAO
MRPT
emss
GTK
wxWidget
TAO
MRPT
emss
2010년 8월 21일 토요일
package 하기
윈도우는 NSIS로 했다
CPack이 지원한다.
문제는 linux인데 압축 방식으로 하거나 debian으로 package를 만들어서 설치 할 수 있다.
CPack, CTest, CMake는 필수로 해야 할 것 같다.
Mac에서 시도 중인데 gcc를 지원 하니까 쉽게 포팅하고 실행 해 볼 수 있을 것 같다.
이왕에 할거 iphone, ipad에도 도전해 보자! 홧팅
CPack이 지원한다.
문제는 linux인데 압축 방식으로 하거나 debian으로 package를 만들어서 설치 할 수 있다.
CPack, CTest, CMake는 필수로 해야 할 것 같다.
Mac에서 시도 중인데 gcc를 지원 하니까 쉽게 포팅하고 실행 해 볼 수 있을 것 같다.
이왕에 할거 iphone, ipad에도 도전해 보자! 홧팅
2010년 8월 20일 금요일
mac error
1번째 에러
file:src/cocoa/app.mm
extern "C" static void ObserveMainRunLoopBeforeWaiting(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info);
extern "C" static void ObserveMainRunLoopBeforeWaiting(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
434, 435 부분의 "C" -> "C++" 변경 해봐라(구글링)
2번째 에러
ref
1. Unlike C++, a class in Objective-C which doesn't inherit from NSObject won't work. (Well, you can make it work, but you don't want that usually.) Note the line @interface MyObj:NSObject.
2. To use NSObject, do #import
3. Don't forget to use the extension .mm for Objective-C++ files.
WXNSTextFieldDelegate은 NSObject를 상속되었기 때문에
static wxObjcAutoRefFromAlloc sg_cocoaDelegate([[WXNSTextFieldDelegate alloc] init]); 정의된 sg_cocoaDelegate를 delete(함수포인터?)로 설정해도 objc-object형 변형엔 문제 없을 것 같은데...
(objc-object*)wxObjcAutoRefFromAlloc or
(NSObject*)wxObjcAutoRefFromAlloc 이렇게 해야 하나?
file:src/cocoa/app.mm
extern "C" static void ObserveMainRunLoopBeforeWaiting(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info);
extern "C" static void ObserveMainRunLoopBeforeWaiting(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
434, 435 부분의 "C" -> "C++" 변경 해봐라(구글링)
2번째 에러
ref
1. Unlike C++, a class in Objective-C which doesn't inherit from NSObject won't work. (Well, you can make it work, but you don't want that usually.) Note the line @interface MyObj:NSObject.
2. To use NSObject, do #import
3. Don't forget to use the extension .mm for Objective-C++ files.
WXNSTextFieldDelegate은 NSObject를 상속되었기 때문에
static wxObjcAutoRefFromAlloc
(objc-object*)wxObjcAutoRefFromAlloc
(NSObject*)wxObjcAutoRefFromAlloc
2010년 8월 12일 목요일
orocos 두번째 설치기
지난번에 잘 설치 했는데 이번에는 뭔가 꼬였다.
우선 rtt를 tao랑 같이 링크 하기로 했는데
tao의 디버그를 rtt cmake에서 못찾아 생기는 문제 였다.
우선 문제해결은 rtt cmake 에서 debug시 ACEd.lib, TAOd.lib를 선택하고
반대로 Release시 ACE.lib, TAO.lib를 선택 하게 한다.
다른 TAO 관련 라이브러리도 마찮가지이다.
rtt 컴파일시 링크 에러가 걸리는데 당연
디버그네임으로 있을 함수들이 릴리즈에서는 당연이 없으니까 생기는 에러이다.
우선 release, debug로 ACE, TAO를 전부 재 빌드후 rtt cmake를 좀 수정해서
해당 파일을 링크하도록 해야 겠다.
우선 rtt를 tao랑 같이 링크 하기로 했는데
tao의 디버그를 rtt cmake에서 못찾아 생기는 문제 였다.
우선 문제해결은 rtt cmake 에서 debug시 ACEd.lib, TAOd.lib를 선택하고
반대로 Release시 ACE.lib, TAO.lib를 선택 하게 한다.
다른 TAO 관련 라이브러리도 마찮가지이다.
rtt 컴파일시 링크 에러가 걸리는데 당연
디버그네임으로 있을 함수들이 릴리즈에서는 당연이 없으니까 생기는 에러이다.
우선 release, debug로 ACE, TAO를 전부 재 빌드후 rtt cmake를 좀 수정해서
해당 파일을 링크하도록 해야 겠다.
2010년 8월 3일 화요일
2010년 7월 30일 금요일
2010년 7월 26일 월요일
QT pro확장자 파일을 Cmake로 변환하기
CMake 모듈에서 QT관련 함수를 많이 제공하는 것 같다.
이 함수를 이용해서 *pro의 qt 프로젝트 파일을 변경하는 작업을 해야 한다.
그 다음에 emss를 msvc 프로젝트로 옮기고 이것을 opros 빌드에 포함시키는 작업을 해야한다.
그러면 emss의 알고리즘과 GUI와 Qt를 opros 컴포넌트화 하는데 쉽게 개발 할 수 있다.
기간은 단 하루다. !!!
2010년 7월 11일 일요일
wxGLCanvas 링크 에러 문제
mrpt-source-dir/INSTALL_COMPILE.html 문서를 보면 알 수 있다.
내용인즉
#define wxUSE_GLCANVAS 1
mrpt를static 으로 하려면
wxWidgets를 Debug/Release로 컴파일 하고
mrpt를 dll로 하려면
wxWidgets를 Dll Debug/Dll Release로 컴파일 한다.
2010년 7월 6일 화요일
Install list on new notebook
0. ubuntu 9.10 USB driver로 인스톨
1. sudo apt-get install build-essential cmake subversion
2. opencv2.1.0 download & install
3. wxWidgets 2.8.11 download & install
4. ACE framework 5.8.0 download & install
sudo apt-get install libssl-dev
5. orocos-rtt-1.10.3 download & install
6. sudo apt-get install libboost1.38-dev
7. mrpt-0.9.0 download & install
sudo apt-get install libgl1-mesa-dev(opengl) : mesa?
sudo apt-get install libglu-dev (openglu)
8. opros-oce 1.5.4 download & install
다사 download
apt로 하면 간단히 끝내지만 ACE같은 경우에는 코어 버전과 안맞는지 에러가 발생 한다.
그래서 안정적으로 하려면 이렇게 재컴파일 해야 한다.
$ sudo apt-get install build-essential cmake libwxgtk2.8-dev \ libwxbase2.8-dbg libwxgtk2.8-dbg libftdi-dev libglut3-dev \ libhighgui-dev
위의 설치 추가
Add --with-opengl option on install wxWidgets
degree fitting curve
p1 = 4.088 (-2.889, 11.07)
p2 = -45.35 (-106.2, 15.47)
p3 = 208.7 (-1.841, 419.2)
p4 = -512.5 (-880.1, -144.9)
p5 = 716.8 (378.4, 1055)
p6 = -560.3 (-714.5, -406.1)
p7 = 217.5 (190.7, 244.4)
x = distance
2010년 7월 3일 토요일
베타를 위한 컴포넌트 제작기
알파 패키기는 단순하다.
하지만 베타 패키지는 단순하지가 않다.
GUI를 많이 필료로 하고, 알고리즘 또한 필료하다.
MRPT라는 툴킷을 찾았다. opencv, wxWidget를 쓴다.
라이선스는 GPL이다.
우선 MRPT를 재컴파일 해야 한다. wxWidget이 걸린다.
win32 configuration를 제공하지 않고 build에서 바이너리로 제공한다.
configuration를 통해서 설정할 게 wxCanvas이다.
우선 강제로 프로젝트에 재정의 했다.
그리고 재컴파일 한후
MRPT에서 APP쪽에 강제로 xx_gl.lib, xx_avd.lib를 포함 시켜야 한다.
MRPT에서 APP쪽에 강제로 xx_gl.lib, xx_avd.lib를 포함 시켜야 한다.
wxCanvas와 wxGrid때문이다.
지금 빌드가 진행 중이다. 오늘 까지 빌드는 완성해야 하는데 .... 할 수 있을까 걱정이다.
emss -> MRPT로 우선순위가 변경 되었다.
emss framework
icreate roomba를 이용한 framework를 찾았다.
시뮬레이션 및 GUI, 알고리즘을 컴포넌트 제작에 도움이 될 것같아 컴파일 해보기로 했다.
모두 QT로 구성되어 있다. 오프로스 컴포너트로 하기 위해서는 MSVC에서 컴파일 되어야 한다.
열라 오래 걸린다. mingw는 바이너리가 있어 그냥 설치하고 QCreate를 통해 개발 하면 되는데 MSVC를 이용하려니 컴파일시간이 몇시간 걸린다.
configuration -> nmake 에러나면 nmake ...clean -> configuration 하면 된다.
그리고 프로젝트를 열러서 빌드, 끝
further
emss with opros하려면 qt를 opros에 적용하거나 socket이나 IPC를 써서 서로 통신 해야 한다.
emss에서 TCP/UDP App를 제공하시만 로직 안으로 들어가기에는 부족하다. 그래서
결론은
interaction for qt 컴포넌트를 만들어 emss framework와 통신하기로 했다.
2010년 6월 25일 금요일
Degree 계산1
Deg_d = 45;
Deg_d += Deg_s;
Deg_s1 = Deg_s;
while(1)
Deg_s = source.object();
if( Deg_d > 360 )
if( Deg_s+1/Deg_s1 == 0 )
if( Deg_s > Deg_d-360)
break; // 45deg complete!!
else
if( Deg_s >= Deg_d )
break; // 45deg complete!!
Deg_d = -45
Deg_d += Deg_s;
Deg_s1 = Deg_s;
if( Deg_s1 == 0 ) Deg_s1++;
while(1)
Deg_s = source.object();
if( Deg_d <= 0 )
if( Deg_s/Deg_s1 > 1)
if( Deg_s <>
break; // -45deg complete!!
else
if( Deg_s <= Deg_d)
break; // -45deg complete!!
2010년 6월 24일 목요일
ubuntu에서 ACE사용
ubuntu에서 sudo apt-get install libACE*로 설치해서 사용하면 라이브러리 dump에러가 발생한다.
꼭 다운로드 후 build/.../configuration 로 설치 하자.
gazebo 설치하기
navigation 시뮬레이션으로 gazebo를 설치 하려 했지만 3d engine쪽에 문제가 있어
ROS용 gazebo ubuntu 바이너리를 가지고 설치 했다.
하지만 윈도우에서 손쉽게 통신 하기에는 무리가 있어 gazebo도 후보에서 단락됐다.
2010년 5월 26일 수요일
2010 5월 포항 출장
player/stage로 네비게이션을 테스트하려고 했는데 stage사양이 딸린 관계로
새로운 노트북에 다시 설치 해서 테스트 하려고 한다.
ubuntu 10.x는 package의존도가 안맞아 9.04로 다시 설치 한다.
문제는 다시 stage를 설치하고 테스트해본 결과 저사양때와 같이 200~500msec정도 나온다면 다시 원점으로 되돌아 간다.
어느정도 시간이 맞아야 한다. 즉 네비게이션에서 오도메트리 샘플타임인 50msec와 비슷한 시간을 제공해야 한다. 테트라에서는 100msec를 보증 한다.
즉 오도메트리 50msec, sonar 샘플 타임인 1000/4msec가 어느정도 보장 해야 된다.
2010년 5월 19일 수요일
PlayerStage example code = Epuck
http://www-users.cs.york.ac.uk/~jowen/player/playerstage-manual.html
소스를 보면 유용한 정보가 하나 들어 있다.
setDifferentialMotors to SeSpeed 이다.
즉 모터값을( 윈쪽, 오른족 ) 선속도, 가속도 값으로 변환 한다.
http://www.physicsforums.com/showthread.php?t=263149
위의 사이트에서 참고 했다는데
이런사이트도 있구나싶다. !
Some More Example Code에서 cfg, world, inc파일을 참고해서 다른 시뮬에 적용해 보자
2010년 5월 17일 월요일
Player Stage install
== download ==
player-3.0.0stage-3.2.2
tar xvzf player-3.0.0
cd player
mkdir build
cd build
cmake ../
sudo make install
tar xvzf stage-3.2.2
cd stage
mkdir build
cd build
cmake ../
sudo make install
if can't install
rm -rf player/build stage/build
reinstall !!!
2010년 5월 14일 금요일
re-study ROS and OROCOS
bookmark: http://www.ros.org/wiki/ROS/Tutorials/CreatingMsgAndSrv
bookmark: http://www.ros.org/wiki/ROS/Tutorials/UnderstandingNodes
ROS 모니터링은 계속 되어야 한다.
틈틈히 기술을 익히는 것도 중요하다.
물론 orocos도 같이 병행해서 해야 한다.
그러기 위해서는 개발 시스템을 갇춰야 하는데 리눅스 용으로 조만간에 장만해서 시작 하자.
포항공대 네비게이션 시스템
이번주에 포항 공대에 가서 네비게이션 시스템 기술이전을 받았다.
어렵다.
공부해야한다.
우선 이세진 박사의 석한 논문 "자율 이동 로봇을 위한 초음파 센서를 이용한 형상 기반 지도작성법 개발"를 숙지 해야 한다.
그리고 네비게이션 시스템을 연구시 사용한 특별한 시뮬레이션이 있으면 그걸 쓰겠지만 없으면 Player/Stage를 연동해서 Stage시뮬레이션을 쓰도록 한다.
네비게이션 시스템에 INTEL c++ compiler Professional를 쓴다. 큰일이다.
라이센스를 지불하고 계속 쓸것인가가 문제이다.
2010년 5월 6일 목요일
player/stage windows version 실패
unistd.h, stdint.h, libgen.h, sys/types.h, sys/time.h
역시나 이런 파일들 때문에 빌드가 안된다.
윈도우에서는 Stage를 돌릴수 없는건가?
player/stage windows version 2
pkg_search_module 주석 처리후
Generation은 됐지만 VC2008로 컴파일시 UNIX에 dependency한 헤더파일을 찾는다.
안되는건가?
player/stage windows version
stage windows version를 포팅하기 위한 작업
player는 pthreads for win32, python 정도면 무난히 컴파일이 된다. 빌드도 잘되고
stage는 좀 까다롭다.
우선 관련 문서가 없다.
CMakek를 통해서 밖에 없어
관련 파일을들 찾아서 빌드 한후 링크해줬다.
하지만 LTDL를 찾는 부분에서 libtool내 포함된 라이브러리인데
윈도우버전이 없다.
그럼 CMake에서 libtool를 사용하지 않고 관련 link들은 전부 수작업 해줘야 한다.
이런..
밥먹고 하자.
2010년 4월 29일 목요일
boost build
설치방법을 찬찬히 읽어 보면 답이 보인다.
우선 아주 쉬운 방법인 ./configure를 이용하는 방법인다.
밉스나 암을 쓰기 위해서는 사용자 정의 빌드 방법을 이용해야 한다.
vi tools/build/vc/user-config.jam 파일을 연후
GCC configuration 아래에
using gcc : 3.3.4 : /usr/local/arm/3.3.4/bin/arm-linux-g++ ; ==> arm
using gcc : 3.4.4 : mipsel-linu-g++;
추가 한다.
boost root 폴더에 bjam파일이 없다면
tools/jam/src/build.sh를 실행한후 bin.linuxx86 폴더에 가서 bjam를 boost root 폴더에 복사한다.
ex)./bjam --toolset=gcc stage
./bjam --help
자세한 내용은 http://phoebe-yj.blogspot.com/2009/10/c-boost-c.html
C++ 개발자라면 한 번은 사용한다는 Boost는 C++ 표준 위원회 사람들이 대거 참여하여 개발되고 있는 라이브러리이다. C++의 추가 표준 라이브러리인 TR1도 이 라이브러리를 기반으로 만들어졌다.
Boost의 라이브러리 중에는 헤더파일만을 사용하는 것도 있지만, 사용하기 전에 build를 해주어야 하는 라이브러리들이 있다. Boost에서 zlib를 사용하기 위해서는 이 과정을 거쳐야 한다.
Boost는 bjam이라는 자체적인 build module을 이용하여 라이브러리를 build 한다. 따라서 Boost를 설치하고 사용하기 위해서는 bjam이 있어야 하고, build 옵션을 알아두면 된다.
(http://www.boost.org/) URL에서 Boost의 최신 패키지를 받을 수 있다.
Boost를 build하기 전에 bjam 프로그램이 필요하므로 다음과 같은 방법으로 bjam.exe 파일을 생성한다.
1. Boost의 하위 폴더인 .\tools\jam 폴더로 이동한다.
2. build_dist.bat을 실행한다. (build)
3. 빌드 완료 후, 생성된 stage의 하위 폴더 bin.ntx86로 이동을 하면 bjam.exe 파일이 생성되어 있는 것을 확인할 수 있다.
[표 1] Boost의 build module인 bjam.exe 생성하는 방법
생성된 bjam.exe 파일을 통해 Boost를 build하기 위해 Boost의 최상위 폴더로 복사한다.
Boost의 build 방식에는 크게 두 가지로 구분할 수 있다. install 방식과 stage 방식이다. install의 경우에는 헤더파일과 컴파일된 라이브러리 파일을 아예 새로운 폴더에 생성하는 방식이고, stage의 경우에는 현재 boost 폴더에 있는 헤더 파일을 그대로 이용하고 컴파일된 라이브러리 파일만을 생성하는 것이다.
Ÿ install의 경우
bjam.exe –prefix=”C:\Lib\Boost” install
Ÿ stage의 경우
bjam.exe –stagedir=”.\stage” stage
[표 2] install과 stage 옵션 설정 명령어 예
다음으로 알아볼 것은 build-type 옵션이다.
build-type에는 minimal과 complete 옵션을 사용할 수 있다. 그리고 추가적으로 release와 debug 옵션을 줄 수 있다.
bjam.exe –build-type=complete release debug install
bjam.exe –build-type=complete release stage
bjam.exe release debug stage
[표 3] build-type 옵션 설정 예제
-tooset 옵션의 경우에는 Visual C++을 이용하기 때문에 msvc로 설정한다.
마지막으로 가장 중요한 iostream 라이브러리에서 사용하는 외부 라이브러리 build 이다. 이미지 압축을 위해 사용할 zlib를 다운로드(http://www.zlib.net/)하고 다음과 같이 설정한 후 build를 수행한다.
1. 다운로드 받은 라이브러리를 적당한 경로에 압축을 풀고, 해당 경로를 환경변수로 설정한다.
set ZLIB_SOURCE=”C:\Lib\zlib”
2. Boost를 build 한다.
[표 4] zlib 빌드 옵션 예
Boost의 build가 끝나면 Visual studio 2008에서 다음과 같이 boost의 헤더파일과 라이브러리를 추가하면 프로젝트에서 Boost 라이브러리를 사용할 수 있다
ace mipsel-linux
-시작-
이전 버전에 썼던 방식을 잘 안된다. 아니 잘못 알고 컴파일 한것임..
지대로 알고 하자
우선
Using the Traditional ACE/GNU Configuration 방법으로 한다.
찬찬히 읽으면 답이 보인다.
위에서 말한 방법대로 platform_macros.GNU를 만들고
파일 안에다
CROSS-COMPOLE=1
debug=0
optimize=2
CC=mipsel-linux-gcc (little endian version of mipse)
CXX=mipsel-linux-g++
no_hidden_visibility=1
추가한다.
그리고
export ACE_ROOT
export LD_LIBRARY_PATH=$ACE_ROOT/lib
그리고
인스톨 방법대로
ACE_ROOT/ace에서 make를 한다.
그런데
EPOLLONESHOT 를 찾을수 없다고 한다.
그래서
config.h에서 #define ACE_USE_POLL 0으로 했는데 안된다
기본으로 ACE_HAS_EVENT_POLL를 정의하는지
그래서
#include "ace/config-linux.h"
밑에
#undef ACE_HAS_EVENT_POLL를 정의해서 아에 그쪽으로 진입을 못하게 했다.
컴파일은 됏지만 실행이 잘 될지 모르겠다.
2009년 10월 27일 (화) 01:58
EZ-AU1200 에 ACE-5.7.4 Porting 하기
platform_macros.GNU contents
CROSS-COMPILE=1
debug=0
optimize=2
CC=mipsel-linux-gcc
CXX=mipsel-linux-g++
no_hidden_visibility=1
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
ACE_Wrappers/ace/config.h contents
#include "ace/config-linux.h"
#undef ACE_HAS_EVENT_POLL
boost mipsel-linux
Download latest release bjam
./build.sh
Download latest release boost
vi tools/build/vc/user-config.jam
using gcc : mipsel : mipsel-linux-g++ ;
./bjam toolset=gcc-mipsel --prefix=/home/bcc/xxxx --stagedir=/home/bcc/xxx stage
의외로 간단하다.
openssl mipsel-linux
search openssl mipsel-linux
http://www.networkedmediatank.com/wiki/index.php/Openvpn
http://cblfs.cross-lfs.org/index.php/OpenSSL // 추천
required patch(MIPS) 다운로드, 웹에서 띄우니까 복사해서 저장할것
little-endian이므로
아래 명령을 실행 하기 전에
patch 파일에서
mipsel에 해당 하는 gcc 를 mipsel-linux-gcc로 변경 후 makefile를 생성 해야 한다.
patch -Np1 -i ../openssl-0.9.8k-mips_support-1.patch &&
./Configure linux-mipsel --openssldir=/etc/ssl --prefix=/usr shared
참고 --prefix의 디렉토리에 저장될 폴더는 bin, include, lib이다.
--prefix=/etc/ssl로 같이 해도 좋다.
make
make install
AU-1200 Mipsel 보드 포팅
AU-1200 검색 해서 mipsel-toochain-3.4.4.tar.gz받는다.
sudo tar xvf mipse-toolchain-3.4.4.tar.gz -C /
압축 풀면 끝
2010년 3월 25일 목요일
아래 원인을 찾느라 어제 고생좀 했다.
버전문제인지 정확한 원인을 알 수가 없다.
어제 일때문에 어부지리로 set_target_properties에 대한 VERSION, SOVERSION property에 대해서 알겠됐다.
보통 라이브러리를 만드려고 하면 아래와 같이 한다.
add_library( lib_name shared sources )
이렇게 만든다.
그런데 target에 대해 속성값을 주어 다르게 만들 수도 있다.
정의를 보자면 set_target_properties( target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ... )
target은 설정하고자 하는 라이브러리 이름이고 PROPERTIES 다음에 나오는 prop1는 속성이름이다.
이 이름중에 VERSION, SOVERSION에 대해서 설명하려고 한다.
간단하게 말해 VERSION, SOVERSION은 각각 빌드 버전과 API버전이다.
예로 target 이름이 orocos-helloworld 이면 생성되는 파일은
liborocos-helloworld-gnulinux.so ->liborocos-helloworld-gnulinux.so.1.10.1
liborocos-helloworld-gnulinux.so.1.10 ->liborocos-helloworld-gnulinux.so.1.10.1
liborocos-helloworld-gnulinux.so.1.10.1
VERSION: 1.10.1
SOVERSION: 1.10
ocl make시 에러?
CMakeFiles/helloworld.dir/HelloWorld.o: In function `ORO_main_impl(int, char**)':
HelloWorld.cpp:(.text+0x13de): undefined reference to `RTT::Property, std::allocator > >::Property(RTT::PropertyBase*)'
../ocl/liborocos-ocl-common-gnulinux.so.1.8.99: undefined reference to `RTT::Property::Property(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, int)'
collect2: ld returned 1 exit status
make[2]: *** [helloworld/helloworld] 오류 1
make[1]: *** [helloworld/CMakeFiles/helloworld.dir/all] 오류 2
make: *** [all] 오류 2
2010년 3월 24일 수요일
[CMake] using cmake_dependent_option
CMakeDependentOption
: Macro to provide an option dependent on other optionsThis macro presents an option to the user only if a set of other conditions are true. When the option is not presented a default value is used, but any value set by the user is preserved for when the option is presented again. Example invocation:
OPTION( VAR1"doc" OFF)
MESSAGE(STATUS "${
VAR1}")
CMAKE_DEPENDENT_OPTION( VAR2"doc" OFF " "NOT VAR1" OFF)
MESSAGE(STATUS "${
VAR2}")
VAR1, VAR2는 OFF 상태로 보여지고, 변수값도 OFF, OFF로 저장된다.
OPTION( VAR1"doc" ON)
VAR1만 보여지고, 변수값은 ON, OFF이다.
이 상태에서 CMAKE_DEPENDENT_OPTION( VAR2"doc" OFF "NOT "doc" ON) 경우
VAR1만 보여지고, 변수값은 ON, ON이다.
2010년 3월 22일 월요일
OPROS 배포에 관한 연구
suv으로 관리하고 공개 한다.
cmake으로 컴파일 한다.
종류는: arm, mipse, window, linux
directory tree:
OCE(engine), tutorial( Service Port, Data port, Event port, Multi Port, remote port),
bin(Component Editor, Component Composer), Stack(Components),
TutleSim(Windows version)
1단계로 CMake에 대해서 잘 알아야 한다.
2단계로 부속들을 만들고
3단계로 Component를 만드는 것이다.
그런데 www.cmake.org사이트가 너무 느리다.
OROCOS RTT and ROS integrated
rosmake --rosdep-install orocos_ros_integration
rosrun orocos_ros_integration rosdeployer -s example.xml -l info
orocos peer를 생성하면 자동으로 peer_ros peer가 생성된다.
그리고 connectPeers(&peer, &peer_ros)가 된다.
깨끗하게 종료가 안된다.
2010년 3월 15일 월요일
OpenRTM-aist install
Download OpenRTM-aist-1.0.0-RELEASE.tar.gz
tar xvjz OpenRTM-asit-1.0.0-RELEASE.tar.gz ~/
Download omniORB-4.1.4.tar.gz
tar xvjz omniORB-4.1.4.tar.gz ~/
cd ~/omniORB-4.1.4
mkdir build
cd build
../configure; make; make install
cd ~/OpenRTM-aist-1.0.0
./configure; make ;make install
[참고]
apt-get instal openrtm* 으로 했지만 잘 깔리지 않는다. 그래서 사이트에서 소스를 다운 받아 설치 했다.
./configure --with-tao
...tao_idl Ge
Ge option 없다고 한다. 그래서 default(omniORB) 한다.
둘다 컴파일 하는데 꽤 걸린다.
tar xvjz OpenRTM-asit-1.0.0-RELEASE.tar.gz ~/
Download omniORB-4.1.4.tar.gz
tar xvjz omniORB-4.1.4.tar.gz ~/
cd ~/omniORB-4.1.4
mkdir build
cd build
../configure; make; make install
cd ~/OpenRTM-aist-1.0.0
./configure; make ;make install
[참고]
apt-get instal openrtm* 으로 했지만 잘 깔리지 않는다. 그래서 사이트에서 소스를 다운 받아 설치 했다.
./configure --with-tao
...tao_idl Ge
Ge option 없다고 한다. 그래서 default(omniORB) 한다.
둘다 컴파일 하는데 꽤 걸린다.
2010년 3월 11일 목요일
orocos window install
Level : INTERMEDIATE
[기대결과]
ubuntu 환경에서 ./eclient or ktaskbrowser 가 windows환경의 server app의 오브젝트를 호출한다.
[선행작업]
Windows:
svn co http://svn.mech.kuleuven.be/repos/orocos/branches/rtt/rtt-1.10
vc9 실행, release
vc90 추가 포함 디렉토리
"C:\orocos\orocos-rtt-1.10.0\src";"C:\orocos\orocos-rtt-1.10.0\build\src";"C:\orocos\orocos-rtt-1.10.0\build\src\os";"C:\orocos\orocos-rtt-1.10.0\build\src\os\win32";C:\orocos\ACE_wrappers;C:\orocos\ACE_wrappers\TAO;C:\orocos\ACE_wrappers\TAO\orbsvcs;"C:\orocos\orocos-rtt-1.10.0\build\src\corba";C:\orocos\boost_1_36_0
추가 종속성
..\Release\orocos-rtt-win32.lib
C:\orocos\ACE_wrappers\lib\ACE.lib
C:\orocos\ACE_wrappers\lib\TAO.lib
C:\orocos\ACE_wrappers\lib\TAO_PortableServer.lib
C:\orocos\ACE_wrappers\lib\TAO_CosNaming.lib
C:\orocos\ACE_wrappers\lib\TAO_Messaging.lib
C:\orocos\ACE_wrappers\lib\TAO_AnyTypeCode.lib
C:\orocos\ACE_wrappers\lib\TAO_Valuetype.lib
ApplicationServer.hpp에서
struct ApplicationServer
class RTT_CORBA_API ApplicationServer로 변경
Services.cpp에서
// ACE_THROW_SPEC (CORBA::UNKNOWN ()); 주석처리
server application 환경 설정
추가 포함 드렉토리
../../;../../rtt/corba;../../build/src;../../build/src/corba;../../build/src/os;../../build/src/os/win32;C:\orocos\boost_1_37_0;C:\orocos\ACE_wrappers;C:\orocos\ACE_wrappers\TAO
추가 디렉토리 라이브러리
"C:\orocos\orocos-rtt-1.10.0\build\src\$(ConfigurationName)";"C:\orocos\orocos-rtt-1.10.0\build\src\corba\$(ConfigurationName)";C:\orocos\boost_1_37_0\lib;C:\orocos\ACE_wrappers\lib
추가 종속성
C:\orocos\orocos-rtt-1.10.0\build\src\corba\Release\orocos-rtt-corba-win32.lib orocos-rtt-win32.lib C:\orocos\ACE_wrappers\lib\ACE.lib C:\orocos\ACE_wrappers\lib\TAO.lib C:\orocos\ACE_wrappers\lib\TAO_PortableServer.lib C:\orocos\ACE_wrappers\lib\TAO_CosNaming.lib C:\orocos\ACE_wrappers\lib\TAO_Messaging.lib C:\orocos\ACE_wrappers\lib\TAO_AnyTypeCode.lib C:\orocos\ACE_wrappers\lib\TAO_Valuetype.lib
[실행]
ubuntu:
vi ~/.bashrc
export NameServiceIOR=corbaloc:::9000/NameService
or
./eclient -ORBInitRef NameService=corbaloc:iiop:192.168.0.54:9000/NameService
window:
Naming_Service.exe -ORBEndpoint iiop://192.168.0.54:9000
corba_test_server.exe -ORBInitRef NameService=corbaloc:iiop:192.168.0.54:9000/NameService
[추가사항]
windows 방화벽 설정시
./eclient 네임서버의 Component는 찾지만 (네임서버통신성공)
object 명령 실행 안됨(방화벽때문만은 아닌것 같은)
ktaskbrowser는 방화벽 해제시와 같은 실행을 보임
corba_test_server.exe에서
131.672 [ ERROR ][StatementProcessor] CORBA exception raised when creating ExpressionProxy!
131.672 [ ERROR ][StatementProcessor] system exception, ID 'IDL:omg.org/CORBA/TRANSIENT:1.0'
OMG minor code (2), described as '*unknown description*', completed = NO
이런 메시지가 표시됨
[후기]
Naming_Service의 설정을 정확이 알지 못해서 하루를 보냄
Naming_Service 폴더의 README
2010년 3월 9일 화요일
KTaskBrowser build
sudo apt-get install qt3-appls-dev kdelibs4-dev ...
../configure --without-arts
remove -lTAO_IDL_BE from Makefile
make all
sudo make install
2010년 2월 24일 수요일
orocos TAO install
2.6.1 TAO installation
sudo apt-get install libtao-orbsvcs-dev tao-idl gperf-ace tao-naming
cmake -DENABLE_CORBA=ON -DCORBA_IMPLEMENTATION=TAO
make
make install
ACE QtReactor?
libboost-dev를 찾다 libace-dev를 발견 설치 하니 /usr/lib에 libACE*가 설치 되었다.
libtao-dev또한 있다 ............. 역시!!
libACE_QtReactor가 눈에 띈다. 모지?
우분투 패키지서치에서 검색 하면 다 나온다!!
orocos install
ubuntu 9.04
cd source/build
cmake .. -DOROCOS_TARGET=gnulinux
make
make install
make 시 문제
/home/bcc/Downloads/orocos-rtt-1.10.2/src/os/Thread.cpp: In function ‘void* RTT::OS::thread_function(void*)’:
/home/bcc/Downloads/orocos-rtt-1.10.2/src/os/Thread.cpp:190: error: ‘e’ was not declared in this scope
make[2]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/os/Thread.cpp.o] 오류 1
make[1]: *** [src/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/all] 오류 2
e.what() 주석 처리 해결
sudo apt-get install libboost-dev doxygen
or
sudo apt-get install libboost.1.37-dev(not test)
1.42이 나온 시점에서 1.37 만 package되어 있다.
ubuntu 9.10으로 업그레이드 하면 해결
문제해결
libboost-dev를 버전 지정 없이 설치하면
9.04에서는 1.34로 설치된다.
하지만 make시 에러 발생!!!!
libboost1.37-dev로 설치 하면 해결!!
Search ubuntu package
2010년 2월 19일 금요일
About Python memeory lead
guppy http://vany.tistory.com/entry/Guppy-PE로-Python-Memory-Leak-잡기
달랑 하나?
참고: valgrind http://valgrind.org/ Python packages에서 찾아보니
Package | Score | Description |
---|---|---|
fusil 1.3.2 | 1 | Fuzzing framework |
PSI 0.3b2 | 1 | Python System Information |
2010년 1월 20일 수요일
Install ubuntu 9.04 on p5020
설치후 다음날 화면이 쪼그라드렀다.
어제 1시까지 설정 했는데 안됐다.
915resolution, xorg.conf 이런걸 설치하고 수정했지만 안된다.
인터넷에 자료가 없다.
그냥 해상도 설정하고 재부팅 몇번하니 됐다. (용석군이 해냈구!)
이상하다.
2010년 1월 1일 금요일
Robotics platforms
Player, Stage, Gazebo, CARMEN, RobotFlow, Orocos, YARP, Orca, MOOS, MSRDS,
OpenJAus, CLARAty, ROS, OPRoS
ROS Concepts
ROS는 3가지 개념이 있다.
- 파일시스템 레벨
- 계산그래프 레벨
- 통신 레벨
추가적으로 패키지 리소스 네임, 그래프 리소스 네임 개념이 있다.
- 파일 시스템 레벨
- Packages : 패키지는 ROS 소프트웨어 구조를 구성하는 주요 장치이다. 패키지에 포함되는 것들은 ROS 런타임 프로세스(노드), ROS에 독립적인 라이브러리, 데이터 집합, 설정 파일, 기타등등.
- Manifests: manifest.xml에 포함되는 것은, 패키지에 관련된 메타 데이터, 라이센서정보, 언어 스펙 정보(컴파일 플레그)
- Stacks:
== 꼭 해석 해야 하나 ==
- 계산그래프 레벨
- 통신 레벨
피드 구독하기:
글 (Atom)