2018年4月29日 星期日

TensorFlow 學習筆記(一) - Windows 上安裝 TensorFlow

本文將說明如何在 Windows 上安裝 TensorFlow ,以及在安裝之前需要注意的事項。

確定 TensorFlow 版本

請按照個人配備及需求,在以下版本中選擇一種來安裝:
  • 只支援 CPU 的 TensorFlow。如果你的系統不支援 NVIDIA® GPU ,你必須安裝這個版本。这个版本的 TensorFlow 通常安裝起來比較簡單,所以對於初入門的使用者,即使你擁有 NVIDIA GPU,我們也推薦首先使用這個版本。
  • 支援 GPU 的 TensorFlow。 TensorFlow 在 GPU 上通常比在 CPU 上的執行得更快。所以如果你有符合以下要求的 NVIDIA® GPU 並且注重效能,可以隨後安裝這個版本。
GPU support TensorFlow 的 NVIDIA 需求
需要事先安裝以下套件:
  • CUDA® Toolkit 8.0。詳見 NVIDIA's documentation。確保按照文檔中描述的將 Cuda 相關路徑加入到 %PATH% 環境變數中。
  • CUDA Toolkit 8.0 相關的 NVIDIA 驅動程式。
  • cuDNN v5.1。詳見 NVIDIA's documentation。注意:cuDNN 通常與其他 CUDA DLLs 安裝的位置不同。確保將 cuDNN 庫的安裝目錄加入到 %PATH% 中。
  • CUDA Compute Capability 3.0 或更高的 GPU 晶片。支援的 GPU 晶片詳見 NVIDIA documentation 。
如上述軟體版本較舊,請將其升級到指定版本。

確定如何安裝 TensorFlow

Windows下安裝TensorFlow有如下選擇:
  • "native" pip
  • Anaconda
使用原生 pip 直接在系統中安裝 TensorFlow,而不使用虛擬環境。 因為原生 pip 將直接安裝於Windows系統中,所以可能會干擾其他基於Python的安裝。不過,如果你理解 pip 和 Python 環境,原生 pip 安裝通常只需要一個指令! 如果使用原生 pip 安裝,則可在任何目錄中執行 TensorFlow 程式。
在 Anaconda 中,你可以通過 conda 建立一個虛擬環境,在開發測試上較為安全。因此即使官網推薦使用 pip install 安裝 TensorFlow,而非conda install但小編之後仍將以 Anaconda 的方式進行測試。原生 pip 安裝方式僅提供參考。
注意:使用 conda install 指令安裝而非官方支持。也就是说 TensorFlow 團隊沒有測試也沒有管理過 conda 安裝。 使用 conda 需要自行承擔風險。

原生 pip 安裝

如果還沒安裝以下版本的 Python ,請先安裝:
TensorFlow 在 Windows 上支援 Python 3.5.x 和  3.6.x 。 注意 Python 3 使用 pip3,我们用 pip3 來安裝 TensorFlow。
在 terminal 中輸入如下指令安裝 CPU版本 的 TensorFlow:
C:\> pip3 install --upgrade tensorflow
安裝支援 GPU 版本的 TensorFlow,使用以下指令:
C:\> pip3 install --upgrade tensorflow-gpu

Anaconda 安裝

Anaconda 安裝是社區支持,而非官方支持
按照以下步驟在 Anaconda 環境中安裝 TensorFlow:
  1. 按說明下載並安裝 Anaconda: Anaconda download site
  2. 建立一個 conda 環境,命名為 tensorflow,以便運行某個 Python 版本:
    C:\> conda create -n tensorflow 
  3. 啟用 anaconda 環境:
    C:\> activate tensorflow
    (tensorflow)C:\>  # 你的提示符號應該發生變化 
  4. 在你的 conda 環境中安裝 CPU 版本的 TensorFlow:
    (tensorflow)C:\> pip install --ignore-installed --upgrade tensorflow 
    安裝支援 GPU 版本的 TensorFlow:
    (tensorflow)C:\> pip install --ignore-installed --upgrade tensorflow-gpu 

驗證安裝結果

啟動 terminal。
如果通過 Anaconda 安裝,啟用 Anaconda 環境。
啟動 Python:
$ python
在 Python 互動式環境中輸入以下程式
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
如果系统輸出如下,則安裝成功:
Hello, TensorFlow!
如果你是新接觸 TensorFlow,可以前往 Getting Started with TensorFlow 進行下一步的學習。
如果你是新接觸機器學習,則可以參考以下連結
如果系统輸出錯誤訊息而非歡迎訊息,查看Common installation problems


參考資料



<備註>

順便在這邊記錄下 Anaconda 及 Spyder 的一些操作指令。

1. Anaconda Update

開啟 Anaconda Prompt

C:> conda update --all
Or
C:> conda update conda
C:> conda update anaconda
C:> conda update spyder

2. Spyder 安裝 TensorFlow

安裝完成 Anaconda 之後,可再安裝運行 spyder 編譯器。 Spyder 下安裝 package 的方式如下。

1. 開啟 Anaconda Navigator,並選擇安裝 Spyder 編譯器。
2. 在 Spyder 編譯器環境中的 terminal 中,只需在指令開頭加入' ! ',即可使用 pip install 安裝套件。
In [1]: !pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.7.0-cp36-cp36m-win_amd64.whl


 


2018年3月13日 星期二

MoveIt 入門教學 - 加入Trac_IK運動學求解(Trac-IK Kinematics Solver)

MoveIt入門教學 - 加入Trac_IK運動學求解(Trac-IK Kinematics Solver)


说明
  • 由於在使用MoveIt中最常見的KDL作為Kinematics Solver的過程中,在進行基本操作時擁有不錯的使用體驗。
  • 但隨著任務需求的增加,在加入環境障礙物以及attach object等操作之後,會遇到執行運算時間過長的問題。甚至可能會因此而失敗(timeout)。
  • 因此嘗試使用不同的Kinematics Solver來解決此一問題,目前測試使用Trac_IK,普遍上會擁有較佳的結果,甚至在某些條件下,運算速度可能會相差十倍以上,並且也比較不會出現失敗的狀況。
甚麼是Trac_IK
  • 来自ROS維基百科上的說明:Trac_IK係作為目前最常見的運動學編譯器(KDL)的改良版本,提供一更快速,且更穩定的運動學編譯器。在處理關節極限(joint-limited)的數值解上會具有較佳的結果,不會再增加額外的計算時間。
  • 並且Trac_IK具有與KDL編譯器相近的API calls,僅需調整部分輸入參數即可切換使用。詳細計算內容請參閱ROS Wiki - Trac_IK中的說明。
MoveIt! Trac_IK
  • MoveIt! Trac_IK是一種Open-Source的函式庫,提供一改善的解運動學的工具。
  • 本文旨在說明如何在機器人的MoveIt系統中使用Trac_IK的强大功能
  • 本文中MoveIt! Trac_IK的測試環境是ROS Kinetic,使用catkin编译。理論上可以工作再任何自由度的機械臂上。
準備
  • 应该已经通过MoveIt!配置助手生成MoveIt!配置包
MoveIt! IKFast 安装

兩種安裝方式:二進制debs包或源安裝
Binary Install:
sudo apt-get install ros-kinetic-trac-ik-kinematics-plugin

    源安装:(在catkin工作空間)
    1. 至官網source中下載原始程式碼
    2. 將package "trac_ik_kinematics_plugin"及"trac_ik_lib"放入catkin的工作空間中
    3. 於機器人的配置文件中"/config/"找到"kinematics.yaml"文件,並將文件內的
kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin 置換為 
=> kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin
4. 調整參數
  1. kinematics_solver_timeout (timeout in seconds, e.g., 0.005) and position_only_ik ARE supported.
  2. solve_type can be Speed, Distance, Manipulation1, Manipulation2 (see trac_ik_lib documentation for details). Default is Speed.
  3. kinematics_solver_attempts parameter is unneeded: unlike KDL, TRAC-IK solver already restarts when it gets stuck
  4. kinematics_solver_search_resolution is not applicable here.



備註: 在完成Trac_IK的安裝之後,即可直接開啟使用。並且在之後的MoveIt_Setup_Assistant中,也會直接出現Trac_IK的選項可以直接選取。




參考資料:
ROS Wiki - Trac_IK
trac_ik - source
MoveIt!入门教程-生成IKFast插件

apt-get update異常處理

1. 問題描述 系統環境:Ubuntu 18.04.3 LTS 執行apt-get update更新時遇到如下狀況 錯誤訊息: Err:1 http://security.ubuntu.com/ubuntu bionic-security InRe...