【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的型別