ROS整理 —— 工作空间/功能包/覆盖机制(2)

一、小乌龟仿真

  • 功能包: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默认的系统工作空间)

    • 在自己的工作空间 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工作空间的路径在系统工作空间之前)

注:这种覆盖机制是存在风险的,比如:相同命名的功能包作为依赖包时。

猜你喜欢

转载自blog.csdn.net/kongli524/article/details/87650196