2013/11/25

RoboSavvy人型機器人設計比賽-unl

最近參加了個人型機器人的設計比賽,裡面有許多不錯的設計,都可以免費下載下來在自家裡的3D成型機裡面做出來喔。不過呢,這還只是個紙上談兵的部分,做出來能不能動還不知道呢。但是若有時間慢慢拿這些現成的樣本修修改改,應該可以做出些不錯的成果。

這是我的作品,https://grabcad.com/library/robosavvy-humanoid-design-unl-1


主要的設計重點是在可以替換的外殼與容易升級的背包。
當然腳上能夠加的感測器也不能少啦,前後各配備一個超音波感測器,腳底也有四個壓力感測器。背包打開來,裡面一個黑黑獵兔狗骨頭(BeagleBone Black)的小電腦加上一塊1350mAh電池。若是怕不夠用,身體裡面還有空間可以再加上一顆喔。屁股後面紅紅的一個是IMU或加速度計,可作為平衡用的。
 這是背包的部分,那個大大的頭上藍色的蓋子裡面可以加個小喇叭。
 換上小頭,看起來又是另外一種風格。
還有雙伺服馬達的膝關節,三個自由度的髖關節,因為比賽規定只能用AX12/18的伺服機,所以膝關節得用到兩個,才夠產生足夠的扭力。
內部的結構設計,一共用到24個伺服機阿,真是超貴,不過這比賽規定裡面也沒限制,當然就盡量用囉!

小頭的設計。 


 稍有些空閒,修改了部分的設計,這樣大頭裡面有些空間擺其他東西,像是第二台電腦或使一些感測器或是Arduino等等。
最後擺幾個姿勢看看,當然不可少的就是有名的金雞獨立啦。
若是去參加足球賽的話,就大概長成這樣吧!
大小兩個頭比較一下。 


附錄1:
有人跟我提到,對於那個膝關節有些疑惑,不太清楚到底是怎麼運作的,順便說明如下。

膝關節裡面的兩個伺服機其實是用齒輪連在一起,這樣若兩個一起轉動的話,彼此的扭力會經由齒輪機構傳遞到另一端,也由此增加扭力。下面是用Working Model 2D的模擬,當只有一個伺服機施加扭力時,可以看到移動速度較慢,對地面產生的力量較小,而當兩個伺服機同時工作時,不僅速度增加,地面作用力也變大快要兩倍,也就是能夠支撐或對身體施予更多的力量。

不知道大家看到現在,有沒有猜到設計的靈感來源其實就是來自這幾隻啦!



2013/11/15

smach 狀態機安裝筆記

http://wiki.ros.org/smach/Tutorials/Getting%20Started
這個狀態機似乎蠻好用的,而且還可以顯示各種不同狀況。決定來試試看。
一開始是在hydro下面,可是怎麼都找不到smach-viewer這個東西,這樣要怎麼看那個漂亮的圖呢?
最後是自己下載了一份hydro的版本,rosmake後卻又沒有smach-tutorial可以試,到底還有沒有人在用smach呢?唉!

一氣之下,轉回groovy,這下子內建smach_viewer應該就沒問題了吧。哈哈!

但是呢,還是沒有smach_tutorial可用,這到底怎麼了呢!!!?

最後呢,自己去弄一份來吧,反正都走到這步田地了。
http://ros-users.122217.n3.nabble.com/How-to-install-smach-tutorials-package-td1284493.html
svn co https://code.ros.org/svn/ros-pkg/stacks/executive_smach_tutorials/trunk/ executive_smach_tutorials
rosmake executive_smach_tutorials

結束後進去先跑個範例試試看。
ipython state_machine_simple.py
什麼!!!居然不行,這太誇張了吧!
action_server_wrapper.py", line 9, in <module> from actionlib.simple_action_server import SimpleActionServer ImportError: No module named simple_action_server
這是什麼狀況?怎麼連自家人的程式都這樣搞內鬨呢?

http://answers.ros.org/question/44062/smach-tutorial-importerror-no-module-named-msg/
最後找到這裡一看,
There is a file called examples/actionlib.py in the same folder. Rename the file actionlib.py to actionlib1.py and delete the file actionlib.pyc.
居然是這個問題啊!
開個smach_viewer,跑iterator_tutorial.py,終於看到想看到的狀態機啦!


Dell m4700 安裝10.04LTS, ROS, Jaco 筆記

一開始無線網路卡找不到,得自己從別台電腦下載Broadcom的驅動,手動make後在複製到該在的位置。
http://ubuntuforums.org/showthread.php?t=1390979

RAM upgrade: 外加全滿的記憶體後,得要改變核心一下,才能看到升級後的成果。
sudo apt-get update
http://linuxblog.pansapiens.com/2010/06/22/using-more-than-3-gb-of-ram-with-32-bit-ubuntu-10-04-lucid/

可是這時候又找不到網路卡了,當然又是在手動make一下,只是換成新裝的核心位置了。

install Nvidia driver
得要外接個螢幕,用功能鍵將螢幕切換到外部,才能夠看到命令列。
(http://www.nvidia.com/object/linux-display-ia32-310.44-driver.html)
(http://www.ubuntugeek.com/howto-install-nvidia-drivers-manually-on-ubuntu-10-04-lucid-lynx.html)
ctrl+alt+F1  按下後會進到終端機模式
login
sudo service gdm stop  得停止x-server,不然會不給裝。
sudo sh ~/Download/NVIDIA......

至於中文輸入法,就參考這個吧
http://chris959.blogspot.com/2012/02/linux-mint.html

JACO 機器手
http://www.ros.org/wiki/jaco
先設定workspace
roscd

rosws set ros-jaco-arm --git https://github.com/Kinovarobotics/jaco-ros.git

rosws update ros-jaco-arm


重新開一個終端機
cd ros-jaco-arm

rosmake


就可以啦!

最後實在沒辦法,有許多東西不太支援10.04了,音效卡是其中之一,就換成12.04LTS啦!

安裝Jaco Arm

根據ros wiki的介紹,基本上只要照著這個網頁安裝完就可以了。
http://ros.org/wiki/jaco?distro=fuerte
就只有這麼幾個步驟。經過測試,Fuerte/Groovy/Hydro都可以用喔。不過呢,這只適合用在rosmake,catkin的版本還沒出。
roscd

rosws set ros-jaco-arm --git https://github.com/Kinovarobotics/jaco-ros.git
到下一步前,必須先關掉目前的終端機或是開一個新的,這樣這個新加工作區的才會被加入。

rosws update ros-jaco-arm

cd ros-jaco-arm

rosmake

但是實際上呢,我碰到幾個狀況是網頁上沒提到的。上面的紅字是我補充的部份。

另外呢,在問題回報區(https://github.com/Kinovarobotics/jaco-ros/issues/1)裡面有提到32bit的問題。下面是討論區的回覆。
$ roscd jaco_driver/lib/i386-linux-gnu
$ cp Kinova.API.CommLayerUbuntu.so ~/.ros/
我的解決方式是將那目錄裡面的一堆.so檔全複製一份到/usr/lib裡面。噹噹!出現連線成功的雙藍燈囉!

Dell M 4700 安裝 12.04LTS 加上 ROS 筆記

使用版本12.04.03LTS
音效卡正常,顯示卡與網路卡都可以被Additional Drivers找到。
安裝ros-hydro,這樣才有openni2,可以讀到剛買的primesense 3D攝影機(http://www.primesense.com/solutions/3d-sensor/)。

安裝Clearpath Jaco Driver
先照這個網站上的步驟
http://wiki.ros.org/jaco
然後將幾個.so檔案複製一份到/usr/lib/與~/.ros/
https://github.com/Kinovarobotics/jaco-ros/issues/1
最後找出rules.d,再將99-jaco-arm.rules複製一份過去。
這樣好像就可以了。


最後就是移除一些不必要的軟體囉!

可是呢,最近想用smach時發現hydro有個小問題,就是似乎更新不太完全,這部份好像還沒更新到,難道大家不想用狀態機了嗎!

為了試試看smach,只好降回groovy,但是呢,openni2要怎麼辦呢?

我試了幾種方式,都不太有用,大部分是用在kinect的。
http://answers.ros.org/question/54747/primesense-carmine-doesnt-work-but-asus-xtion-does-openni-launch-devices-connected-but-not-found/

本來以為沒希望了,但是呢,天無絕人之路,從這裡下載了ros-groovy裡面沒附上的openni2_launch,記得要選groovy版。
https://github.com/ros-drivers/openni2_launch

重新catkin_make一下。測試一下,
roslaunch openni2_launch openni2.launch
rosrun rviz rviz
照著openni ros裡面的設定加入depth camera,叮咚!


















中間發生了小插曲,因為我砍掉了hydro又重新裝groovy,所以rqt的一堆插件全都失靈,大家都還在懷念hydro啊!真是念舊的ros,該怎麼辦呢!?
http://answers.ros.org/question/91231/rqt-plugin-not-listedfound-in-list-returned-by-rqt-list-plugins/
查了半天rqt裡面的一堆檔案,沒發現有人窩藏hydro在裡面啊,最後找到上面這裡,按照這兩段一用,咻,跟新的一樣啦!
$ rm ~/.config/ros.org/rqt_gui.ini
$ rqt