1. 程式人生 > >【ROS】常用命令

【ROS】常用命令

http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem

1. rospack find [package_name] :返回package的地址; 例子: rospack find roscpp

2. roscd [locationname[/subdir]] :把當前地址改為這個package所在的地址; 例子: roscd roscpp   roscd roscpp/cmake

3. pwd : 列印當前所在地址

4. echo $ROS_PACKAGE_PATH : 返回ros的package所安裝的地方

5. rosls [locationname[/subdir]] : 列出package裡的東西而不需要到特定path 例子: rosls roscpp_tutorials

6. rosls <<push TAB key twice>> : 檢視全部ros package

http://wiki.ros.org/ROS/Tutorials/CreatingPackage

1. 建立一個catkin package

  • cd ~/catkin_ws/src
  • catkin_create_pkg beginner_tutorials std_msgs rospy roscpp    (catkin_create_pkg <package_name> [depend1] [depend2])
  • cd ~/catkin_ws
  • catkin_make
  • . ~/catkin_ws/devel/setup.bash

2. 檢視dependencies

  • rospack depends1 beginner_tutorials : 返回beginner_tutorials的dependencies
  • rospack depends beginner_tutorials: 返回beginner_tutorials和它的dependencies的全部dependencies

3. 改一些package的資訊可以在package.xml裡面改。注意裡面的<exec_depend>確保建立的package可以執行

http://wiki.ros.org/ROS/Tutorials/BuildingPackages

1. 生成一個package

  • source /opt/ros/kinetic/setup.bash
  • cd ~/catkin_ws
  • catkin_make
  • catkin_make install #

http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes

1. sudo apt-get install ros-kinetic-ros-tutorials : 下載一個simulator

2. roscore :相當於啟動ros - 上面連結中有兩個常見troubleshooting

3. 開啟一個新的terminal輸入rosnode list能看見只有一個/rosout - 說明現在只有一個node,這個node的作用是儲存所有的執行記錄

4. rosnode info /rosout : 返回node的詳細資訊

5. rosrun turtlesim turtlesim_node : rosrun可以直接跟package的名字而不用標明路徑    rosrun [package_name] [node_name]

6. rosrun turtlesim turtlesim_node __name:=my_turtle     :可以將node改名,再次rosnode list就會發現改成了my_turtle (注意,這個並不是永久改名。關掉之後再開就恢復原來的名字)

7. rosnode ping my_turtle   :監測看它是不是還在

http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics

1. rosrun turtlesim turtle_teleop_key  :讓烏龜按照輸入按鍵移動的一個node(和烏龜通過topic交換資訊),如果無法移動,選中執行這個的terminal

2. rosrun rqt_graph rqt_graph : 可以觀看node之間的關係 - 中間的/turtle1/cmd_vel就是一個topic

3. rostopic 可以得到topic的資訊;    rostopic echo /turtle1/cmd_vel  :可以看到烏龜運動的速度資訊   rostopic echo [topic]

4. rostopic list -v   可以返回當前的published topics和subscribed topics

5. rostopic type /turtle1/cmd_vel   返回這個topic的type,也就是傳輸的message的type。  rostopic type [topic]

6. rosmsg show geometry_msgs/Twist   返回這個type的具體細節(格式什麼樣的)

7. rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'  手動在這個topic裡publish一個值 - rostopic pub [topic] [msg_type] [args]    這裡的-1指的是隻釋出1個資訊然後就exit

8. rostopic /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'   讓烏龜持續做圓周運動

9. rostopic echo /turtle1/pose   返回turtle的位置速度等資訊

10. rostopic hz /turtle1/pose    返回turtiesim_node publish /turtle1/pose的速度有多快

11. rosrun rqt_plot rqt_plot      可以彈出一個繪圖框觀察運動軌跡,如輸入/turtle1/pose/x然後新增

http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams

1. rosservice list : 列出全部當前node的service

2. rosservice call /clear : 清楚當前畫面中原先不存在的東西(turtle運動軌跡)

3. rosservice type /clear   : 返回/clear這個service的型別