前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Jetson TK1做一个可以抓取的机器人!

用Jetson TK1做一个可以抓取的机器人!

作者头像
GPUS Lady
发布2018-03-30 16:31:48
1.3K0
发布2018-03-30 16:31:48
举报
文章被收录于专栏:GPUS开发者GPUS开发者

BunnyBot是一种基于ROS的机器人平台,可以使用其内置的抓取手臂和视觉系统来执行有用的任务!

目标

- 这个机器人可以自主导航,可以躲避障碍物,可以通过一个手臂夹取物品。

- 除了最初的导航阶段,不需要远程遥控或者手工输入。

- 多功能,可执行一些简单的任务

许可证

除非特定声明,代码和设计文件均基于BSD授权协议。(例如apriltags nodelet是采用的GPL协议)。

总体设计

机器人的核心功能是将一个标的物从一个地方移动到另外一个地方。这个标的物可以是一个需要传输的物体,也可以是一个工具(比如一个清洁垫或者一个粉刷工具)。机器人必须包含这种基础硬件可以实现这个功能。

机构设计

我使用的是单自由度的手臂和简单的平面抓手。相比采用更复杂的手臂/夹持器,这个有几个优点:

- 可以相当便宜使用3D打印机制作

- 不需要复杂逆运动学

- 减少了从关节间隙,更高的承载能力,更低的重量弯曲

深度相机被安装在背面,以尽量减少其检测盲区。其结果,机器人的主体被设计成楔形,从而当手臂低于相机的时候,有一个更通畅的视野。机器人的右侧有一个三角形镶嵌图案,这是一定程度上抵消由于手臂在该侧增加的重量。

视频内容

硬件

我已经经过了几个硬件的迭代,目前确认的配置如下:

- neato xv11 LIDAR 用于本地化

- intel realsense R200 深度传感器。这提供了物体检测的深度流以及一个1080的RGB流来检测基准

- Nvidia Jetson TK1 这是计算的主体。这个板子支持CUDA,能够比较轻易地处理计算视觉。

- Kobuki base 机器人平台,这是和Turlebot同样的base。这个base预装ROS,可以通过一个USB接口可以提供陀螺仪、里程计及其他传感器。

- Arduino uno 是驱动手臂/抓取器。虽然技术上TK1有GPIO,但Linux不是一个实时操作系统,并没有真正适合与PWM驱动电机。

- Actuonix/Fergelli P16 150mm 22:1 线性致动器以驱动手臂

- Polulu VNH5019 马达驱动器来驱动线性致动器

- MXL AC-404 麦克风。我用这个主要是因为ROS网站推荐。

软件

我使用ROS作为软件框架。这个项目大部分的困难都通过各种ROS包来解决。下面是我用的ROS :

gmapping - 使用SLAM来建立一个环境地图。

robot localization, AMCL - 通过LIDAR数据、车轮里程计和陀螺仪读数等本地化地图。

ROS navigation - 规划路径到地图上的路标

RTAB-map obstacle detection - 侦测障碍物,并绕开它。

pi_trees - 利用决策树建立高层次决策。

pocket sphinx - 语音识别

还有其他的。可以登录github 查看更多。

有些任务是没有现成的包,所有有些情况我需要自己写ROS包:

gpu_robot_vision - 使用TK1的 GPU去执行一个简单的CV任务,包含了图像识别、黑白/彩色转换、 缩放和降噪滤波器等

apriltags_nodelet - 一个nodelet 用于输出一个来自矫正和降噪的RGB流的基准标识列表 april_tf -将这些标识作为输入,同时输出在地图框架中转换的同样的标识。通过将其写入到文件坚持观察,并且输出一个目标为ROS导航姿势来规划到标记的路径

april_planner - 发出精确的运动,基于所检测的标记物的相对移动来对机器人发起一个精确的运动。

depth_object_detection - 这个主要用于检测我的手,打开或者关闭夹持器。

安装

- 得到一个备用机,并安装ubuntu14.04

- 刷你的TK 板子,确保WIFI工作

- 用UVC安装客制化内核

- 安装ROS和传感器的驱动

- 安装这些ROS包(通过 apt-get获得)

rosserial_python xv_11_laser_driver laser_filters kobuki yocs_velocity_smoother map_serverrtabmap_ros amcl pocketsphinx gmapping navigation pi_trees

- 建立你的ROS环境,生成一个工作区域。

- git clone https://github.com/Jack000/bunnybot 到你的工作区域,同时 catkin_build

- 复制 bunnybot的内容/加载到你的home directory

- 复制 bunnybot/launch/bunnybot.py到 the package directory of pi_trees_lib

本文涉及到软硬件规格和代码,请点击阅读原文,了解详细信息!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档