AI+智能服务机器人应用基础【学习报告】

  • 前言
    • 欢迎使用 VMware Workstation
      • VMware Workstation创建新的虚拟机
  • AI+智能服务机器人应用基础
    • 项目1、 服务机器人整体认识
    • 项目2、 ROS 机器人操作系统的认识
      • 任务1 创建 ROS 工作空间与功能包
      • 任务2 使用 launch 文件启动节点
        • 调用ROS的小海龟
          • 代码如下:
          • 流程图片:
          • 效果展示:
      • 任务3、 使用话题机制实现节点间通信
        • 三、创建一个话题的步骤
          • 1)创建发布者
          • 2)创建订阅者
      • 任务4、 使用服务机制实现节点间通信
        • 一、 服务的概念
        • 二、 服务通信机制模型及分析
        • 三、创建一个服务的步骤
          • 1)创建服务端(server)
          • 2)创建客户端(client)
          • 3)添加编译选项
          • 4)运行可执行程序

作者:韩海霆
学号:2024060135
班级:2020级应用电子技术A班

前言

欢迎使用 VMware Workstation

你好! 这是基于老师需求下第N+1使用 VMware Workstation虚拟机 搭建乌班图ROS系统。如果你想学习如何使用 VMware Workstation 虚拟机安装并且使用乌班图+ROS, 可以仔细阅读这篇文章,了解一下 我的第N+1次的ROS安装和学习《AI+智能服务机器人应用基础》【个人笔记】的基本知识。

VMware Workstation创建新的虚拟机

VMware Workstation安装和创建新的虚拟机在很多平台有很多博主对 VMware Workstation 安装和创建新的虚拟机的过程简单、不繁琐;同时在博客上也有比较详细的教程,在本文章就推荐个人认为比较好的博客给予大家参考,在这里就不详细描述:

虚拟机VMware下载与安装教程(详细)
虚拟机VMware安装乌班图教程(详细)

过程遇到问题,解决如下:

  1. VMware Workstation密钥问题 :在网上搜VMware Workstation密钥有很多都尝试直至破解成功就行;
  2. 乌班图有三大版本 乌班图版本选择版本 根据个人需求选择各自需要的版本;

AI+智能服务机器人应用基础

项目1、 服务机器人整体认识

随着科学技术的发展,机器人技术和人工智能技术的日益成熟,人们不仅仅希望机器人能够在工厂之中完成固定、重复的劳作,还希望机器人能够机器人能够在日常生活之中为人类提供便利,“服务机器人”的概念出现在我们的视野之中。
服务机器人的认识是学习服务机器人的基础部分,对服务机器人的定义、发展、分类、应用、机械构成、控制方式、编程方式的了解,在应用服务机器人具有重要作用。

(未完成,待更新)


项目2、 ROS 机器人操作系统的认识

ROS (Robot Operating System)即机器人操作系统,是如今最流行的机器人软件架构,它包含了大量工具软件、库代码和约定协议,为机器人研究提供了代码复用的支持将搭建和控制机器人的难度大幅地降低。本项目中,我们将会学习使用ROS机器人操作系统的基本命令,操作PC(个人计算机)通过网络远程登录Castle-X机器人并学习ROS机器人操作系统的核心——“通信机制”。

任务1 创建 ROS 工作空间与功能包

(未完成,待更新)

任务2 使用 launch 文件启动节点

调用ROS的小海龟

代码如下:

启动ROS Master
roscore
启动小海龟仿真
rosrun turtlesim turtlesim_node
启动海龟控制节点
rosrun turtlesim turtle_teleop_key

流程图片:

效果展示:



结论:

  1. launch(文件格式):以一种特殊的XML(标记语言)格式编写,可以同时运行多个nodes(节点)的文件。
  2. 本节没什么难度,傻瓜式跟着操作就行

任务3、 使用话题机制实现节点间通信

本实验主要学习ROS(机器人操作系统)的核心通信机制
话题机制,介绍了话题通信机制的模型和通信流程,并且学习了使用 python语言(面向对象的解释型计算机程序设计语言)编写最基本的发布者和订阅者节点来实现话题通信机制。

三、创建一个话题的步骤

1)创建发布者

-1. 进入自己的工作空间 castle_ws 下的 src 文件 我的工作空间为 hht_ws
-2. 创建新的功能包 这里我的功能包命名为 project_turtorials
-3. 创建 scripts 文件夹并且进入此文件夹
-4. 创建消息发布者 demo0.py 并赋予权限
-5. 在终端输入$ gedit demo0.py,添加代码到新建的 demo0.py(文件名称)

流程展示(附demo0.py代码)

> ②

#### 终端指令
$   cd ~/castle_ws/src
$   catkin_crete_pkg project_tutorials std_msgs rospy roscpp
$   roscd project_tutorials
$   mkdir scripts
$   cd scripts
$   touch talker.py
$   chomd +x demo0.py
# demo0.py 代码内容如下:
#!/usr/bin/env python
#coding:utf-8
# license removed for brevityimport rospy
import time
from geometry_msgs.msg import Twistturn = Truedef std2024060135():global turnrospy.init_node('std2024060135', anonymous=True)turtle_vel_pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)rate = rospy.Rate(1)while not rospy.is_shutdown():vel_msg = Twist()if turn:vel_msg.linear.x = 1.0vel_msg.angular.z = 0.0turn = Falseelse:vel_msg.linear.x = 0.0vel_msg.angular.z = 1*3.14/2turn = Trueturtle_vel_pub.publish(vel_msg)rospy.loginfo("Publish turtle velocity command[%0.2f m/s,%0.2f rad/s]",vel_msg.linear.x, vel_msg.angular.z)rate.sleep()
# while not rospy.is_shutdown():
# vel_msg = Twist()# vel_msg.linear.x = 1
# vel_msg.linear.y = 0
# vel_msg.linear.z = 0
# vel_msg.angular.x = 0
# vel_msg.angular.y = 0
# vel_msg.angular.z = 0# turn = False# time.sleep(0.5)# vel_msg.linear.x = 0
# vel_msg.linear.y = 1
# vel_msg.linear.z = 0
# vel_msg.angular.x = 0
# vel_msg.angular.y = 0
# vel_msg.angular.z = 0# time.sleep(0.5)# turtle_vel_pub.publish(vel_msg)
# rospy.loginfo("Publish turtle velocity command[%0.2f m/s,%0.2f rad/s]",vel_msg.linear.x, vel_msg.linear.y)
# rate.sleep()#while not rospy.is_shutdown():
# vel_msg = Twist()
# vel = Counter()# vel_msg.linear.x = 1# turtle_vel_pub.publish(vel_msg)
# rospy.loginfo("Publish turtle velocity command[%0.2f m/s,%0.2f rad/s]",vel_msg.linear.x, vel_msg.linear.y)# rate.sleep()if __name__ == '__main__':try:std2024060135()except rospy.ROSInterruptException:pass

我的的小结

  1. 这里我是用python代码是因为python没有像C++那样多出很多编译操作和BUG
  2. demo0代码中 >rate = rospy.Rate(1)< 这里Rate是乌龟的运动频率,当我把频率设置为5的时候,小乌龟走出的形状是圆形的
  3. 任务要求小乌龟走的是正方形,我这里定义一个真假值,然后用判断语句去执行相应步骤。在这里我认为还有其他方法,比如可以用for循环让小乌龟执行每一步骤后停止换方向再执行前进等
2)创建订阅者

-1. 进入communication_tutorials/scripts(路径)目录。新建一个终端,输入以下命令
-2. 创建监听器文件并赋予权限。在之前的终端中依次输入以下命令
-3. 在之前的终端输入以下命令,添加下面的代码到新建 demo1.py
流程展示(附代码)

>②
>③

#### 终端指令
$   roscd communication_tutorials/scripts
$   touch demo1.py
$   chmod +x demo1.py
$   gedit demo1.py
# demo1.py 代码内容如下:
#!/usr/bin/env python
#coding:utf-8import rospy
from turtlesim.msg import Posedef poseCallback(msg):rospy.loginfo("Turtle pose: x:%0.6f, y:%0.6f", msg.x, msg.y)def pose_subscriber():rospy.init_node('pose_subscriner', anonymous=True)rospy.Subscriber("/turtle1/pose", Pose, poseCallback)rospy.spin()if __name__ == "__main__":pose_subscriber()

任务4、 使用服务机制实现节点间通信

一、 服务的概念

二、 服务通信机制模型及分析

三、创建一个服务的步骤

1)创建服务端(server)
2)创建客户端(client)

提示:
如何实现一个客户端

  • 初始化ROS节点;
  • 创建一个 Cilent 实例;
  • 发布服务请求数据;
  • 等待 Server 处理之后的应答结果。
#!/usr/bin/env python
import sys
import rospy
from turtlesim.srv import Spawndef turtle_spawn():rospy.init_node('turtle_spawn')#发现 /spawn 服务后创建一个服务客户端,连接名为 /spawn 的 servicerospy.wait_for_service('/spawn')try:add_turtle = rospy.ServiceProxy('/spawn', Spawn)#请求服务调用,输入请求数据response = add_turtle(2.0, 2.0, 0.0, "turtle2")return response.nameexcept rospy.ServiceException, e:print"Service call failed: %s"%eif __name__ == "__main__":#服务端用并显示调用结果print"Spwan turtle successfully [name:%s]"%(turtle_spawn())
3)添加编译选项
4)运行可执行程序

持续更新........

AI+智能服务机器人应用基础【学习报告】相关推荐

  1. AI+智能服务机器人应用基础【实践报告】

    AI+智能服务机器人应用基础 前言 欢迎使用 Markdown编辑器 欢迎使用 VMware Workstation VMware Workstation创建新的虚拟机 AI+智能服务机器人应用基础 ...

  2. AI 智能皮影机器人

    AI 智能皮影机器人 项目演示视频 项目背景 创意来源 皮影戏(Shadow Puppets),又称"影子戏"或"灯影戏",作为我国的第一批世界非物质文化遗产, ...

  3. 智能服务机器人产品及解决方案

    产品概述 随着人工智能(AI)领域技术的不断发展和演进,面向人工智能的领域应用也越来越被更多的企业关注.信迈作为中国领先的创新型软件及信息技术服务商,一直致力于人工智能领域技术的探索和实践. 信迈凭借 ...

  4. 小i智慧学堂进复旦:探讨AI智能服务体系运营与实践

    人工智能的引入可以帮助人们更加专注于高附加值工作,进行决策与创新,从而推动企业业务增长,因此,人工智能与各行业深度融合已是大势所趋.但由于智能服务运营复杂,并且会涉及到一些新的方法和技能,如果不能尽快 ...

  5. 重磅干货!AI智能服务体系搭建与实践培训班11月24-25日上海开课

    如今,单一的智能化产品已经无法满足的市场需求,多元化.全景式的智能服务才是AI未来发展的趋势. 但企业在引入智能服务时 该如何选择适合企业自身需求的智能产品? 企业的AI智能服务体系该如何搭建? 搭建 ...

  6. 计算机实训机器人实验原理是什么,实验报告机器人控制技术基础实验报告.doc...

    实验报告机器人控制技术基础实验报告 华北电力大学 实 验 报 告 | | 实验名称: 机器人控制技术基础 课程名称: 机器人控制技术基础 | | 实 验 人: 成 绩: 18.00秒 指导教师: 实验 ...

  7. 节假日无休?让智能服务机器人替你加班

    是谁,连续72小时没有合眼? 是谁,节假日也一直坚守在岗位上? 是谁,兢兢业业? 是谁,无私奉献? ..... 有没有想过一种可能,这个能从事重复性劳动.不怕苦不怕累的员工,竟然是机器人! 最近一支趣 ...

  8. 最新开源ai智能写作机器人系统源码 电脑版+手机版+搭建教程

    分享一个最新开源版的ai智能写作机器人系统源码,带电脑版和手机版,含详细的搭建教程. 系统功能:可以聊天,写文章,写论文,写代码,写小说,创意策划,做Excel表格,写诗等等,根据上下文语境陪你聊天, ...

  9. 优质的服务+智能+完美的线路=AI智能语音机器人

    什么是AI智能语音系统:全称:AI智能语音外呼电话机器人. 它有很多其他的叫法,说的都是一回事情的.也叫电话机器人,电话外呼机器人AI智能电话机器人,智能电话机器人,AI机器人,话务机器人,电话外呼机 ...

最新文章

  1. 删除SQL数据库中事务日志方法
  2. aix oracle 内存限制,请教 AIX 与 Linux 中,怎样分析Oracle的内存占用?
  3. WEBGL学习【八】模型视图投影矩阵
  4. Struts 2基础入门
  5. MATLAB slider中的数值,在微信小程序中如何使用slider设置数据值
  6. mysql函数(五.流程控制函数)
  7. apache php 工作模式,PHP Apache中两种工作方式区别(CGI模式、Apache 模块DLL)
  8. LLVM每日谈 | 知乎
  9. 基于heartbeat v1配置mysql和httpd的高可用双主模型
  10. Session分三级做处理。
  11. nRF52832 矩阵按键调试 同一列上的按键 任意两个按键 按下 检测不到低电平(电平拉不下来)...
  12. HiTool工具烧录uImage过程
  13. 苹果手机录屏软件_手机录屏软件哪个好 好用的手机录屏软件推荐
  14. 三极管的导通条件总结
  15. INT 10H中断功能详解
  16. 使用ShareSDK实现QQ登录和分享操作
  17. MSI (Message Signaled Interrupts)
  18. 快速部署PHP Web环境(docker nginx php mysql redis)
  19. 一篇文章,教你学会Git
  20. 记录重新安装微软商店过程

热门文章

  1. 电子商城数据库设计思路
  2. Gatsby中怎么使用MDX?
  3. JNI详解---从不懂到理解
  4. Atmel爱特梅尔AT89S52单片机开发实训装置,QY-DPJ12
  5. 【数据库】国土空间规划数据库(全域)_模板空库
  6. Linux高性能服务器架构
  7. 浅谈SEO的优化问题
  8. elasticsearch的linux安装
  9. Android无线调试 Wifi连接ADB不用数据线
  10. Google Maps在英国新增40多处建筑内部导航功能