克隆现有的包并将其添加到我们新创建的工作区。
首先导航到src目录,然后从其github仓库克隆本课程 simple_arm 的包。
$ cd ~/catkin_ws/src
$ git clone https://github.com/udacity/simple_arm_01.git simple_arm
在repo完成克隆之后,可以将目录更改为ros工作空间的顶级并构建新包。
$ cd ~/catkin_ws
$ catkin_make
如果不知道这缺失软件包的名称,可以依靠搜索引擎找出所需包的确切名称。比如 controller_manager 是指 ROS Control 的ROS包,命令如下。
$ sudo apt-get install ros-kinetic-controller-manager
或者使用以下命令成功安装缺失的包:
$ source devel/setup.bash
$ rosdep install simple_arm
roslaunch接收一个或多个XML配置文件(带有.launch扩展名),指定要设置的参数和要启动的节点,以及它们应运行的服务。
roslaunch 允许执行以下操作
$ cd ~/catkin_ws
$ catkin_make
$ source devel/setup.bash
$ roslaunch simple_arm robot_spawn.launch
经查阅官网资料后给出解决方案
export ROS_HOSTNAME=LOCALHOST
程序便可正常运行
长时间卡在加载界面
解决办法:
$ cd ~/
$ hg clone https://bitbucket.org/osrf/gazebo_models
下载完成后讲gazebo_models复制到~/.gazebo文件夹中,重命名为models
在上面程序运行时,可能出现以下警告线:
The controller spawner couldn’t find the expected controller_manager ROS interface.
ROS包具有两种不同类型的依赖关系:构建依赖关系和运行依赖关系。此错误消息是由于缺少运行时依赖性。
该rosdep工具将检查包的缺失依赖项,下载它们并安装它们。
要检查包中缺少的依赖项simple_arm:
$ rosdep check simple_arm
注意:为了使命令起作用,必须提供工作空间。
这将为您提供缺少的系统依赖项列表以及从何处获取它们。
要rosdep安装软件包,请从catkin工作区的根目录调用以下命令
$ rosdep install -i simple_arm
使用VM时可能会出现此命令的问题。如果是这种情况,请尝试:
sudo apt-get install ros-kinetic-gazebo-ros-control
当simple_arm再次启动时,机械臂不应再摆动。
所有ROS包都应该位于src目录下。
假设我们已经获得了ROS环境和catkin工作区,导航到src目录:
$ cd ~/catkin_ws/src
创建catkin包的语法很简单,
$ catkin_create_pkg [dependency1 dependency2 …]
包的名称是任意的,但如果我们的catkin工作区中有多个具有相同名称的包,则会遇到麻烦。尽量使其具有描述性和独特性,而且名字最好不要过长。让我们尝试命名为“ first_package”,我们不会指定任何依赖项。按照惯例,包名称是小写的。
$ catkin_create_pkg first_package
在我们新创建的包中导航显示它只包含两个文件,CMakeLists.txt 和 package.xml 。这是一个最小的工作catkin包。它是一个非常简单的文件,因为它没有做任何事情,但它满足catkin包的所有要求。这两个文件的主要功能之一是描述依赖关系以及catkin应如何与它们进行交互。
之前提到ROS包具有传统的目录结构。我们来看看一个更典型的包。
• script(python可执行文件)
• src(C ++源文件)
• msg(用于自定义消息定义)
• srv(用于服务消息定义)
• include - >作为依赖项所需的头文件/库
• config - >配置文件
• launch - >提供更自动化的启动节点的方式
其他文件夹可能包括
• urdf(通用机器人描述文件)
• meshes(.dae(Collada)或.stl(STereoLithography)格式的CAD文件)
• worlds(用于Gazebo仿真环境的XML文件)
我在这几个笔记中主要介绍的内容,大概整理为下
在接下来的笔记中,主要学习ROS节点等问题。官方给出的建议时多多查阅ROS Wiki。
Catkin包和工作空间 1.Carkin包简介 Catkin是ROS的官方构建系统,也是原始ROS构建系统rosbuild的继承者。catkin结合了CMake宏和Python脚本,在CMake的正常工作流程之上提供了一些功能。 被设计为比更传统的rosbuild,允许更好的分发包、更好的交叉编译的支持,以及更好的便携性。cat...
更复杂的ROS节点 1. Arm_mover节点 为了打好更好的基础,这是在Arm_mover节点还需要学习的内容 自定义消息生成服务参数启动文件 为了理解上述内容,我们将编写另一个名为arm_mover的节点。 (1)Arm Mover的描述 在很多方面, arm_mover 都非常相似simple_mover。就像 s...
继ARM公司发布了为嵌入式微控制器设计的Cortex-M7架构处理器,ARM又公布了专为廉价低功耗“物联网”设计的新版软件及系统平台,以加速物联网设备的发展及部署。该软件为基于ARM现有Cortex-M架构设计的mbed平台,包括免费的嵌入式mbed OS操作系统,以及软件工具包mbed Device Server,公司称“能够以安...