2011年10月21日 星期五

ubuntu - Latex處理中文(xetex + xeCJK)

在ubuntu底下使用latex來處理中文
之前還不知道latex是幹麼用的....就被老闆叫來學latex來作文書排版....
(第一次使用真的是...有夠難用...難用到爆...完全不習慣
不過隨著使用次數越來越多,才發現latex的偉大呀!!!!
(Paper卻沒有發過半篇...T_T
------------------------------------------------------
切回主題
今天要用xetex+xeCJK來處理中文文件
首先我們使用的IDE就選擇Texmaker
設定Texmaker

選項→設定 Texmaker

會看到左邊有三個部分:「指令」、「快速編譯」、「編輯器」

1.指令→第一項 LaTeX 加入「xe」,變成

「xelatex -interaction=nonstopmode %.tex」(1)

PDF 檢視器裡面打你用來看 PDF 的程式,像我的是

「"C:/Program Files/Foxit Software/Foxit Reader/Foxit Reader.exe" %.pdf」(2)

2.快速編譯→快速編譯組合選「自訂」

把剛剛的 (1)+(2) 打進去,記得中間用「|」分開

結尾再補上「|bibtex %.aux|xdvi %.dvi」(雖然初學可能用不到)

3.編輯器→編輯器字型編碼選 「UTF-8」


以上轉載:http://leavedcorn.pixnet.net/blog/post/24773932-%E6%96%B0%E6%89%8B%E5%AE%89%E8%A3%9Dlatex%E6%87%B6%E4%BA%BA%E6%95%99%E5%AD%B8(step-by-step)

接著下載安裝Texlive

1. sudo apt-get install texlive

以上轉載:http://hi.baidu.com/%C7%E1%B3%BF%CF%A6%B7%E7/blog/item/a88ad5dea9955e395882ddef.html

接著就可以直接在texmaker上編譯中文文件檔了。

範例:

\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{AR PL UMing CN}
\title{XeTex中文模板}
\author{中文姓名}
\begin{document}
\maketitle
\section{章節}
正文!!!
ENGLISH!!!
\end{document}


Ubuntu底下安裝Java執行環境(JRE)

在 Ubuntu Linux 底下有不少好用的軟體都需要用到 Java 執行環境 (像是 XMind 跟 FreeRapid Downloader 等等),每次我都會忘記要怎麼安裝,乾脆寫個筆記,方便自己以後查詢囉~ 原文連結來自 這裡。

1. 從 Ubuntu 10.04 開始,JRE 已經被加入 Partner Repository 了,所以我們只要加入套件來源就可以。透過以下的指令加入套件來源:
sudo add-apt-repository 'deb http://archive.canonical.com/ lucid partner'

2. 然後要更新我們的套件庫
sudo apt-get update

3. 最後就是安裝相關套件啦
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

下載套件完畢,安裝的過程會詢問你是否同意它的授權協定 (如下圖所示),我們可以按 Tab 鍵移動焦點,然後按 Enter 鍵來同意協定。

以上轉載:http://nelson.pixnet.net/blog/post/26831701-%5B%E7%AD%86%E8%A8%98%5D-%E5%9C%A8-ubuntu-10.04-%E5%BA%95%E4%B8%8B%E5%AE%89%E8%A3%9D-java-%E5%9F%B7%E8%A1%8C%E7%92%B0%E5%A2%83(jre

2011年9月15日 星期四

PyBrain - A modular Machine Learning Library for Python

時間過得真快,一年馬上就過去了。升上碩二的我,不能再向以前一樣混了,應該要培養自己解決問題的能力了!!!
(這不是重點呀...T_T

昨天跟老師討論了一下我的畢業論文題目,老師還是希望我可以繼續研究夢...(天呀!實在是想不出來,要怎麽下手?!
於是老師就介紹了非常強大的PyBrain給我認識,Machine Learning Library。
(Reference : http://pybrain.org/pages/home)
裡面已經將目前流行的Machine Learning Algorithm 都建成Modular,給大家使用。
其中包含了Supervised Learning,Unsupervised Learning,Reinforcement Learning
(而我需要的是Deep Beleif Network呀!!!!!
當然還有許多Network,詳情就參考Reference嚕!

接下來,就介紹如何安裝PyBrain。
首先必須先安裝python(2.5+)、scipy(0.6+)、matplotlib(0.98+)和easy_install。



完成上面安裝後,就可以用easy_install安裝pybrain了。



接著再到pybrain底下



執行setup.py install就可以完成pybrain的安裝了。



(Reference : https://github.com/pybrain/pybrain/wiki/installation)

接下來跑一下Classification with Feed-Forward Neural Network的範例
Source Code :





Result :

2011年9月6日 星期二

2011-FIRA 賽後心得

2011 FIRA-HuroCup in Kaohsiung!!
比賽終於結束了,雖然成績不盡預期理想,但至少這是我們的一大步呀!!
回想起第一天剛到會場時,(天呀....),我真的被嚇到...
看到每一個隊伍的陣仗,每隊都是一大箱的備用零件,機器人1~3隻,筆電N台...etc
看看我們CrudeScientist....一台筆電+DARwIn-OP...(看起來真的是來玩....T_T
老實說,起跑點我們就已經輸了...又加上人手問題... (可惡...只有我一個是想來比賽的....
不知道為什麼每次還沒比賽前,總是充滿熱情,信心,希望可以獲勝!!!
但一旦到比賽當天,心情總是180度大轉變,變成隻小貓似...
怕東怕西,真的很討厭這樣的我!!! (可惡....我就不能有Guts一點嗎..T_T
這樣的心情轉變,可想而知,前面幾個項目,真的是....慘不忍睹 Orz
(真的很對不起DARwIn...頂著世界冠軍稱號的機器人...卻沒辦法發揮實力...
直到Penalty Kick之前,我一直沒辦法適應比賽環境....(俗稱練習型選手...
但是也不知道為什麼,或許是跟妳通電話,或許是不認輸的精神,或許是對勝利的渴望
那天晚上我真的卯足全力,燃燒自己 (雖然每天晚上都是咖啡+泡麵(E罐).....
把消失的程式碼給還原出來~~ (頂著不放棄的精神!!!感動.....T_T
而Penalty Kick比賽當天,也非常非常非常幸運的讓我踢進了一球!!!
沒錯!就是這一球!莫名地拿到Penalty Kick的第二名!!!
人助也要天助,即便是幸運的踢球,或是僥倖的踢球
我想要說的是 : 我們做到了,CrudeScientists,我們真的做到了!!!!
(雖然大家都不相信,包括我自己...
這對別人來講可能是一小步,但是對我來講可是一大步!!!!! (不死的熱血機器人魂!!!!!!!

第二名照片~~



但是或許是被第二名的獎盃沖昏頭了,又或者是太想再拿下一座獎盃了...
馬上在Marathon比賽再次....慘不忍睹...
真的很不甘心,竟然在自己最有把握的項目失敗...真的很不甘心!!
看著DARwIn一次又一次跌倒...心情也跟著一次又一次的受傷...
DARwIn~~~~~ (大叫,泛著淚光!!!!
事實也再次顯示我的無能....T_T
我們又輸了....比賽也全部結束了....Orz
這次比賽真的是讓我大開眼見,也看到一些專業的團隊是如何開發機器人的!!
為了追上他們,我是不會放棄的!!! Fighting!!!!



(不死的機器人魂不會就這樣結束!!!!!!!!!!
(GoRobot!! Never say Never!!

重點整理:
1.備用零件(馬達,充電器,電池,比賽道具,USB2Dynamixal,超長延長線,網路線,所有機器人設備備用) 記得準備
2.GUI調整機器人動作
3.比賽前,千萬不要再修改程式碼了!!! (求穩不求快...Marathon教訓...
4.所有程式記得"備份"
5.一顆打死不放棄的心...(一顆可以天天熬夜的心?

2011年7月19日 星期二

C/C++ Programming - void *

指標是C/C++的精華所在。今天就來介紹一個特別的指標void *

void * :是定義一個指標,但卻未定義它的資料型態,也就是說
你只知道它指向的記憶體位址,但無法存取它指向的資
料。(因為未定義資料型態,怎麽存取呢....)

至於void * 用途:容易擴展副函式,使程式更加穩定

舉例一下吧!!
首先可以利用emun來定義我們傳入參數的型態。



根據型態,我們可以重新將void *轉型 (用途出現^^)



參考網址:

PS:現在還在研究pthread中.......似乎比想像中的困難....再來!
這個有兩個pthread的參考網址,有興趣者可以一起研究吧!

Penalty Shooting & Obstacle Run

今天思考了一下Penalty shooting和Obstacle比賽項目。
首先來講講Penalty shooting:
基本上,這個想法之前就想實作了,就是指定角度的射門!!
也就是說機器人透過視覺找出最合適的射門點,有可能是大角度,或小角度。
接著機器人就會往那個方向踢球!!同時還需要保持平衡.....

今天測試了DARwIn-OP的踢球動作+旋轉R&L_Hip_Yaw
結果踢球動作非常不穩,也無法達到有角度的射門
目前想到的解法:
(1)重新設計踢球動作
(2)轉動Robot身體的方向,而非R&L_Hip_Yaw
(3)思考中......

Obstacle項目呢?
基本上,參考了http://letsmakerobots.com/node/3816網站的演算法
(感覺上是一個是可以成功)
而實際實作後
首先利用HSV的Color Filter過濾出障礙物和場地(代替Canny演算法)。
接著透過形態學中Erode將可步行範圍縮小(避免機器人撞到障礙物)。
接下來問題來了......
Smooth Hull,是為了將平行線圓弧化,找出頂點。(也就是目標點)
但是目前一直想不到用什麼方式求出最佳的點.....
也想不出如何實作Smooth Hull......
(將圓形與正方形做Convolution呢??.....會是圓弧化的方形嗎??)

影片:


PS: 照片與影片明天在上傳吧.......有點懶了@@

2011年7月17日 星期日

C/C++ Programming - This指標

老實說,我一直搞不懂this這個東西是要如何使用,只知道就是call自己instance的class而已。
但是this這個東西似乎有更好用的功能。

例如:使用this access private members,可以避免與輸入參數搞混。


例如:如果member function回傳this指標 (指向自己),則就可以在呼叫完function後,再次呼叫function。如圖所示,呼叫完add後可以直接呼叫multi。


例如:當然也可以使用 . 運算子去做access,不過member function就要改成回傳Reference了。(不是回傳this指標)


補充一下
第一個方式是回傳this指標,所以要使用->運算子。而第二個方式則是利用Reference(Call by reference),所以是使用 . 運算子。








Linux - 多個檔案中搜尋字串

為了方便在多個檔案中搜尋特定字串,像是在多個.cpp檔中,找某個特定的function
因此可以使用 "grep" & "find" 兩種指令,例如:find .| xargs grep 'string'


2011年7月16日 星期六

Ubuntu install OpenCV2.3

為了測試直線圓弧化,因此就安裝OpenCV2.3來測試了!
  1. 首先安裝OpenCV所需要的Lib和lib-dev
    下載所需lib
    下載所需lib-dev
  2. 接著下載OpenCV2.3的Source Code安裝
    http://sourceforge.net/projects/opencvlibrary
    完成解壓縮,接著就到OpenCV目錄底下,執行cmake ./接著執行make最後執行sudo make install
  3. 設定OpenCV配置文件
    在/etc/ld.so.conf.d底下創建opencv.conf,並輸入/usr/local/lib
  4. 更新動態連結庫輸入sudo ldconfig

  5. 設定環境變數
    改寫/etc/bash.bashrc,在末端加入
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH
  6. 最後就來測試一下範例程式
    在OpenCV2.3/samples/c底下,把build_all.sh權限改成使用者可執行權限
    chmod +x build_all.sh
    接著就執行./build_all.sh

    接下來就run一個範例程式./morphology

GoRobot

測試文!!