linux
DiegoRobot
ROS机器人、人工智能、机器学习
QQ:38182368
展开
-
智能小车制作过程全纪录: 三、软件平台--- Java 平台串口通信
嵌入式Linux上大部分都是有C/C++来做开发的,主要的原因还是为了效率,但本人最近几年用Java比较多所以决定用Java比较多所以决定还是用Java来开发,再者个人认为现在硬件的发展,对于实时性没有苛刻要求的环境Java足可以胜任了,所以言归正传,下面开始实际行动:1.Java虚拟机的安装,OpenJava,Oracle Java都可以,这里用Oracle Java为例:a. Ubuntu本身原创 2016-09-29 18:03:54 · 3131 阅读 · 0 评论 -
Diego 1# 4WD —3:上位机通讯
ROS Arduino Bridge本质上是上位机通过串口发送控制命令来实现对Arduino的控制,所以我们要实现4驱的控制,我们也必须的修改通讯部分1.Arduino firmware修改1.1 command.h在此文件中增加4驱所需的命令及宏定义#ifndef COMMANDS_H#define COMMANDS_H#define ANALOG_READ 'a'#def...原创 2019-08-06 15:26:20 · 946 阅读 · 0 评论 -
Diego 1# 机器视觉-人脸检测
机器视觉是一个非常复杂的主题,需要比较专业的计算机图形学相关知识,在ROS By Example Volume 1这本书中提供了比较好的入门范例,所以我们将按照此书中所介绍的例子开启我们Diego的机器视觉之旅,后面逐步增加比较复杂的内容。我们首先来实现实现书中所讲到的人脸检测、特征值获取、人脸跟踪,机器人跟随等功能,由于此书中所使用的代码依赖于opencv2.4,但在Diego我们安装的是RO...原创 2019-08-06 15:47:24 · 543 阅读 · 0 评论 -
Diego 1# 机器视觉-特征点检测及跟踪
上一节中我们实现了人脸的检测,当有人脸出现摄像头前面时,图像窗体中会用矩形显示人脸的位置,接下来我们需要实现特征值获取,及特征值跟随。本文针对Opencv3移植了ROS By Example Volume 1中的示例代码,所有代码均在opencv3环境完成测试,可以正常运行。1.特征值获取1.1 源代码源文件good_features.py请见github在Opencv中已经提供了特征值获...原创 2019-08-06 15:51:38 · 757 阅读 · 1 评论 -
Deigo1# 机器视觉-人脸跟踪
基于前面两节人脸检测,特征值获取及跟踪,我们进一步实现人脸的跟踪,我们可以让机器人跟踪人脸,暨当人脸移动时控制机器人转动,使得人脸始终在图像窗体的中间位置,基本流程如下人脸检测,lesson 16中已经介绍过了,这里直接引用就可以。特征获取,lesson 17中也已经实现,但要达到比较好的效果,需要对特征点做一些补偿及噪声点的剔除人脸跟踪,需要根据ROI的位置,来判断机器人需要怎样移动才能...原创 2019-08-06 15:56:44 · 432 阅读 · 0 评论 -
Diego1# 机器视觉 -AR标签跟随
ROS里面有一个非常好用的AR标签包,可以产生AR标签,识别AR标签。我们可以基于此功能实现很多好玩的AR应用,这篇文章中我们将介绍如何使用这个包,及基于此包我们实现AR标签的跟随。1.安装ar_track_alvarar_track_alvar可以通过apt_get来安装,非常方便:sudo apt-get install ros-kinetic-ar-track-alvar安装完成后...原创 2019-08-06 16:08:21 · 2521 阅读 · 1 评论 -
Diego1# 机器视觉 -物体识别和定位
google最近公布了基于tensorflow物体识别的Api,本文将利用Diego1#的深度摄像头调用物体识别API,在识别物体的同时计算物体与出机器人摄像头的距离。原理如下:Object Detection 订阅Openni发布的Image消息,识别视频帧中的物体Object Depth 订阅Openni发布的Depth Image消息,根据Object Detection识别出的物体列...原创 2019-08-06 16:27:13 · 1876 阅读 · 3 评论 -
DiegoAPP–整体架构介绍
1.开发环境RobotCA是采用Eclipse进行开发,在DiegoAPP中将整个项目迁移到了Android Studio 3.4开发Android Studio中Gradle 和Gradle Plugin的版本入下图,Gradle和Gradle Plugin的版本非常重要,其他的版本会出现一些编译错误。Diego APP支持了Android8.0,Android8.1,Android9...原创 2019-08-06 16:38:14 · 655 阅读 · 2 评论 -
DiegoAPP–机器人控制
机器人的控制主要涉及到如下几个文件ControlApp,在连接到Robot后的主界面,执行控制任务,及执行各种功能的FragmentRobotController,主要的机器人控制代码,在此文件中定义了要接收发送的ROS Topic,以及接收后的处理方式Fragement,执行各主要功能的的Fragment,通过ControlApp进行切换RobotController主要功能说明...原创 2019-08-06 16:50:01 · 961 阅读 · 0 评论 -
Diego 1# 4WD —2:马达控制
针对马达控制我们主要需要修改两部分:驱动部分,使其可以支持同时控制4个马达PID调速部分,试验表明,虽然是一样的型号的马达,但是给相同的PWM值,马达的转速也不一样,所以我们需要分别对4个马达进行PID调速1.马达驱动1.1. DualL298PMotorShield4WD.h文件的修改增加了4个马达对应的PWM和方向控制的Pin引脚定义,和4个马达速度的设置函数#ifndef Dua...原创 2019-08-06 15:20:03 · 914 阅读 · 1 评论 -
ROS机器人Diego 1#制作(六)base controller---对ros_arduino_bridge的修改,实现两个马达独立PID调速
ros_arduino_bridge的base controller中对两个电机的PID控制是用的一套PID参数,但实际的使用中,由于马达的特性,地形,或者机器人的载重的平衡性的诸多问题使机器人不能按照预定轨迹行驶,最简单的就是机器人是否能够走直线,这就需要对两个电机分别进行PID调速,本文中将介绍如何对ros_arduino_bridge进行修改,以使支持对两路电机用不同的PID参数调速1.首先修原创 2016-11-18 11:51:00 · 4542 阅读 · 15 评论 -
ROS机器人Diego 1#制作(八)ROS语音系统之整合讯飞语音
非常感谢ljthink提供的讯飞语音的树莓派SDK下载地址:http://download.csdn.net/download/yanghuan313/9616763。 整合讯飞语音其实非常简单,网友已经开发了相应的ROS 讯飞包,http://write.blog.csdn.net/postedit?ticket=ST-184345-b3BcqYCzBRM5UlDzTLNr-passport.c原创 2016-11-26 22:13:39 · 1745 阅读 · 0 评论 -
智能小车制作过程全纪录: 四、软件平台--- Java 控制GPIO
嵌入式系统针对GPIO的开发,大部分都是采用c/c++进行开发,也有在树莓派上针对GPIO的java开发包,但必须要用树莓派平台,但友善之臂Friendarm的板子并不支持,只能自己想办法,在这里我们用Jni技术,直接调用友善之臂Friendarm的驱动包接口1.首先下载友善之臂Friendarm的开发包Matrix,并编译apt-getupdate&&apt-getinstallgit原创 2016-10-04 22:07:46 · 4426 阅读 · 0 评论 -
智能小车制作过程全纪录: 五、软件平台--- Sphinx语音识别
目前国内语音识别主要是使用科大讯飞的在线语音识别,而且准确度也非常高,这主要得益于其强大的语音库,甚至方言也可以识别。但有很多时候需要离线的环境,这就需要离线识别,另外本人在这个平台上使用开源的技术,所以这里使用Sphinx4语音识别平台1.下载Sphinx4开发包 Sphinx有c语言,和Java版本,java版本的开发包技术Sphinx4, 下载:sphinx4-core-5prealpha原创 2016-10-07 17:03:44 · 3894 阅读 · 0 评论 -
ROS机器人Diego 1#制作(十一)将letv xtion点云数据转换成激光数据
对与机器小车来说,导航都是在2D的地图下导航的,而点云数据产生的是3D的数据,所以在使用gmapping产生地图之前需要将点云数据转换成激光数据,这就要用到pointcloud_to_laserscan这个包,可以点击链接来下载。1.首先把这个包的源代码克隆到~/catkin_ws/src目录下cd ~/catkin_ws/srcgit clone https://github.com/ros-p原创 2016-12-07 18:50:50 · 2692 阅读 · 0 评论 -
ROS机器人Diego 1#制作(七)ROS语音系统
现在语音识别很火,但从笔者的实际经验来看,目前的语音识别技术还远没有到大规模使用的阶段,语音识别现在无论是在线的还是离线的都在相对安静的环境下识别率比较高,但一旦有噪音,或者多人对话,现在语音识别技术都没有办法准确识别。 国内使用的比较多的是科大讯飞的识别技术,而且在线识别的准确率比较高,笔者本也打算集成科大讯飞的,但从其网站下载的SDK来发现,其对Linux只支持x86,x64的计算机,对于树莓原创 2016-11-18 14:25:37 · 1977 阅读 · 3 评论 -
ROS机器人Diego 1#制作(二)base controller---rosserial_arduino
ROS机器人要动起来首先需要对底盘的驱动,在ROS的控制模型中,一般会把对底盘的驱动,及马达的PID调节放在一起称之为base controller,ROS社区已经有针对Arduino封装好的Package—rosserial_arduino,wiki地址为:http://wiki.ros.org/rosserial_arduino/Tutorials,接下来我们一步一步来实现一个Arduino B原创 2016-10-28 13:29:45 · 6256 阅读 · 11 评论 -
ROS机器人Diego 1#制作(五)base controller---角速度的标定
角速度标定,即控制机器人人转动固定的角度,看机器人是否按照控制指令完成,在这里我们让机器人转360度,代码如下:#!/usr/bin/env pythonimport rospyfrom geometry_msgs.msg import Twist, Quaternionfrom nav_msgs.msg import Odometryimport tffrom math import r原创 2016-11-11 10:46:06 · 3504 阅读 · 4 评论 -
ROS机器人Diego 1#制作(三)base controller---ros_arduino_bridge
ros_arduino_bridge封装了通过串口于底盘控制器Arduino的通信,并提供了一个标准的base controller,所以对arduino资源的占用非常小,arduino只是作为一个单纯的硬件控制器来使用,而所有的运算逻辑都放在上位机进行,通过串口指令的方式控制Arduino程序的运行。在Arduino UNO编译一个完整的ros_arduino_bridge后的资源占用情况如下图:原创 2016-10-31 09:32:33 · 7927 阅读 · 10 评论 -
ROS机器人Diego 1#制作(九)视觉系统之使用Xtion发布点云数据
要做到机器人的SLAM自适应导航,最基本的要有激光雷达数据或者点云数据,但激光雷达目前价格太高,在淘宝上便宜的也要将近3000块,实在是太贵了,另外可替代的方法是用具有深度摄像机作为传感器发布点云数据,一般用的比较多的是微软的Kinect,或者华硕的Xtion。目前Kinect已经有2.0版本,而且二手的价格也比较便宜,但Kinect2.0支持的USB3.0接口,树莓派USB接口都是2.0的,无奈只原创 2016-11-26 22:53:54 · 3155 阅读 · 7 评论 -
DiegoAPP–增加高德地图,并在地图上显示机器人轨迹
RobotCA原版的APP是使用国外的地图,在国内访问不了,本文将介绍如何使用高德地图来替代原有的地图,并订阅GPS消息,在地图上显示机器人轨迹在APP中增加高德地图,我们首先要申请高德的Key,具体的申请方法可以参考高德官方文档https://lbs.amap.com/api/android-sdk/guide/create-project/get-key/1.在AndroidManifes...原创 2019-08-06 16:55:07 · 1086 阅读 · 3 评论