1 Environment
# 打印当前终端下的ROS的环境变量
# 如果没有所需要的,则需要source一下setup.*sh
printenv | grep ROS
# 添加环境变量
source /opt/ros/melodic/setup.bash
2 Workspace
新建工作空间
mkdir -p ~/catkin_ws/src # -p递归创建目录
cd ~/catkin_ws/
catkin_make
配置catkin_ws的环境
source ~/catkin_ws/devel/setup.bash
echo $ROS_PACKAGE_PATH
3 基本命令
rospack
# 查找某个pkg的地址
# rospack find package_name
rospack find roscpp
# 列出本地所有pkg
rospack list
# 查看某个package的first-order依赖项
# rospack depends1 pkg_name
rospack depends1 beginner_tutorials
# 查看某个package的所有依赖项(包括间接依赖)
rospack depends beginner_tutorials
roscd(cd)
# 跳转到某个pkg目录下
# roscd package_name
roscd roscpp
# 查看ros日志
roscd log
rosls(ls)
# 列举某个pkg下的文件信息
# rosls package_name
rosls roscpp
catkin_create_pkg
# 新建一个package
# catkin_create_pkg <pkg_name> [depend1] [depend2] [depend3]
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
4 Packages
Requirements:
- a package.xml
- a CMakeLists.txt
- its own folder(放在src下面)
结构:
my_package/
CMakeLists.txt
package.xml
新建一个Package
cd ~/catkin_ws/src
# catkin_create_pkg 功能包名 [依赖功能包1] [依赖功能包2]...
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
Building Packages
cd ~/catkin_ws/src
catkin_make
source ~/catkin_ws/devel/setup.bash
5 Nodes
使用ROS之前需要运行命令roscore。
# 查看所有节点
rosnode list
# 查看单个节点信息
rosnode info /rosout
# 启动节点
# rosrun [package_name] [node_name]
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
# ping
rosnode ping my_turtle
6 Topics
rqt
# 启动rqt_graph,查看节点间的信息传递
rosrun rqt_graph rqt_graph
# 启动rqt_plot
rosrun rqt_plot rqt_plot
rostopic
# 查看rostopic的选项
rostopic -h
# 查看一个topic输出的数据
# rostopic echo [topic]
rostopic echo /turtle1/cmd_vel
# 查看rostopic list的选项
rostopic list -h
# 列出每个topic的所有细节
rostopic list -v
# 查看一个topic输出的message类型
# rostopic type [topic]
rostopic type /turtle1/cmd_vel
# 查看message的细节
rosmsg show geometry_msgs/Twist
# 在当前使用的topic输出data
# -1 表示只输出一次
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
# -r 1 表示已1Hz的频率持续输出
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
# 打出data被publish的频率
# rostopic hz [topic]
rostopic hz /turtle1/pose
7 Services
# 列出正在运行的所有的service
rosservice list
# 查看一个service的类型
# rosservice type [service]
rosservice type /clear
# 调用一个service
# rosservice call [service] [args]
rosservice call /clear
# find services by service type
rosservice find
# print service ROSRPC uri
rosservice uri
8 rosparam
# set parameter
rosparam set
# get parameter
rosparam get
# load parameters from file
rosparam load
# dump parameters to file
rosparam dump
# delete parameter
rosparam delete
# list parameter names
rosparam list