机器人

机械臂的运动规划

家住魔仙堡 提交于 2019-11-27 08:14:05
如果你想要让机器人能帮你拿瓶子、做饭、收拾屋子等,就必须赋予机器人快速生成无碰撞、最优运动轨迹的能力,这就需要靠运动规划了。有人觉得运动规划已经很成熟了,无需再研究,但实际上,机械臂运动规划非常难…… 如 果你想要让机器人能帮你拿瓶子、做饭、收拾屋子等,就必须赋予机器人快速生成无碰撞、最优运动轨迹的能力,这就需要靠运动规划了。有人觉得运动规划已经很 成熟了,无需再研究,但实际上,机械臂运动规划非常难,之所以这么难,主要是因为规划问题的维度太高(具体后面分析),目前暂无兼顾实时性与最优性的规划 算法。 什么是运动规划(Motion Planning) 在上面四张图片中,左上角是机器人在抓取桌上的东西,这是我们实验室之前一个博士师兄的课题,主要就是机械臂通过轨迹规划抓取识别到的物体而不碰到 障碍物。右上角是蛋白质折叠过程,使用的是我们之后会提到的算法去规划它空间变化。左下角是《帝国时代2》的场景,我们在玩这类游戏的时候只需要点击一个 目标点,游戏人物就会自行找到可行的路径。最后一个是我们之前做过的一个机器人导航项目,通过激光雷达和算法机器人可在室内找到路径。从这四张图片我们可 以从中给运动规划得出一个定义: 在给定环境中,指定机器人起点与终点,计算出连接起点与终点,并满足一定约束条件(如避障)的轨迹。 从数学角度上看,移动机器人的路径规划( Path Planning

AMCL原理

一曲冷凌霜 提交于 2019-11-27 08:07:45
1 粒子滤波和蒙特卡洛 蒙特卡洛:是一种思想或方法。举例:一个矩形里面有个不规则形状,怎么计算不规则形状的面积?不好算。但我们可以近似。拿一堆豆子,均匀的撒在矩形上,然后统计不规则形状里的豆子的个数和剩余地方的豆子个数。矩形面积知道的呀,所以就通过估计得到了不规则形状的面积。拿机器人定位来讲,它处在地图中的任何一个位置都有可能,这种情况我们怎么表达一个位置的置信度呢?我们也使用粒子,哪里的粒子多,就代表机器人在哪里的可能性高。 粒子滤波:粒子数代表某个东西的可能性高低。通过某种评价方法(评价这个东西的可能性),改变粒子的分布情况。比如在机器人定位中,某个粒子A,我觉得这个粒子在这个坐标(比如这个坐标就属于之前说的“这个东西”)的可能性很高,那么我给他打高分。下次重新安排所有的粒子的位置的时候,就在这个位置附近多安排一些。这样多来几轮,粒子就都集中到可能性高的位置去了。 2 重要性采样 就像转盘抽奖一样,原本分数高(我们给它打分)的粒子,它在转盘上对应的面积就大。原本有100个粒子,那下次我就转100次,转到什么就取个对应的粒子。这样多重复几次,仍然是100个粒子,但是分数高的粒子越来越多了,它们代表的东西(比如位姿)几乎是一样的。 3 机器人绑架 举例,机器人突然被抱走,放到了另外一个地方。类似这种情况。 4 自适应蒙特卡洛 自适应体现在: 1解决了机器人绑架问题

关于智能机器对话

浪尽此生 提交于 2019-11-27 07:46:17
1.之前webAPI用科大讯飞语音合成,AIUI语音识别,图灵机器人智能反应 2.现在开始离线版本,打算改写科大讯飞安卓sdk实现多媒体声音的识别与合成 3.智能分析与对话涉及到技术 seq2seq lucene hanlp NLP 自然语言处理 集束搜索beam search和贪心搜索greedy search https://blog.csdn.net/qq_16234613/article/details/83012046 机器人 www.shareditor.com/blogshow/?blogId=64 来源: https://www.cnblogs.com/jiexing/p/11351633.html

智能机器人问答小程序(socket和threading的连用)

▼魔方 西西 提交于 2019-11-27 07:05:20
智能问答机器人 问题描述 在服务器端定义一组问题和答案以列表存储,10个以上,key为问题,value为标准回答,例如:[{‘你好’:’你好’}, {‘我爱你’:‘我也爱你‘}...],当客户端输入语句,服务器端根据语句中每个单词在所有key中出现频率最高的key的value为答案,返回给客户,实现智能问答。 方法思路 1.服务器端设定固定的ip、端口号、并发数量(即最多几个客户端一起访问) 2.服务器启动的主程序(多线程并发同步),等待客户端的访问,启动独立线程,处理每一次的用户请求。 3.服务器端的独立线程,根据客户端输入的问题,返回一个答案。 4.客户端连接服务器的ip和端口,输入问题,等待解答 代码示例 服务器端 class RobortServer(): def __init__(self,ip = '10.0.14.45',port = 8090,connectSize = 100): ''' :param port: 服务器端口号 :param connectSize: 服务器默认的并发数量 ''' self.__ip = ip self.__port = port self.__connerctSize = connectSize pass def startServer(self): ''' 服务器启动的主程序(多线程) :return: ''' server =

移动机器人agv

一个人想着一个人 提交于 2019-11-27 05:41:21
今天我们来聊聊移动机器人领域的现有一些车型的应用,以及幻想一下未来有趣的一些应用场景吧,仅仅是个人一些狭隘的见解。agv(Automatic Guided Vehicle),又称自动导引小车,依靠动力系统自动的完成行走,转弯,举升,牵引等动作,而不要人为操作,从而达到减少人力的作用。agv现在运用较为广泛的场景有:电商、工厂、仓库、救援等。agv的应用可以提高工作效率、降低人工成本、节省存储空间、减小误差率、提高自动化与标准化、减少人工危险性工作。 移动机器人跟大家想象中的那种可以蹦蹦跳跳的,进行灵活关节运动的人工智能机器人不一样,移动机器人主要是满足自动搬运和移动的需求。机械手主要是进行精准的目标物的抓取,和移动机器人分属于不同的领域,就像脚和手的区别。现在在很多应用场景中,为了实现更高程度的自动化,通常会将移动机器人和机械手结合起来使用。 简单说一下我了解或者接触到的几种不同类型的移动机器人,也是目前市场上的几款比较主流的移动机器人,最早的应该是从磁导航机器人说起,第一种是磁导航agv,顾名思义,就是需要铺设磁条作为运行轨道,以及利用磁钉进行定位,此款agv的优势是负载较大,定位精准,但是需要对磁条进行维护,后期场景的变更或扩充会比较麻烦。激光导航,利用激光和反射板进行定位,此款agv的价格会比较高,而且对环境的要求也比较高。自然轮廓导航,根据扫描的特征点匹配进行定位

解密历途机器人之机器视觉

隐身守侯 提交于 2019-11-27 05:31:36
历途高楼外墙清洗机器人到底是好在哪里呢?在即将推向市场的日子里小编逐渐给大家进行解密。 话说30年前就有前辈提出来自动清洗高楼的概念,无数科技从业者日夜探索,为何最近几年才迎来突破,今天我们先从AI分析一下,到这里如果您是专业AI人员又有自己非常独特的见解可以不必往下看了,因为AI本来有一部分就是黑盒子,仁者见仁的事儿。 高空作业,在人体工程学方面来讲首先就是一个不太可控的工作、也是不太符合人类的生存条件的工作,这也就不难理解众多从业者做科研30年了。以前的技术思路中遥控器控制占据优势地位,但在百米高空,人眼很难分辨出来三维信息,这样就使遥控器无法指导机械工作,多年来没有太大的突破也就顺理成章了。 机器视觉的逐渐成熟为高楼外墙清洗机器人的成功提供了非常重要的先决条件,历途在项目研发之初就将机器视觉做为机器人的眼睛放在了最重要的位置,看得清看得准是机器人能往下进行的最主要的技术之一。 历途机器视觉Team用了3年时间做了很多工作,下面和大家分享一点我们的技术路线。 下面这张贴图是我们的技术做的IMU算法的汇报: 依托于视觉SLAM的遍历路径示例: 基于若干这样等技术,历途让机器人的眼睛看得见,看得清。今天就先和大家分享到这里,想知道更多关于历途机器人的技术解密,请大家继续关注历途机器人。 来源: https://blog.51cto.com/14277609/2429191

99%的人都不知道,女孩子学编程居然有这么多好处!

旧街凉风 提交于 2019-11-26 22:27:11
不知道大家有没有看 前阵子的《最强大脑之燃烧吧,大脑》 里面有 一位被保送清华大学的特殊女孩。 一亮相就惊艳全场 不仅颜值高到爆表 关键是还有才 六项机器人国家专利,直接保送清华。 她就是1997年出生,今年刚刚20岁的马艺妮。 在众多人的印象当中,90后属于没钱、没事干、没追求的一代,但是马艺妮不一样,她在无意中看到师兄们在研究“球型手”机器人,当时她感受到了有一腔热血在沸腾,随后便深深地迷上了机器人,机器人也给她带来了丰厚的收获。 大家在惊叹学习机器人 可以升学加分的同时 也在惊讶一个小小的女生 在机器人研究方面有如此成就 前几日,无意中听到一位家长说起,自己家的孩子是个女生,对机器人不感兴趣也学不来。 很多家长会给自己家的女孩报名唱歌、跳舞以及绘画等这些兴趣班,却很少听说报一个科技类的课程。 确实,说起编程,机器人,大家都有自己固有的印象,认为男孩子在这方面才是最擅长的。 无论国内还是国外,如果冒出一个“女程序员”,女性工程师,大家都会觉得很惊奇。 但, 女孩子真的不适合学习编程吗? 其实编程界的女程员很厉害的 在这里先给大家介绍几位超级牛的女性程序员。 (女性杰出程序员图鉴) 这6位女程序员,既有 图灵奖获得者 ,又有 计算机博士 ,还有 科技公司CEO 。它们所取得的成就,并不次于男程序员。这要归功于编程训练带给女孩子们的好处。 去年年底的维密大秀 KK强势回归

用Python让Raspberry Pi“动”起来

若如初见. 提交于 2019-11-26 22:09:53
【编者按】本文是来自奥松机器人社区的投稿,作者为小强之工, 真名贝振权,无线电、电子、嵌入式爱好者。 前 段时间,接触了一款在开源硬件界被称为是“人气之王”的树莓派(Raspberry Pi)袖珍计算机,功能强大的她拥有一颗SOC,集CPU、GPU、 DSP和SDRAM为一体,以SD卡为内存硬盘,拥有网卡、USB口(可以直接连接键盘、鼠标、U盘等外设)、同时具备视频、音频模拟输出以及HDMI高 清输出的能力,在外部接口上还具备了一般计算机设备不具有的GPIO、SPI、I2C、UART等硬件配置,为我们的创新机器人制作提供硬件条件。切入正 题,用Python让Raspberry Pi动起来,在这个醒目的标题中可以看出我这个制作的主题就是利用Raspberry Pi的硬件和 Python语言来完成一个机器人制作,那下面就听我娓娓到来吧! 硬件搭建篇 在 这次制作中,我选择了一款AS-4WD铝合金的小车平台,以小车平台为基础,在上面添加了7寸高清液晶显示器、无线键盘、蓝牙模块以及电机驱动器等配件, 如图1是罗列制作机器人所用的物料。整个树莓派的小车系统分两步来搭建,首先是搭建树莓派的计算机系统,虽然是一个袖珍的计算机,但是“麻雀虽小,五脏俱 全”,除去树莓派的主板外,还需准备一套标准通用的USB键盘鼠标,一个显示器(在本文描述的是一个用于车载监控设备的7寸显示器,通过RCA接口相 连)

钉钉群机器人发送消息

冷暖自知 提交于 2019-11-26 21:29:44
1 添加淘宝依赖 <dependency> <groupId>taobao-sdk-java</groupId> <artifactId>taobao-sdk-java-auto</artifactId> <version>1.0</version> </dependency> 若添加依赖有问题,可参考 Maven使用第三方Jar文件 <dependency> <groupId>taobao-sdk-java</groupId> <artifactId>taobao-sdk-java-auto</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/lib/taobao-sdk-java-auto-1.0.jar</systemPath> </dependency> 2 发送Markdown格式消息 public class MarkdownTest { public void sendMessage() throws Exception { String WEBHOOK_TOKEN = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxx"; String DING = ""; String MARK_DOWN

[LuoGu] P3957 跳房子

ぃ、小莉子 提交于 2019-11-26 20:54:07
\(\color{red}{\mathcal{Description}}\) 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 \(n\) 个格子,这些格子都在同一条直线上。每个格子内有一个数字(整数),表示到达这个 格子能得到的分数。玩家第一次从起点开始向右跳,跳到起点右侧的一个格子内。第二次再从当前位置继续向右跳,依此类推。规则规定: 玩家每次都必须跳到当前位置右侧的一个格子内。玩家可以在任意时刻结束游戏,获得的分数为曾经到达过的格子中的数字之和。 现在小 RR 研发了一款弹跳机器人来参加这个游戏。但是这个机器人有一个非常严重的缺陷,它每次向右弹跳的距离只能为固定的 \(d\) 。小 RR 希望改进他的机器人,如果他花 \(g\) 个金币改进他的机器人,那么他的机器人灵活性就能增加 \(g\) ,但是需要注意的是,每次弹跳的距离至少为 \(1\) 。具体而言,当 \(g<d\) 时,他的机器人每次可以选择向右弹跳的距离为 \(d-g\) , \(d-g+1\) , \(d-g+2\) ,…, \(d+g-2\) , \(d+g-1\) , \(d+g\) ;否则(当 \(g \geq d\) 时),他的机器人每次可以选择向右弹跳的距离为 \(1\) , \(2\) , \(3\) ,…,