机器人

机器人的运动范围

旧时模样 提交于 2020-01-25 01:22:00
原题目: 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? 题目分析: 1.从(0,0)开始走,每成功走一步标记当前位置为true,然后从当前位置往四个方向探索, 返回1 + 4 个方向的探索值之和。 2.探索时,判断当前节点是否可达的标准: 1)当前节点在矩阵内; 2)当前节点未被访问过; 3)当前节点满足limit限制; 代码实现: public class Solution { public int movingCount(int threshold, int rows, int cols) { boolean[] visited=new boolean[rows*cols]; return movingCountCore(threshold, rows, cols, 0,0,visited); } private int movingCountCore(int threshold, int rows, int cols, int row,int col,boolean[]

‘超越智商’和‘机器人叛乱’

北慕城南 提交于 2020-01-24 23:31:00
超越智商与机器人叛乱 ‘智商’源自智力测试,的出的值是一个经过综合换算的商数,用来评估一个人的智力,这里先不管‘智商’这个概念是否严谨,是否真的能反映一个人的智力【事实证明,一个人的智力水平不可能用一个商数来衡量,因为智力的各个方面之间是‘不可换算’的。】 这里先不妨假设‘智商’这个概念是合理的,是可以衡量人的智力的,不过即使如此,‘智商’能做到的仍然是有限的,智商主要衡量人的记忆力,计算能力。读者不妨想象一下,高中的主要课程,几乎都围绕着计算和记忆,除此之外,学生不会干别的事,单从‘智商’方面来讲,中国的高分考生,名牌大学毕业生,美国MBA硕士等确实是世界领先的,他们的计算能力和记忆力是很多人不可及的。 不过高超的‘智商’并不能帮助一个人做出合理决策,这也是有着充分的事实证明的,比如说前几年的股市崩盘,很多人都配得倾家荡产,有的人债台高筑,最后被逼的走投无路,跳楼自杀。而无数的负债者中,肯定不乏高智商的中产阶级群体,也就是那些接受过高等教育,在记忆力和计算能力都达标的人【至少比没上过学的人强】;还有抢购食盐事件,出国购买马桶事件,都少不了高智商中产阶级的身影。 为什么高智商的中产阶级群体屡屡犯错,甚至不如低智商的没上过学的‘土包子’;中国也有俗语‘读书读的太多,读傻了;社会上也盛行‘读书无用论’;这些都好像在嘲讽智力,看了这些话,一个人可能认为学习读书是一个人变傻的最佳途径

657. 机器人能否返回原点----------LeetCode(java实现)

我们两清 提交于 2020-01-24 07:33:46
解题思路: 给定的字符串中字符L和字符R,字符U和字符D的个数分别相等,则可以在 (0, 0) 处结束。 class Solution { public boolean judgeCircle(String moves) { int len=moves.length(); int left=0,right=0,up=0,down=0; for(int i=0;i<len;++i){ if(moves.charAt(i)=='U'){ up++; } else if(moves.charAt(i)=='D'){ down++; } else if(moves.charAt(i)=='L'){ left++; } else{ right++; } } if(left==right&&up==down){ return true; } return false; } } 来源: CSDN 作者: 我就是个渴望成长的小菜鸡 链接: https://blog.csdn.net/junjunjiao0911/article/details/103805419

URDF机器人建模第一天

不打扰是莪最后的温柔 提交于 2020-01-23 19:43:23
URDF文件是机器人模型描述格式,一个完整的机器人模型是由一系列link和joint组成。 建模过程: 创建机器人功能包mbot_description,以及依赖文件urdf和xacro, ~/catkin_ws/src$ catkin_create_pkg mbot_description urdf xacro cd ~/catkin_ws/ catkin_make #编译 source devel/setup.bash #设置环境变量 创建新文件夹: urdf:存放机器人模型的URDF文件或xacro文件; config:保存rviz配置文件;并在rviz文件夹下放置rviz的配置文件mbot_urdf.rviz; launch:保存相关启动文件; meshes:放置URDF中引用的模型渲染文件。 在mbot_base.urdf文件中使用一系列link和joint对机器人外形进行描述,依次加入车体、车轮、激光雷达、kinect等部件。 <?xml version="1.0" ?> <robot name="mbot_base"> <link name="base_link"> <visual> <origin xyz=" 0 0 0" rpy="0 0 0" /> <geometry> <cylinder length="0.16" radius="0.20"/> <

自主移动机器人同时定位与地图创建(SLAM)方法概述

孤街醉人 提交于 2020-01-23 16:29:24
1.引言: 机器人的研究越来越多的得到关注和投入,随着计算机技术和人工智能的发展,智能自主移动机器人成为机器人领域的一个重要研究方向和研究热点。移动机器人的定位和地图创建是自主移动机器人领域的热点研究问题。对于已知环境中的机器人自主定位和已知机器人位置的地图创建已经有了一些实用的解决方法。然而在很多环境中机器人不能利用全局定位系统进行定位,而且事先获取机器人工作环境的地图很困难,甚至是不可能的。这时机器人需要在自身位置不确定的条件下,在完全未知环境中创建地图,同时利用地图进行自主定位和导航。这就是移动机器人的同时定位与地图创建(SLAM) 问题,最先是由SmithSelf 和Cheeseman在1988年提出来的,被认为是实现真正全自主移动机器人的关键。 SLAM问题可以描述为:机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和传感器数据进行自身定位,同时建造增量式地图。 在SLAM中,机器人利用自身携带的传感器识别未知环境中的特征标志,然后根据机器人与特征标志之间的相对位置和里程计的读数估计机器人和特征标志的全局坐标。这种在线的定位与地图创建需要保持机器人与特征标志之间的详细信息。近几年来,SLAM的研究取得了很大的进展,并已应用于各种不同的环境,如:室内环境、水下、室外环境。 2.SLAM的关键性问题 2.1地图的表示方式 目前各国研究者已经提出了多种表示法

导航-1

偶尔善良 提交于 2020-01-23 08:46:17
To add navigation to a robot, we need to launch 3 nodes: map_server: to provide the static map {“*.yaml” & “*.pgm”}, against which the robot will localize and plan. amcl: to localize the robot against the static map. move_base: to handle global planning and local control for the robot. amcl 是移动机器人二维环境下的概率定位系统,它实现了自适应(或 kdl 采样)的 蒙特卡洛定位 方法,其中针对已有的地图使用 粒子滤波器 跟踪一个机器人的姿态。 move_base 提供了 ROS 导航的配置,运行,交互接口,主要包括两个部分:  (1) 全局路径规划:根据给定的目标位置进行总体路径的规划  (2) 局部路径规划:根据附近的障碍物信息进行躲避路线规划 amcl amcl(Adaptive Monte Carlo Localization) —-> pose(position, oriention) <—- map 坐标系 自主定位 全局定位:通过测机器人的绝对未知来定位,定位的精度较高

鸵鸟腿“半兽人”已学会跟踪避障,可自主移动到安全距离

好久不见. 提交于 2020-01-22 21:28:02
靠两足行走,外形和步态都十分接近人类,能运送重达40磅的包裹,可自主上下楼梯,自动避障和保持运动平衡,这就是大家熟悉的双足机器人Digit 。 先进的移动性使Digit能够导航楼梯,障碍物以及日常生活中多种地形。 近日,该研发团队Agility Robotics在YouTube上发布了一段名为“Digit v2: Dynamic Obstacle Avoidance”的视频,工程师已经教会Digit跟踪人和其他运动物体的运动并移动到安全距离! 2019年初Agility Robotics推出了Digit机器人的第一个版本:它基于早期的两足式Cassie机器人的设计,但与Cassie的不同之处在于它具有躯干和手臂,这使它可以将盒子放在手中。 该公司计划最早在明年开始销售用于工业和其他领域的机器人,但在此之前,必须使机器人适应与人合作。 十月,工程师展示了具有更稳定设计的Digit第二版,但是当时的机器人无法独立避开障碍物。 现在,开发人员已教会机器人跟踪障碍物,甚至是动态障碍物,并进行移动以避免碰撞。 在演示过程中,机器人跟踪了附近工程师的动作,并退至安全距离。 此外,开发人员还演示了使用电缆探测系统的准确性,当电缆开始向机器人移动,尽管电缆的厚度很小,但是机器人注意到了它,并且还移动了一定距离。 此外,我们可以看到机器人可以应对机械障碍。 例如,如果人开始用手推开它

机器人的运动范围

老子叫甜甜 提交于 2020-01-22 09:37:01
题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子? 简单深搜即可,直接遍历更快一点,锻炼一下用java写深搜,注意java中的成员变量!!! public class Solution { private int sum = 0 ; private int N , M ; private int vis [ ] [ ] = new int [ 100 ] [ 100 ] ; private int dirx [ ] = { 0 , 0 , 1 , - 1 } ; private int diry [ ] = { 1 , - 1 , 0 , 0 } ; public int movingCount ( int threshold , int rows , int cols ) { N = rows ; M = cols ; dfs ( threshold , 0 , 0 ) ; return sum ; } public boolean judge ( int threshold ,

Google Wave API开发概览

 ̄綄美尐妖づ 提交于 2020-01-21 20:22:41
Google Wave已经公测一个月了,再全世界范围内都掀起了一股索要Google Wave的热潮。做为一个有思想的程序员,除了为Google Wave自身的新特性感动兴奋和赞叹以外, 我们还好奇Google Wave 提供的API能干些什么。   说一句题外话:Google Wave计划引入类似IPhone的应用商店(AppStore)的模式,提高开发着的积极性,为开发者带来收入。嘿嘿,所以无论从兴趣上,还是从现实上,研究开发Google Wave的第三方应用都是有价值的! o(∩_∩)o   如果您没有接触过Google Wave, 流牛木马 在这里推荐您先阅读这两个网页,再来看 流牛木马 的开发讲解。 关于Google Wave是什么: Google Wave,新Web时代的沟通平台(多图,视频 ) 关于Google Wave能干什么: Google Wave试用体验与Google的野心 如果您已经了解完Google Wave的基础,OK,我们开始吧。 Google Wave API能干什么? 开发机器人(Robots API) 您刚才从上面的文章了解到,Wave是用来多人协作的。在多人协作的工作中,有一些工作是可以交给程序来做的。比如,或许您想在Wave中敲入 : ) 时,机器人可以自动帮你转换成图片 ;在比如, 或许当您想当你编辑完Wave进行保存时