人与机器人的智能交互

人机智能交互技术(ROS-H帕杰罗I-人与机器人的智能交互)课程介绍与资料

澳门新葡萄京官网注册 1

那是机器人系统规划与操纵技能的存续课程,全体的课程内容包罗四门学科(本科),如下:

澳门新葡萄京官网注册 2

人机智能交互技术是人机融合的基础,课程介绍各个人机交互技术,包含古板和后来的,围绕人、机器人和交互软件拓展。

正如好玩的案例,如下:

1语音交互:http://blog.csdn.net/zhangrelay/article/details/68951068

2视觉交互:http://blog.csdn.net/zhangrelay/article/details/53223939

3感应交互:http://blog.csdn.net/zhangrelay/article/details/52356417

肆脑电交互:http://blog.csdn.net/zhangrelay/article/details/50932120

越来越多内容,可在互联网上举行材质搜索。本学科侧重四款常用于机器人的传感器,大切诺基GB-D录制头和Leap
Motion手势设备。

三维环境识别感知身体活动识别三个维度手势跟踪为案例实行实际介绍。

澳门新葡萄京官网注册 3  澳门新葡萄京官网注册 4

澳门新葡萄京官网注册 5  澳门新葡萄京官网注册 6

学科作业:4遍实施告诉、一次革新大作业。愈多内容稍后补充。

—-补充阅读:

澳门新葡萄京官网注册 7

open_manipulator:https://github.com/ROBOTIS-GIT/open_manipulator/wiki

利用ROS学习机器人编制程序的系统方法

澳门新葡萄京官网注册 8

特色

  • 从零初步学习ROS,不依赖于以前专业知识
  • 传闻壹多元有关的核心,稳步将ROS娓娓道来
  • 亟待全部C
    ++的基础知识,但是并不须要编制程序、机器人、机器视觉、运动学/重力学或软件工程地点的专业知识
  • 展现ROS编制程序技术与Gazebo仿真
  • 澳门新葡萄京官网注册,提供机器人民代表大会旨的研习,包罗运动学、机器视觉、点云处理、地图创设、导航和用户界面人机接口内容1部分)。

概要

选拔ROS学习机器人编制程序的连串方法通过对简易代码示例以及对应操作理论的详尽分解,周详介绍了ROS的主干组件。本书钻探了ROS的团组织,怎么样晓得ROS软件包,如何行使ROS工具,怎么着将长存的ROS软件包纳入新的应用程序,以及哪些开发新的机器人和自动化软件包。它还通过准备读者更好地通晓现有的在线文档来推进继续教育。

那本书分为6部分。

一.
率先介绍ROS基础,包含编写ROS节点和ROS工具。新闻,类和服务器也被覆盖。

2.
本书的第3有的是ROS的虚伪和可视化,包含坐标变换。

3.
本书的下一部分议论了ROS中的感知处理。它归纳在ROS中利用录制头,深度成像和点云以及点云处理。

四.
本书第6部分介绍了ROS中的移动机器人控制和导航。

伍.
本书的第四片段含有机器人手臂在ROS中的使用。本节探索机器人手臂运动学,手臂运动设计,使用Baxter
Simulator举办手臂控制以及物体抓取包。

6.
本书的末段一有些关键介绍系统融为一体和更高级别的主宰,包含基于感知和平运动动操作。那有些内容与本学科有关。

壹切演示和有关C
++代码的新闻,请访问https://github.com/wsnewman/learning_ros

代码应用说明

“使用ROS学习机器人编制程序的系统方法”。代码示例在与章节对应的公文夹中。

应将此整个存款和储蓄库克隆到:〜/ ros_ws /
src(如果ros工作区命名字为“ros_ws”并置身主目录中)。

要履行此操作,请从巅峰导航至〜/ ros_ws
/ src,

接下来输入: 

git clone https://github.com/wsnewman/learning_ros.git 

并克隆: 

git clone https://github.com/wsnewman/learning_ros_external_packages.git

然后,从终端,导航到〜/
ros_ws并使用命令编写翻译代码: 

catkin_make

一经第三回安装ROS,请参阅以下表达: 设置脚本

位于此站点的剧本可自动安装ROS(与运用学习-ROS代码示例的本子和包一致)。那个本子还安装了种种有效的工具。

在源码中得以见见实际的代码应用验证:

诸如第2章learning_ros/Part_1/commands_summary_part1:

---------roscore, messages, nodes----------
catkin_make
  (if problems, do:
     delete ros_ws/build and ros_ws/devel dirs
     catkin_make clean 
     catkin_make)
roscd
cd src
mkdir ros_class
cd ros_class
cs_create_pkg rosclass_minimal_nodes roscpp std_msgs
(note: cs_create_pkg uses "catkin simple", which is easier than catkin_create_pkg)
cd rosclass_minimal_nodes
ls

-----------minimal publisher--------
open editor (gedit or: netbeans & disown)
open file: .../learning_ros/Part_1/minimal_nodes/minimal_publisher.cpp
save to directory: ros_ws/src/ros_class/rosclass_minimal_nodes/src/minimal_publisher.cpp

gedit CMakeLists.txt (is better than netbeans for this type of file)
add:
cs_add_executable(rc_minimal_publisher src/minimal_publisher.cpp)
in any terminal (e.g. ctl-shift-t or file-> open tab)
 roscd
catkin_make

in a terminal, start a roscore:
roscore

in another terminal, run the new pgm:
rosrun rosclass_minimal_nodes rc_minimal_publisher 

in another terminal:
rostopic list
rostopic info topic1
rosmsg show std_msgs/Float64
rostopic echo topic1
rostopic hz topic1
see performance meter

open:
.../learning_ros/Part_1/minimal_nodes/sleepy_minimal_publisher.cpp
save in: ros_ws/src/ros_class/rosclass_minimal_nodes/src/sleepy_minimal_publisher.cpp
in CMakeLists.txt, add line:
cs_add_executable(rc_sleepy_minimal_publisher src/sleepy_minimal_publisher.cpp)
roscd
catkin_make
rosrun rosclass_minimal_nodes rc_sleepy_minimal_publisher
rostopic echo topic1
rostopic hz topic1
see performance meter

------minimal_subscriber--------
edit .../learning_ros/Part_1/minimal_nodes/minimal_subscriber.cpp
save as: ros_ws/src/ros_class/rosclass_minimal_nodes/src/minimal_subscriber.cpp
CMakeLists.txt:
cs_add_executable(rc_minimal_subscriber src/minimal_subscriber.cpp)
catkin_make

rosrun rosclass_minimal_nodes rc_minimal_subscriber
(see behavior w/ and w/o minimal publisher running)

rostopic pub -r 1 topic1 std_msgs/Float64 1.23

rosnode list
rosnode info minimal_subscriber
rqt_graph

----launch file----
edit .../learning_ros/Part_1/minimal_nodes/launch/minimal_nodes.launch
save as: ros_ws/src/ros_class/rosclass_minimal_nodes/launch/minimal_nodes.launch
edit package name (rosclass_minimal_nodes) and executable name (rc_sleepy_minimal_publisher, etc)
kill running nodes
roslaunch rosclass_minimal_nodes minimal_nodes.launch
rqt_console


----rosbag----
rosbag record topic1
restart minimal subscriber
rosbag play fname.bag
rqt_console

---minimal simulator---
edit minimal_simulator.cpp and minimal_controller.cpp; save in rosclass_minimal_nodes/src
edit CMakeLists.txt:
cs_add_executable(rc_minimal_simulator src/minimal_simulator.cpp)
cs_add_executable(rc_minimal_controller src/minimal_controller.cpp)
catkin_make
rosrun rosclass_minimal_nodes rc_minimal_simulator
rostopic pub -r 10 force_cmd std_msgs/Float64 0.1 
rqt_plot
kill publisher
rosrun rosclass_minimal_nodes rc_minimal_controller
rostopic pub -r 10 vel_cmd std_msgs/Float64 1.0

-------------end CH1----------
----------CH2--------
*custom messages
from ros_class directory,
  cs_create_pkg example_ros_msg roscpp std_msgs
open .../learning_ros/Part_1/example_ros_msg/msg/ExampleMessage.msg
save in: ...ros_class/example_ros_msg/msg/ExampleMessage.msg
in package.xml, uncomment lines:
 <build_depend>message_generation</build_depend>
 <run_depend>message_runtime</run_depend> 
catkin_make
rosmsg show  example_ros_msg/ExampleMessage

open .../learning_ros/Part_1/example_ros_msg/src/example_ros_message_publisher.cpp
 save in ...ros_class/example_ros_msg/src/example_ros_message_publisher.cpp
 edit CMakeLists.txt; add line:
 cs_add_executable(rc_example_ros_message_publisher src/example_ros_message_publisher.cpp)
 catkin_make
 rosrun example_ros_msg rc_example_ros_message_publisher   (with roscore running)
 rostopic echo example_topic

services:
from ros_class:
cs_create_pkg example_ros_service roscpp std_msgs nav_msgs geometry_msgs 
open and save under .../ros_class/example_ros_service/src:
example_ros_service.cpp
example_ros_client.cpp
open and save under ../ros_class/example_ros_service/srv:
ExampleServiceMsg.srv
edit package.xml; uncomment:
<build_depend>message_generation</build_depend> 
<run_depend>message_runtime</run_depend>

edit CMakeLists.txt; add:
cs_add_executable(example_ros_service src/example_ros_service.cpp)
cs_add_executable(example_ros_client src/example_ros_client.cpp)
catkin_make
rosrun example_ros_service example_ros_service
rosservice list
rosservice info
rosservice call lookup_by_name 'Ted'
rosrun example_ros_service example_ros_client 

classes: see example_ros_class (pass in node handle; odd syntax for callbacks)

rosrun example_ros_class example_ros_class
rosservice call example_minimal_service 
rostopic pub -r 2 example_class_input_topic std_msgs/Float32 2.0

*main using a library:
rosrun creating_a_ros_library example_ros_class_test_main
(then test, as above)

libraries: creating_a_ros_library; 
note CMakeLists.txt for adding a library
where to put header file (then use <pkg/header_name.h>)
  *the parameter server
  *creating packages and libraries

action servers: in ros_class dir, create pkg:
cs_create_pkg example_action_server roscpp actionlib
open and save under .../ros_class/example_action_server/action/demo.action
open and save under .../ros_class/example_action_server/src/example_action_server.cpp
open and save under .../ros_class/example_action_server/src/example_action_client.cpp
edit package.xml; uncomment:
 <build_depend>message_generation</build_depend>
  <run_depend>message_runtime</run_depend> 
CMakeLists.txt: 
uncomment:
find_package(Boost REQUIRED COMPONENTS system thread)
add:
cs_add_executable(example_action_server src/example_action_server.cpp)
cs_add_executable(example_action_client src/example_action_client.cpp)
catkin_make

rosrun example_action_server example_action_server
rosrun example_action_server example_action_client

rosrun example_action_server example_countdown_server
rosrun example_action_server timer_client

Parameter server:
rosparam
rosparam set /gains "p: 1.0
i : 2.0
d : 3.0"
rosparam list
rosparam get /gains
from .../learning_ros/Part_1/example_parameter_server/launch:
rosparam load jnt1_gains.yaml
rosparam list
rosparam get jnt1_gains
rosparam delete jnt1_gains
rosparam list
(launch file option--would need to copy over package/directory)
example read_param_from_node: uses: if ( nh.getParam ("/joint1_gains/p", P_gain))

—-请认真读书本书第陆章

coordination commands:
Start up gazebo, add starting pen, tables and blocks, spawn baxter-on-mobot:  
 (optirun) `roslaunch baxter_variations baxter_on_mobot.launch` 


Launch multiple nodes, including 6 action servers, 2 services,  and rviz (including trajectory streamers, 
cartesian planner, rviz, baxter-playfile,  triad_display, object-grabber, object-finder and coordinator).  Same
as coordinator for baxter on pedestal:
`roslaunch coordinator coord_vision_manip.launch`

Optionally, test with this example client of the coordinator:
`rosrun coordinator coordinator_action_client_tester`

Start up map server (with starting-pen map), amcl, and move_base with 4 nav config files.  Nearly identical
to nav-launch in Part-4, except do not start up rviz (again):

`roslaunch baxter_variations mobot_startup_navstack.launch`

章节目录

第一节
ROS基础

ROS简介:ROS工具和节点

一些ROS概念

写ROS节点

某个更加多的Ros工具:Catkin_Simple,Roslaunch,Rqt_Console和Rosbag

多少个细微的仿真器和控制器的例子

使用包

新闻,类和服务器

概念自定义新闻

ROS服务介绍

在ROS中使用C ++类

在ROS中成立库模块

操作服务器和操作客户端简介

参数服务器简介

使用包

第壹节
ROS中的仿真和可视化

ROS仿真

简单的讲的二维机器人仿真器

动态仿真建立模型

统一机器人描述格式

Gazebo介绍

小小的联合控制器

行使Gazebo插件举办协同伺服控制

创设移动机器人模型

模仿移动机器人模型

组合机器人模型

使用包

ROS中的坐标变换(TF)

ROS的坐标变换简介

转移监听器

使用特征库

更换ROS数据类型

使用包

ROS中的感知和可视化

标志和相互标记在Koleosviz

在本田UR-Vviz中突显传感器值

使用包

其三节 在ROS中应用相机处理

投影变换到相机坐标

本机相机校准

立体相机的内在校准

使用Opencv与Ros

使用包

深度成像和点云

扫描雷达的深浅

纵深从立体相机

纵深相机

使用包

点云处理

一个不难易行的点云展现节点

从磁盘加载和突显点云图像

将宣布的点云图像保存到磁盘

用PCL方法解释点云图像

指标查找器

第四节
ROS中的移动机器人

移动机器人运动控制

指望状态生成

机器人状态预计

差速驱动转向算法

教导地图坐标

使用包

移动机器人导航

地图制作

路线设计

移动基础客户端示例

修改导航包

使用包

第陆节 ROS中的机器人

初级控制

一维,棱镜 – 联合机器人模型

演示地点控制器

以身作则速度控制器

示例力控制器

机器人臂的轨迹音讯用于7-Dof臂的轨道插补动作服务器

使用包

机器人臂运动学

正向运动学

反向运动学

使用包

手臂运动安排

笛Carl运动设计

一路空间规划动态规划

笛Carl运动动作服务器

使用Baxter模拟器进行臂控制

运行百特模拟器

Buck斯特联合会议难点

百特的夹爪

头盘控制

指挥Buck斯特接头

利用ROS联合轨迹控制器

一路空间记录和广播节点

Buck斯特运动学

百特笛Carl移动

使用包

对象抓取包

对象抓取代码组织

指标操作查询服务

通用抓爪服务

指标抓取动作服务器

演示对象抓取操作客户端

使用包

第伍节
系统融为一炉和高层管理

依照感知的主宰


外部相机校准

汇总感知和控制


移步决定


移动机器人模型

活动决定

使用包

结论


发表评论

电子邮件地址不会被公开。 必填项已用*标注