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的类型