ROS by example(第二卷,本书的目标)

本书的范围


在卷1我们学习了使用机器人编程的基础,包括在移动端对机器人进行控制,SLAM, 机器人视觉(OpenCV, OpenNI 以及很少的PCL), 语音识别,使用动态伺服服务,这卷书中我们将会接触更多比较高级的ROS概念和包,能够使我们真正达到无人为干扰的机器人行为:

使用Smatch和behavior trees进行复杂的可执行任务管理

使用URDF/Xacro创建自己机器人描述 : 头部的倾斜和平移,多节点手臂抓握,伸缩躯干,传感器放置(激光扫描仪等)

控制动态伺服机使用配置arbotix包

使用ROS诊断包监控机器人本身系统,例如电量低和伺服电机的温度

使用dynamic_reconfigure改变运行中机器人的参数设置

使用mux和yocs进行多重ROS主题,优先级的输入以及互斥操作

使用AR_tags进行物体检测和跟踪

跟踪3D物体,去感知机器人本身和空间的关系

使用MoveIt框架进行多关节手臂控制和抓具,还可以执行正向和反向运动,障碍规避,抓取,以及捡起和放置任务等

使用复杂的Gazebo模拟器对机器人行为进行模拟

使用rosbridge,HTML, javascript通过web-gui对机器人进行控制


即使用全书也只能覆盖这部分主题的全部内容,因此我们会更强调关键的概念,如果你对内容感兴趣可以根据我们提供的参考文档进行深入学习,就像第一卷一样我们的sample code都是用python,对于介绍性质的书籍来说,可能比C++更有弹性一些

一旦你精通了本书的内容,你就能自己为自己的机器人创建URDF模型,手臂节点,平移和旋转的头部,编写一些程序叫机器人能够完成一些自主的运动行为,监控自己的子系统,根据当前的状态确定输入的优先级,在3D空间追踪物体,能够对对关节手臂以及正向和反向运动的夹具进行程序设计,编写你自己的HTML / JavaScript接口对机器人进行监视和控制通过浏览器

安装ROS-BY-EXAMPLE代码


本书的代码使用的ROS Indigo版本,强烈推荐你使用ROS Indigo版本进行学习,一些先决条件的包安装我们在下面的列表中已经给出了,手臂导航的例子是专门使用Indigo运行的

在安装本书例子代码之前,你一定要安装必要的ROS安装包,简单的拷贝粘贴下面的命令到终端窗口安装你所需要的ROS安装包,\ 字符以一个链接字符,保证下面的字符串是在一个命令行当你在linux下面做拷贝粘贴这个动作的时候

sudo apt-get install ros-indigo-arbotix \ ros-indigo-dynamixel-

motor ros-indigo-rosbridge-suite \ ros-indigo-mjpeg-server ros-

indigo-rgbd-launch \ ros-indigo-openni-camera ros-indigo-moveit-

full \ ros-indigo-turtlebot-* ros-indigo-kobuki-* ros-indigo-moveit-python \

python-pygraph python-pygraphviz python-easygui \ mini-httpd

ros-indigo-laser-pipeline ros-indigo-ar-track-alvar \

ros-indigo-laser-filters ros-indigo-hokuyo-node \ ros-indigo-

depthimage-to-laserscan ros-indigo-moveit-ikfast \

ros-indigo-gazebo-ros ros-indigo-gazebo-ros-pkgs \ ros-indigo-

gazebo-msgs ros-indigo-gazebo-plugins \ ros-indigo-gazebo-ros-

control ros-indigo-cmake-modules \ ros-indigo-kobuki-gazebo-plugins

ros-indigo-kobuki-gazebo \ ros-indigo-smach ros-indigo-smach-ros

ros-indigo-grasping-msgs\ ros-indigo-executive-smach ros-indigo-

smach-viewer \ ros-indigo-robot-pose-publisher ros-indigo-tf2-web-

republisher \ graphviz-dev libgraphviz-dev gv python-scipy

你可可以通过rbx2-prereq.sh这脚本来运行这个命令 :

$ cd ~

$ wget https://raw.githubusercontent.com/pirobot/rbx2/indigo-devel/rbx2prereq.sh

$ sh rbx2-prereq.sh

我们也需要从卷1拿到代码,如果你没有相关的资料,你可以安装rbx1代码(如果你还没有安装的情况下), 你可以使用下面的命令:

你可能感兴趣的:(ROS by example(第二卷,本书的目标))