一、小乌龟仿真
- 功能包:turtlesim
- 核心节点:turtlesim_node
- 接口的性质:话题、服务、参数(详见P23)
- 步骤:
- 安装turtlesim功能包: sudo apt-get install ros-kinect-turtlesim
- 运行ROS Master: roscore
- 运行仿真器节点: rosrun turtlesim turtlesim_node
- 运行键盘控制的节点: rosrun turtlesim turtle_teleop_key
二、工作空间
- 工作空间(workspace)是存放工程开发相关文件的文件夹。现ROS默认使用Catkin编译系统。
- 典型的工作空间包括四部分:
- src : 放源代码文件
- build : 放编译中的缓存和中间文件
- devel : 放编译生成的可执行文件
- install : (非必需)
- 创建步骤:
- 创建工作空间目录: mkdir -p ~/catkin_ws/src
- 工作空间初始化: cd ~/catkin_ws/src ; catkin_init_worspace
- 编译整个工作空间: cd ~/catkin_ws ; catkin_make
- 设置环境变量: source devel/setup.bash
- 查看环境变量路径: echo $ROS_PACKAGE_PATH
注:(上述方法只能在当前终端生效;若希望在所有终端有效,可采用 echo "source /你的工作空间路径/devel/setup.bash">>~/.bashrc,并执行source ~/.bashrc)
三、功能包
- 采用catkin_create_pkg命令创建: catkin_create_pkg 功能包 依赖1 依赖2 依赖3 ...
- 创建步骤
- 创建功能包: cd ~/catkin_ws/src ; catkin_create_pkg learning_communication std_msgs rospy roscpp
- 设置环境变量: cd ~/catkin_ws ; catkin_make ; source ~/catkin_ws/devel/setup.bash
四、工作空间的覆盖
- 若想查看所有ROS相关的环境变量: env | grep ros
- 若想查看ROS_PACKAGE_PATH:echo $ROS_PACKAGE_PATH ( 下图所示,有三个工作空间,最新创建的放在依次放在前面 )
- 工作空间覆盖的示例:
- 安装 ros-kinetic-ros-tutorials 功能包,并查看其放置的工作空间
- sudo apt-get install ros-kinetic-ros-tutorials
- rospack find roscpp_tutorials (注:此时功能包放在ROS默认的系统工作空间)
- 安装 ros-kinetic-ros-tutorials 功能包,并查看其放置的工作空间
-
- 在自己的工作空间 catkin_ws 中下载同名的ros-kinetic-ros-tutorials 功能包,编译,设置环境变量,并查看其放置的工作空间
- cd ~/catkin_ws/src
- git clone git://github.com/ros/ros_tutorials.git
- cd ~/catkin_ws
- source ./devel/setup.bash
- rospack find roscpp_tutorials (注:此时的功能包放在 catkin_ws 的工作空间,这是因为ROS_PACKAGE_PATH中,catkin_ws工作空间的路径在系统工作空间之前)
- 在自己的工作空间 catkin_ws 中下载同名的ros-kinetic-ros-tutorials 功能包,编译,设置环境变量,并查看其放置的工作空间
注:这种覆盖机制是存在风险的,比如:相同命名的功能包作为依赖包时。