带机械臂机器人的顶层布局

机械臂

  • 精度尽可能高。
  • 处在“空闲”状态时。1)尽可能不耗电。2)让放在末端关节上的深度相机朝向正前方。3)低高度,不致让机器人因机械臂太高而显得很高。
  • 直径不要大。不要让以雷达为原点的视角超过60度。
  • 为支持拖斗,有一定的后转最大角度。

深度相机

  • 只要深度、以及D2C(深度、彩色对齐)时,最小深度都尽可能小。至于最大深度,或许一米就够了。
  • “空闲”状态时,尽可能不耗电。(手头这个Gemini有近115mA)

 

图1 布局

设想的布局,从前到后,机械臂、雷达、拖斗。深度相机第一位置是放在机械臂末端关节的上面。

图2 深度相放在机械臂末端关节上面

对深度相机,还有一种方法是不放在机械臂上,而是直接固定在底盘,如图1中的(2)位置。对这种方式,因为深度相机有盲点,机械臂又不能离目标物太远,相机得放在机械臂后。这意味着深度相机需要能上下伸缩,像用上微型电动伸缩杆。总的来说,个人不建议放在这位置。

对相机、雷达位置,如果无法避免深度相机和雷达出现y偏移,那要保证尽可能小,像不要超过2厘米。原因下面会说。

图3 打开电饭煲

为直观,以机器人要打开图3中电饭煲为例子,操作是按下“开始/取消”按钮,看深度相机、机械臂需具备什么功能。在开始操作前,已建出室内地图,并添加一个位置:厨房。电饭煲放在“厨房”这个位置。

  1. 导航。机器人从室内任一位置移动到“厨房”。在这过程中机械臂保持“空闲”状态。深度相机可能需要工作,是工作也只须接收深度。导航结束后,机器人离电饭煲可能就半米内。
  2. 定位目标物。目标物指的是机械臂要操作的对象,对这个电饭煲,就是要找到“开始/取消”按钮。此时软件会启动一个叫“开始电饭煲”小程序。它打开深度相机,工作在D2C模式。通过图像识别找到电饭煲,进一步找到“开始/取消”。过程中可能要移动机器人。
  3. 伸缩机械臂,操作目标物。对这个电饭煲,是按下“开始/取消”按钮。在这过程中,深度相机继续工作在D2C,一方面指示机械臂要到达哪个笛卡尔坐标,二是给机器人深度反馈,弥补机械臂的精度不足。

 

接下说说在不同阶段,对深度相机、机械臂要求。

 

一、功能要求

1.1 导航

对没有机械臂机器人,已实现这过程。演示视频:安装驱动、建图、去噪、添加位置,声控导航

深度相机。深度相机要朝向正前方。如果需要工作的话,只须深度模式,为什么?——机械臂位在雷达正前方,它会给雷达造成一定角度的盲区。这时就要靠深度相机接收前方障碍物深度数据,弥补掉角度盲区。深度相机视角毕竟有限,机械臂半径不能太大,像不能让以雷达为原点的视角超过60度。

为直观查看弥补角度,对雷达、相机原点的x、y放置偏移有一定要求。只有x偏移时,有个量角器就能知道是否给弥补了。当出现y偏移时,问题有点复杂。

图4 雷达、相机存在y偏移时

在图4,雷达和相机y方向上有了偏移,对自已原点到AB直线内障碍物,它们各自有了角度,而且还不好判断大小。为此,只能要求它们在y上尽可能少的偏移。

机械臂。在这过程中机械臂保持“空闲”状态。在这状态,1)尽可能不耗电。2)让放在末端关节上的深度相机朝向正前方。3)低高度,不致让机器人整体因机械臂太高而显得很高。

 

1.2 定位目标物

深度相机。换为工作在D2C模式。软件要用彩色图像进行物体识别,并由像素上深度值得到该物体距离机器人多少米。

机械臂。如果目标物位置不高,相机站在“空闲”状态时机械臂上,就能准确识别了,那不用操作机械臂。如果目标物比较高,像豆浆机顶盖上的按钮,为抬高相机,须要让机械臂向上伸。

 

1.3 伸缩机械臂,操作目标物

深度相机。继续工作在D2C模式。一方面图像识别,指示机械臂要到达哪个笛卡尔坐标,二是给机器人深度反馈,弥补机械臂的精度不足。

机械臂。伸缩机械臂,这里机械臂啥样精度会有较大影响。如何决定各关节值要发多少?——对单机械臂,估计不会moveit中的运动学求逆解,而是用“zx查找表”。对希望的笛卡儿坐标z、x,先根据查找表找到对应的各关节值。机械臂由这各关节值到达大致位置后,借助深度相机,微调,最后实现目标。

 

二、拖斗

想象个场景,指示机器人去荼几拿个苹果到床头。要是一路上都夹着苹果,很可能在哪就掉了。做法是在荼几夹起苹果时,就放到后面拖斗,然后机械臂以着“空闲”状态来到床头。

而且,如果机器人是夹着苹果移动,可能造成放在机械臂顶端的深度相机不是朝向正前方,导致无法弥补雷达盲点,这会影响导航。

机器人夹起苹果,要把苹果放到拖斗,当中机械臂要向后转,这对后转能达到的最大角度会有一定要求。

运水是实用功能,借助拖斗能不能实现。这涉及到怎么把水装进,以及抽出,这个目前还没想出解决方案。

全部评论: 0

    写评论: