機(jī)器人操作系統(tǒng) ROS支持多種操作系統(tǒng),但正式支持的只有Ubuntu,而對(duì)其它版本僅提供安裝方法惹骂。因此說明Ubuntu及與Ubuntu兼容的Linux Mint一般可以采用 apt-get的方式進(jìn)行安裝闰集,可以根據(jù)自己的Ubuntu的具體版本下載相應(yīng)的ROS版本進(jìn)行安裝膝捞。
1管钳、配置軟件庫: Ubuntu repositories闪金。
???? 在桌面點(diǎn)擊“Ubuntu Software”羡滑,選擇“software & update”丝格,選中 “restricted,” “universe,” and “multiverse” 聪姿,如下圖所示碴萧。
通常也會(huì)設(shè)置“download from”,可以選擇一個(gè)國內(nèi)的軟件源末购,如:http://mirrors.aliyun.com/ubuntu, 當(dāng)然也可以設(shè)置為其他破喻,或者讓系統(tǒng)自動(dòng)選擇最好的扫茅。更改以后晌纫,選擇“reload”更新軟件退客“保“reload”需要一定的時(shí)間不跟,一定要耐性等待犬性,如果中途手動(dòng)停止泥耀,后面下載的時(shí)候回出現(xiàn)錯(cuò)誤神郊,導(dǎo)致安裝失敗迅办。
2宅静、設(shè)置軟件源:sources.list。
配置你的電腦使其能夠安裝來自 packages.ros.org的軟件包站欺。目前最新版本的 ROS Kinetic 只支持Ubuntu 15.10和 Ubuntu 16.04 姨夹。
sudo sh -c 'echo"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main"> /etc/apt/sources.list.d/ros-latest.list'
3、設(shè)置 keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80--recv-key0xB01FA116
1矾策、更新軟件
sudoapt-get update
2磷账、ROS中有很多各種函數(shù)庫和工具,我們提供了四種默認(rèn)安裝方式贾虽,你也可以單獨(dú)安裝某個(gè)特定軟件包逃糟。
?? 桌面完整版安裝:(推薦) 包含ROS、rqt、rviz绰咽、通用機(jī)器人函數(shù)庫蛉抓、2D/3D仿真器、導(dǎo)航以及2D/3D感知功能剃诅。
sudo apt-getinstall ros-Kinetic-desktop-full
?? 桌面版安裝: 包含ROS巷送、rqt、rviz以及通用機(jī)器人函數(shù)庫矛辕。
sudo apt-getinstall ros-Kinetic-desktop
?? 基礎(chǔ)版安裝: 包含ROS核心軟件包笑跛、構(gòu)建工具以及通信相關(guān)的程序庫,無GUI工具聊品。
sudo apt-getinstall ros-Kinetic-ros-base
?? 單個(gè)軟件包安裝: 你也可以安裝某個(gè)指定的ROS軟件包(使用軟件包名稱替換掉下面的PACKAGE):
sudo apt-getinstall ros-Kinetic-PACKAGE
例如:sudo apt-getinstall ros-Kinetic-slam-gmapping
因?yàn)镽OS更新比較快飞蹂,如果是想學(xué)習(xí)的話,最好安裝最新的版本翻屈,如果是要使用現(xiàn)成的機(jī)器人工具包的話陈哑,可以先查看一下你所選擇的機(jī)器人工具包支持哪一個(gè)版本的ROS,然后再安裝伸眶。
要查找可用軟件包惊窖,請(qǐng)運(yùn)行:
apt-cachesearch ros-Kinetic
3、初始化 rosdep
在開始使用ROS之前你還需要初始化rosdep厘贼。rosdep可以方便在你需要編譯某些源碼的時(shí)候?yàn)槠浒惭b一些系統(tǒng)依賴界酒,同時(shí)也是某些ROS核心功能組件所必需用到的工具。
sudorosdep initrosdep update
4嘴秸、環(huán)境配置
如果每次打開一個(gè)新的終端時(shí)ROS環(huán)境變量都能夠自動(dòng)配置好(即添加到bash會(huì)話中)毁欣,那將會(huì)方便很多:
echo"source /opt/ros/Kinetic/setup.bash">> ~/.bashrcsource~/.bashrc
5、安裝 rosinstall
rosinstall 是ROS中一個(gè)獨(dú)立分開的常用命令行工具岳掐,它可以方便讓你通過一條命令就可以給某個(gè)ROS軟件包下載很多源碼樹凭疮。要在ubuntu上安裝這個(gè)工具,請(qǐng)運(yùn)行:
sudo apt-getinstall python-rosinstall
1串述、管理環(huán)境
在安裝ROS期間执解,你會(huì)看到提示說需要 source 多個(gè)setup.*sh文件中的某一個(gè),或者甚至提示添加這條’source’命令到你的啟動(dòng)腳本里面剖煌。這些操作是必須的材鹦,因?yàn)镽OS是依賴于某種組合空間的概念逝淹,而這種概念就是通過配置腳本環(huán)境來實(shí)現(xiàn)的耕姊。這可以讓針對(duì)不同版本或者不同軟件包集的開發(fā)更加容易。
如果你在查找和使用ROS軟件包方面遇到了問題栅葡,請(qǐng)確保你已經(jīng)正確配置了腳本環(huán)境茉兰。一個(gè)檢查的好方法是確保你已經(jīng)設(shè)置了像ROS_ROOT和ROS_PACKAGE_PATH這樣的環(huán)境變量,可以通過以下命令查看:
$export| grep ROS
如果發(fā)現(xiàn)沒有配置欣簇,那這個(gè)時(shí)候你就需要’source’某些’setup.*sh’文件了规脸。
如果你是通過ubuntu上的 apt 工具來安裝ROS的坯约,那么你將會(huì)在’/opt/ros//’目錄中看到setup.*sh文件,然后你可以執(zhí)行下面的source命令:
source /opt/ros//setup.bash
在每次打開終端時(shí)你都需要先運(yùn)行上面這條命令后才能運(yùn)行ros相關(guān)的命令莫鸭,為了避免這一繁瑣過程闹丐,你可以事先在.bashrc文件(該文件是在當(dāng)前系統(tǒng)用戶的home目錄下。)中添加這條命令被因,這樣當(dāng)你每次登錄后系統(tǒng)已經(jīng)幫你執(zhí)行這些命令配置好環(huán)境卿拴。這樣做也可以方便你在同一臺(tái)計(jì)算機(jī)上安裝并隨時(shí)切換到不同版本的ROS(比如fuerte和groovy)。
2梨与、創(chuàng)建ROS工作空間
catkin rosbuild
下面我們開始創(chuàng)建一個(gè)catkin 工作空間:
$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/src
即使這個(gè)工作空間是空的(在’src’目錄中沒有任何軟件包堕花,只有一個(gè)CMakeLists.txt鏈接文件),你依然可以編譯它:
$ cd ~/catkin_ws/$ catkin_make
catkin_make命令在catkin
工作空間中是一個(gè)非常方便的工具粥鞋。如果你查看一下當(dāng)前目錄應(yīng)該能看到’build’和’devel’這兩個(gè)文件夾缘挽。在’devel’文件夾里面你可以看到幾個(gè)setup.*sh文件。接下來首先source一下新生成的setup.*sh文件:
$sourcedevel/setup.bash
要想保證工作空間已配置正確需確保ROS_PACKAGE_PATH環(huán)境變量包含你的工作空間目錄呻粹,采用以下命令查看:
$ echo$ROS_PACKAGE_PATH/home//catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks
到此工作環(huán)境已經(jīng)搭建完成壕曼。
運(yùn)行小烏龜
首先打開一個(gè)終端運(yùn)行如下命令:
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
(這里要說明,因?yàn)槲业碾娔X之前在配置啟動(dòng)項(xiàng)的時(shí)候等浊,并未成功窝稿,所以每一個(gè)終端窗口都要運(yùn)行上述的兩天的命令,才可以運(yùn)行)
運(yùn)行終端下的?????? roscore? 命令啟動(dòng)主節(jié)點(diǎn)服務(wù)器凿掂。
此時(shí)主節(jié)點(diǎn)服務(wù)器已經(jīng)啟動(dòng)伴榔,接下來可以運(yùn)行節(jié)點(diǎn)
打開新的終端,同樣運(yùn)行上述的兩條命令 之后 輸入 rosrun turtlesim turtlesim _ node
這樣子之后ROS的標(biāo)志——小烏龜就顯示出來了庄萎。但是此時(shí)它還不能動(dòng)踪少,只能靜靜的呆在那里,接下來的一條命令糠涛,可以讓它動(dòng)起來援奢,打開一個(gè)新的終端窗口并執(zhí)行以下命令。將顯示下面消息,并執(zhí)行turtlesim功能包中的turtle_teleop_key忍捡。如果您按下該終端窗口上的方向鍵(←,→,↑,↓),您將看到烏龜按照?qǐng)D3-6右側(cè)所示的方向鍵移動(dòng)集漾。您必須在終端窗口中輸入鍵盤。這看似只是一個(gè)簡單的仿真,但實(shí)體機(jī)器人也可以通過這種方式進(jìn)行遠(yuǎn)程控制砸脊。
運(yùn)行rqt_graph功能包的rqt_graph
在新的終端窗口中執(zhí)行rqt_graph命令,這將啟動(dòng)rqt_graph功能包的rqt_graph節(jié)點(diǎn)具篇。其結(jié)果是當(dāng)前正在運(yùn)行的節(jié)點(diǎn)(程序)的信息圖,如圖3-7所示。
rqt_graph節(jié)點(diǎn)以GUI形式顯示關(guān)于當(dāng)前正在運(yùn)行的節(jié)點(diǎn)的信息凌埂。圓圈表示節(jié)點(diǎn),正方形表示話題驱显。可以看到,箭頭從/teleop_turtle節(jié)點(diǎn)開始,通往/turtlesim。這表示兩個(gè)節(jié)點(diǎn)正在運(yùn)行并且這兩個(gè)節(jié)點(diǎn)之間正在發(fā)生消息通信埃疫。并且/turtle1/cmd_vel是turtle1話題的子話題,是兩個(gè)節(jié)點(diǎn)之間的話題的名稱,意味著在teleop_turtle節(jié)點(diǎn)中通過鍵盤輸進(jìn)來的速度命令通過話題將消息發(fā)送給turtlesim伏恐。換句話說,使用先前執(zhí)行的兩個(gè)節(jié)點(diǎn),將鍵盤命令傳送到機(jī)器人仿真器。
1栓霜、http://wiki.ros.org/cn/jade/Installation/Ubuntu
2翠桦、http://wiki.ros.org/cn/ROS/Tutorials/InstallingandConfiguringROSEnvironment