ROS 的一些常用命令行功能


1.安裝並添加源
sudo gedit /etc/apt/sources.list
更新下
sudo apt-get update
添加 sources.list,如
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
添加 keys,如
sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

2.安裝某個指定的ROS軟件包
sudo apt-get install ros-indigo-PACKAGE

3.要查找可用軟件包:
apt-cache search ros-indigo
查看軟件包列表和定位軟件包:
rospack list
查看軟件包目錄下的文件:
rosls package-name
將當前目錄切換至此軟件包目錄:
roscd package-name

4.環境變量設置
ROS環境變量都能夠自動配置好(即添加到bash會話中),配置好后,source一下.
$echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
$source ~/.bashrc
只改變當前終端下的環境變量:
source /opt/ros/indigo/setup.bash

 5.創建並構建工作空間
創建一個工作空間:
mkdir -p ~/catkin_ws/src
轉到已創建好的工作空間之下:
cd ~/catkin_ws/src
盡管這個空間是空的,我們仍然可以構建( build)它:
cd ~/catkin_ws/
catkin_make
接下來首先source一下新生成的setup.*sh文件:
source devel/setup.bash
要想保證工作空間已配置正確需確保ROS_PACKAGE_PATH環境變量包含你的工作空間目錄,采用以下命令查看
 echo $ROS_PACKAGE_PATH


6.獲取軟件包的有關信息
rospack find [包名稱]
該選項可以返回軟件包的路徑信息
roscd [本地包名稱[/子目錄]]
直接切換工作目錄到某個軟件包或者軟件包集當中
pwd來輸出當前工作目錄
pwd
切換到ROS保存日記文件的目錄下
roscd log
直接按軟件包的名稱而不是絕對路徑執行ls命令(羅列目錄)
rosls [本地包名稱[/子目錄]]
示例:
$ rosls roscpp_tutorials
應輸出:
cmake  package.xml  srv
Tab 自動完成輸入
$roscd roscpp_tut<< 現在請按TAB鍵 >>
命令行中應該會自動補充剩余部分:
$ roscd roscpp_tutorials/
查看ubuntu版本
cat /etc/issue

7.查看消息類型:
rosmsg show message-type-name

8.用命令行發布消息:
rostopic pub –r rate-in-hz topic-name message-type message-content
重復地按照指定的頻率給指定的話題發布指定的消息如:rostopic pub –r 1 /turtle1/cmd_vel geometry_msgs/Twist ’[2,0,0]’ ’[0,0,0]’
前面三個數字表示期望的位移線速度, 后面三個數字表示期望的角速度。用單引號( ’…’)和中括號( […])組織這些數值賦給它們對應的兩個頂層復合域變量。-r來指定話題以頻率模式發布消息。一次性發布的模式( -1“虛線后為數字 1”)和特別的鎖存模式( -l“虛線后為字母 L 的小寫”)。

9. YAML 是"YAML Ain't a Markup Language"( YAML 不是一種置標語言)的遞歸縮寫。

10.turtlesim + Color turtlesi ⇒ m/Color
    功能包名  + 類型名稱 ====消息類型

11.問題檢查:roswtf
這條命令會進行全面而深入的檢測,包括檢測你的環境變量、安裝的文件以及運行的節點。例如, roswtf 將會檢測在安裝過程中 rosdep 初始化是否完成, 任何節點是否出現了意外的掛起或者終止, 以及活躍的節點是否正確地和其他節點相連接等。可惜的是,由 roswtf 檢測的完整列表只能在 Python 源碼中才能找到。

12.所有軟件都被組織為軟件包的形式,ROS軟件包是一組用於實現特定功能的相關文件的集合,包括可執行文件和其他支持文件。比如說,我們前面使用的兩個可執行文件 turtlesim_node 和turtle_teleop_key 都屬於 turtlesim 包。每個程序包由一個清單文件( 文件名為 package.xml)定義. CMakeLists.txt,是一個Cmake的腳本文件。


13.創建功能包:
catkin_create_pkg package-name
ROS包的命名遵循一個命名規范,只允許使用小寫字母、數字和下划線,而且首字符必須是一個小寫字母。

14.ROS程序包的編寫。
《機器人操作系統淺析》p52-p61
創建工作區————創建功能包————編寫ROS程序(Hello.cpp)————編譯Hello程(聲明依賴庫,聲明可執行文件)————編譯工作區————執行名為 setup.bash 的腳本文件(source devel/setup.bash)————執行hello程序(rosrun agitr hello).

15.發布者程序
如何發送隨機生成的速度指令到一個turtlesim海龜,使它漫無目的地巡游。
ps:當引用 C++代碼中的消息類時,你將會使用雙分號( ::)來區分開包名和類型名,雙分號也稱為范圍解析運算符.
每一個日志消息都被發布到話題/rosout 上.

16.直接查看消息內容:
rostopic echo /rosout
或者:rqt_console

17.roscore和roslaunch運行時都會檢查和監測已經存在的日志的大小,並會在日志文件大小超過 1GB時提醒你。
查看當前賬戶中被ROS日志消耗的硬盤空間:
rosclean check
刪除所有已經存在的日志:
rosclean purge
通過圖形界面設置日志級別:
rqt_logger_level

18.必應搜 ROS Cheat Sheet ,可以下載ROS的一些常用命令的pdf文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM