1. 程式人生 > >在Jetson TK1上安裝ROS(機器人作業系統)

在Jetson TK1上安裝ROS(機器人作業系統)

1.常規設定

  • 安裝Grinch Kernel(為你的L4T選擇一個合適的版本,可以用cat /etc/nv_tegra_release來檢視L4T的版本號(執行之後,只需要看結果的第一行即可,R後為版本號,REVISION後為修正號,二者用.連線起來即為我們所需要的版本號,如21.3等。
  • 安裝cuda toolkit和opencvtegra從https://developer.nvidia.com/linux-tegra-rel-21;如果你已經在重新整理板子時安裝了cuda toolkit或者opencv那就無需在進行這一步了。

2.安裝ROS

2.1配置你的軟體源

開啟ubuntu軟體中心,然後點選編輯->軟體源,將軟體源屬性設定為

restricted、universal、multiverse(這三個是必須選擇的其他的可選可不選)

2.2設定你的環境

sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=POSIX

ps:如果這一步有問題的話,就試一試下面的命令:

$ export LANGUAGE=en_US.UTF-8
$ export LANG=en_US.UTF-8
$ export LC_ALL=en_US.UTF-8
$ locale-gen en_US.UTF-8
$ dpkg-reconfigure locales

2.3配置sources.list檔案

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'

ps:上述命令是針對ubuntu 14.04,開發代號為Trusty Tahr。

2.4設定密碼

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 0xB01FA116

2.5安裝

首先執行以下命令,升級一下ROS可能要用到的程式。這樣可以避免出現相容性問題。

sudo apt-get update

有許多不同版本的ROS,但是考慮到Jetson TK1的處理器為ARM架構的(並不是所有的庫和工具都能在ARM下編譯),建議單獨安裝ROS包。

ROS-Base: (Bare Bones) ROS編譯、交流的庫,可以滿足基本功能,但是並不是圖形介面。

sudo apt-get install ros-indigo-ros-base

2.5.1新增單獨的包

其實到這裡ROS已經基本安裝完成,你可以用以下命令來安裝特定的包:

sudo apt-get install ros-indigo-PACKAGE

eg:

sudo apt-get install ros-indigo-navigation

如果你要找到特定的包:

apt-cache search ros-indigo

2.5.2安裝大小

Base Package robot variant desktop variant
407 MB 572 MB ~1GB

2.6初始化rosdep

在你正式使用ROS之前,你應該初始化rosdep。rosdep可以讓你很容易的為你的程式碼安裝編譯的依賴項。

sudo apt-get install python-rosdep
sudo rosdep init
rosdep update

2.7環境變數的設定

如果你的ROS環境變數被新增到bash中,那麼每次啟動shell時,將可以直接使用ROS。

echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc

2.8安裝rosinstall

rosinstall在ROS單獨的釋出版本中是使用最頻繁的命令列工具之一,有了它,只要用一條命令,你就可以很容易為你的包下載完整的原始碼樹。
為了在你的ubuntu安裝,執行下述命令:

sudo apt-get install python-rosinstall

2.9驗證你的OS name

確保你的OS name(通過命令:sudo gedit /etc/lsb-release修改)為如下內容:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04"

ps:這是是針對ubuntu 14.04的OS name。

因為ROS並不能識別Linaro作為OS,所以這是有必要的。

2.10編譯農場的狀態