人机智能交互技术(ROS-HRI-人与机器人的智能交互)课程介绍与资料
人机智能交互技术(ROS-HRI-人与机器人的智能交互)课程介绍与资料
这是机器人系统设计与控制技术的后续课程,全部的课程内容包括四门课程(本科),如下:
人机智能交互技术是人机融合的基础,课程介绍多种人机交互技术,包括传统和新兴的,围绕人、机器人和交互软件展开。
比较有趣的案例,如下:
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
4 脑电交互:http://blog.csdn.net/zhangrelay/article/details/50932120
更多内容,可在网络上进行资料检索。本课程侧重两款常用于机器人的传感器,RGB-D摄像头和Leap Motion手势设备。
以三维环境识别感知、人体运动识别、三维手势跟踪为案例进行具体介绍。
课程作业:4次实践报告、1次创新大作业。更多内容稍后补充。
----补充阅读:
open_manipulator:https://github.com/ROBOTIS-GIT/open_manipulator/wiki
使用ROS学习机器人编程的系统方法
特色
- 从零开始学习ROS,不依赖于先前专业知识
- 基于一系列相关的主题,逐步将ROS娓娓道来
- 需要具备C ++的基础知识,但是并不需要编程、机器人、机器视觉、运动学/动力学或软件工程方面的专业知识
- 展示ROS编程技术与Gazebo仿真
- 提供机器人主题的研习,包括运动学、机器视觉、点云处理、地图构建、导航和用户界面(人机接口内容一部分)。
概要
使用ROS学习机器人编程的系统方法通过对简单代码示例以及相应操作理论的详细解释,全面介绍了ROS的基本组件。本书探讨了ROS的组织,如何理解ROS软件包,如何使用ROS工具,如何将现有的ROS软件包纳入新的应用程序,以及如何开发新的机器人和自动化软件包。它还通过准备读者更好地了解现有的在线文档来促进继续教育。
这本书分为六部分。
1. 首先介绍ROS基础,包括编写ROS节点和ROS工具。消息,类和服务器也被覆盖。
2. 本书的第二部分是ROS的仿真和可视化,包括坐标变换。
3. 本书的下一部分讨论了ROS中的感知处理。它包括在ROS中使用摄像头,深度成像和点云以及点云处理。
4. 本书第四部分介绍了ROS中的移动机器人控制和导航。
5. 本书的第五部分包含机器人手臂在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代码示例的版本和包一致)。这些脚本还安装了各种有用的工具。
在源码中可以看到具体的代码使用说明:
例如第一章learning_ros/Part_1/commands_summary_part1:
---------roscore, messages, nodes----------
catkin_make(if problems, do:delete ros_ws/build and ros_ws/devel dirscatkin_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.cppgedit 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_makein a terminal, start a roscore:
roscorein 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 meteropen:
.../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_makerosrun rosclass_minimal_nodes rc_minimal_subscriber
(see behavior w/ and w/o minimal publisher running)rostopic pub -r 1 topic1 std_msgs/Float64 1.23rosnode 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/ExampleMessageopen .../learning_ros/Part_1/example_ros_msg/src/example_ros_message_publisher.cppsave in ...ros_class/example_ros_msg/src/example_ros_message_publisher.cppedit CMakeLists.txt; add line:cs_add_executable(rc_example_ros_message_publisher src/example_ros_message_publisher.cpp)catkin_makerosrun example_ros_msg rc_example_ros_message_publisher (with roscore running)rostopic echo example_topicservices:
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 librariesaction 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_makerosrun example_action_server example_action_server
rosrun example_action_server example_action_clientrosrun example_action_server example_countdown_server
rosrun example_action_server timer_clientParameter 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中的感知和可视化
标记和互动标记在Rviz
在Rviz中显示传感器值
使用包
第三节 在ROS中使用相机处理
投影变换成相机坐标
本机相机校准
立体相机的内在校准
使用Opencv与Ros
使用包
深度成像和点云
扫描雷达的深度
深度从立体相机
深度相机
使用包
点云处理
一个简单的点云显示节点
从磁盘加载和显示点云图像
将发布的点云图像保存到磁盘
用PCL方法解释点云图像
对象查找器
第四节 ROS中的移动机器人
移动机器人运动控制
期望状态生成
机器人状态估计
差速驱动转向算法
指导地图坐标
使用包
移动机器人导航
地图制作
路径规划
移动基础客户端示例
修改导航包
使用包
第五节 ROS中的机器人
低级控制
一维,棱镜 - 联合机器人模型
示例位置控制器
示例速度控制器
示例力控制器
机器人臂的轨迹信息用于7-Dof臂的轨迹插补动作服务器
使用包
机器人臂运动学
正向运动学
反向运动学
使用包
手臂运动规划
笛卡尔运动规划
联合空间规划动态规划
笛卡尔运动动作服务器
使用Baxter模拟器进行臂控制
运行百特模拟器
巴克斯特联合会议题目
百特的夹爪
头盘控制
指挥巴克斯特接头
使用ROS联合轨迹控制器
联合空间记录和播放节点
巴克斯特运动学
百特笛卡尔移动
使用包
对象抓取包
对象抓取代码组织
对象操作查询服务
通用抓爪服务
对象抓取动作服务器
示例对象抓取操作客户端
使用包
第六节 系统集成和高层管理
基于感知的操纵
外部相机校准
综合感知和操纵
移动操纵
移动机器人模型
移动操纵
使用包
结论
----
人机智能交互技术(ROS-HRI-人与机器人的智能交互)课程介绍与资料相关推荐
- [献给用智能ABC输入法的人]永恒的经典 智能ABC输入法技巧大集合.txt
.直接输入英文 如果在智能输入法中输入英文,只要在输入的英文字母前先输入"v"即可,如输入"teacher",只需键入"vteacher"即 ...
- 人机智能交互技术教学进度表(2017-2018-1)含测试 机器人方向本科限选课程
课程在迭代过程中越来越--放到博客分享一下. 每周 2 学时 学分 3 学分 讲课 24 学时 实践 24 学时 机动 学时 总共 48 学时 考核形式 考查 1 教 学 ...
- 原地不动 福玛特机器人_智能扫地机器人一直在原地打转是怎么回事以及解决办法...
最近有购买扫地机机器人的同学向我咨询扫地机器人一直在原地打转是怎么回事?我根据自己的扫地机器人的知识从几个方面来告诉大家您家的扫地机器人为什么罢工偷懒啦. 这里是小瓦扫地机器人的结构图,其他扫地机器人 ...
- 人机智能交互技术(ROS)实践作业模版与说明
人机智能交互技术实践作业模版与说明,具体包括4个专项实践和1个综合实践,综合实践需要做PPT汇报. 报告内容包括流程图,原理与方案,实践过程和结果等. 实践一: 命令行或图形化人机交互实践 ---- ...
- 六部工坊ros启智机器人定点导航技术_【展品抢鲜看】程天科技外骨骼机器人亮相峰会,让每个人享受机器人的服务!...
以"机器智联,赋能万物"为主题第六届中国机器人峰会暨智能经济人才峰会将于5月8日至10日在浙江宁波余姚举行,为凸显峰会"国际化.高端化.专业化.实效化的办会理念" ...
- 法兰克弧焊机器人_FANUC机器人智能弧焊应用
弧焊就是通过电弧将两种或两种以上材料达到原子之间的永久性连接的工艺过程,广泛用于各行各业中.完成这一工艺过程,需要焊接电流回路和焊接轨迹.在机器人智能弧焊过程中,焊接电流回路由焊机和机器人腕部的焊枪来 ...
- 机器人车间气管_探访东莞智能车间:像管“人”一样管“机器”
原标题:探访东莞智能车间:像管"人"一样管"机器" 随着智能制造的曝光度越来越高,不少人可能形成了固定的思维模式,以为智能制造就是简单的机器换人.不过,记者跟随 ...
- 人与机器人的交互理论及其前景
来源:人机认知与实验室 摘要: 移动机器人的人机交互正处于早期阶段.大部分与机器人相关的用户交互都被数控能力所限制,向用户提供的最普遍的界面是以自动化平台提供的视频和对机器人的一定程度上的路径指挥.对 ...
- 机器人学习--智能移动机器人的有关技术演讲(浙大-熊蓉教授-2021年)
链接都是链接http://www.imrobotic.com/news/detail/27452 参考:http://www.imrobotic.com/news/detail/27452 浙江大学熊 ...
最新文章
- 爬虫基础-request的一些基础属性
- 数据库连接工具datagrip较安全 代替Aqua Data Studio 6.5
- flappy bird游戏源代码揭秘和下载后续---移植到android真机上
- hdu 5167 bfs
- ffmpeg API 笔记:使用libavcodec/libavformat/libswscale ffmpeg例子
- 在RHEL5.4上做YUM
- Linux 下的网络配置
- linuc和python常用命令是一样的么_Linux常用命令大全(非常全!!!)(2)|简明python教程|python入门|python教程...
- iOS开发之Masonry框架-使用方法须知
- wordpress-Sakurairo美化主题模板
- Opencv--CalcOpticalFlowPyrLK实现的光流法理解
- 云小课 | 华为云KYON:网段零修改上云,简单又好用
- 阶乘末尾蓝桥杯java_Java实现第九届蓝桥杯阶乘位数
- 2025年中国信息消费总额将达12万亿元
- ps42k20服务器出现问题_天高客户端访问软件出现“服务器操作系统原因”问题解决方法...
- Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文翻译
- RSS简述 及 Java构造RSS接口
- RAID5服务器磁盘阵列,两块盘坏了数据恢复
- 自动化办公 | 快速从Excel中提取图片并匹配命名
- Leetcode 变位词组
热门文章
- 资源分享:oracle 数据库软件下载(持续更新,有需要请留言!)
- 谷歌地球也疯狂 五款Google Earth游戏
- 你应该考这些证书,特别是在校生
- python自动化开发实战实战2:用列表与文件创建购物系统
- 思维导图 Thebrain 用在这5大热门行业,工作效率提升220%
- 20221109使用SubtitleEdit-3.6.8-将蓝光DVD中的图形格式的字幕SUP文件通过OCR识别为SRT
- consumer editions和business editions的区别
- python高手养成百家号_拥有这件神器,菜鸟也可以成为数据分析大师(连载二)...
- word2007添加参考文献
- GPS时间以及周内秒