- 博客(66)
- 资源 (4)
- 收藏
- 关注
原创 ROS机器人Diego 1#制作(二十)搭载EAI F4激光雷达Hector创建室内地图
EAI F4激光雷达是EAI最近推出的低成本二维激光雷达,具备极高的性价比 今天我们就用这款雷达基于ROS的 hector来创建室内地图,先上创建好的室内地图。 此图是diego 1#搭载此雷达使用hector创建的。1.下载F4的ROS包,执行如下命令cd ~/catkin_ws/srcgit clone https://github.com/EAIBOT/flashgo.gitc
2017-02-16 10:38:52
4563
1
原创 ROS机器人Diego 1#制作(十九)diego机器人的moveit驱动
moveit作为一个很好的机械臂路径规划工具,大大降低了机械臂的开发的难度,很多功能都可以在模拟环境下测试运行,如前面博客中讲到的,但要让真实的机器人能够按照moveit规划好的路径动起来,就需要开发连接机器人和moveit的驱动代码,这一篇我们就介绍一下如何开发针对diego的驱动。1.首先介绍一下驱动的原理上图为通讯原理 首先,moveit把计算的结果通过Ros action的方式发送给dri
2017-02-06 11:09:24
3009
3
原创 ROS机器人Diego 1#制作(十八)模拟环境测试moveit
Moveit 配置完成后,我们就可以在Rviz的模拟环境下对Moveit进行测试,以矫正urdf文件,及相关的配置,待都符合机器人的设计要求后,就可以把配置好的moveit移植到实际的机器人diego上运行。1.首先我们启动moveit的demo模式,执行如下命令roslaunch diego_moveit demo.launch注意这里的diego_moveit是存放moveit配置文件的包名,这
2017-01-18 15:07:04
1635
1
原创 ROS机器人Diego 1#制作(十七)用moveit assistant生成配置包
制作好了机器人的urdf文件,接下来我们就可以配置他的moveit了1.首先我们需要安装moveit,执行如下命令apt-get install ros-kinetic-moveit2.打开moveit设置助手roslaunch moveit_setup_assistant setup_assistant.launch3.创建新的moveit配置包 点击create new moveit conf
2017-01-13 10:20:51
2756
2
原创 ROS机器人Diego 1#制作(十六)创建机器人的urdf模型描述文件
由于后续要做机械臂的控制,会用到机器人的urdf描述文件,moveit需要根据urdf中的数据进行机械臂的路径规划,这里介绍一下如何一步一步创建机器人的urdf模型描述文件,最终做好的urdf模型如下图 1.首先要注意的是在ros中使用的右手坐标系,所以描述文件中的数据都是以此坐标系为原则 2.先建立baseline的 <?xml version="1.0"?><robot name="di
2017-01-11 13:03:40
4580
2
原创 ROS机器人Diego 1#制作(十五)机械臂的控制---通过键盘控制机械臂舵机
为了便于调试,特意写了一个通过键盘控制机械臂舵机的代码,来调试舵机,代码是基于teleop_twist_keyboard修改的。在arduino_node.py中已经声明了舵机读和写的ROS Service: # A service to position a PWM servo rospy.Service('~servo_write', ServoWrite, sel
2017-01-04 19:13:02
5379
2
原创 智能小车制作过程全纪录: 六、软件平台--- 摄像头云台控制
摄像头云台采用2自由度云台控制可以控制,淘宝很多商家都有卖,云台如下图舵机控制板采用24路舵机控制板,通过串口发送指令控制舵机的控制,如下图 舵机类Servo.java 封装了舵机控制的基本属性,可以根据属性获取控制的命令package com.diego.serialcomm;public class Servo { private int pos=500; private in
2016-12-30 10:49:22
5544
原创 ROS机器人Diego 1#制作(十四)机械臂的控制---arduino驱动
今天从淘宝上订购的两个机械臂终于到货了,从这篇开始逐步讲解ROS机械臂的控制,这两个机械臂又花掉了800块,配的MG99R模拟舵机,如果配数字舵机每个机械臂要555元,价格还是有点小贵。机械臂安装好后如下图 本来有一块通过串口控制24路舵机控制的模块,但由于树莓派的串口已经被蓝牙所使用,现在蓝牙还要接蓝牙音箱,所以只好在找其他的舵机控制版,最后找到这款2路电机,和16路舵机控制模块,可以直接插在a
2016-12-30 10:24:21
17225
2
原创 ROS机器人Diego 1#制作(十三)launch启动文件
Diego 1#中已经整合了不少的组件,一个一个启动比较麻烦,这里整理了一份启动的launch文件。<launch> <master auto="start"/> <arg name="camera" default="camera" /> <node pkg="xfei_asr" type="tts_subscribe_speak" name="tts_subscribe_speak" o
2016-12-13 12:29:45
2118
1
原创 ROS机器人Diego 1#制作(十二)SLAM导航的配置
一提到导航,一般人都会把地图、定位、和导航都包含进来,但在ROS中这三部分是分别用三个包实现的,分别是:gmapping —地图包,通俗一点这个包是用来画地图的,可以用这个包先把地图画出来,然后在用amcl和 move_base实现导航amcl—定位包,就是根据传感器信息确定在地图上的位置move_base—路径规划包,就是真正意义上的导航包,告诉机器人该怎么走很多博客都是将这三部分分开讲的
2016-12-11 23:32:50
2747
原创 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
2779
原创 ROS机器人Diego 1#制作(十)摄像头tf数据的发布
ROS中所有的零件都可以设定他的tf坐标数据,机器人在移动的时候会把这些点作为判断的数据,也是后面配置导航所必须的数据,具体的tf的概念,请学习官方文档http://wiki.ros.org/tf/Tutorials#Learning_tf,这里介绍diego中的代码#include <ros/ros.h>#include <tf/transform_broadcaster.h>int main(
2016-12-05 11:15:06
1963
1
原创 ROS机器人Diego 1#制作(九)视觉系统之使用Xtion发布点云数据
要做到机器人的SLAM自适应导航,最基本的要有激光雷达数据或者点云数据,但激光雷达目前价格太高,在淘宝上便宜的也要将近3000块,实在是太贵了,另外可替代的方法是用具有深度摄像机作为传感器发布点云数据,一般用的比较多的是微软的Kinect,或者华硕的Xtion。目前Kinect已经有2.0版本,而且二手的价格也比较便宜,但Kinect2.0支持的USB3.0接口,树莓派USB接口都是2.0的,无奈只
2016-11-26 22:53:54
3269
原创 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
1860
原创 ROS机器人Diego 1#制作(七)ROS语音系统
现在语音识别很火,但从笔者的实际经验来看,目前的语音识别技术还远没有到大规模使用的阶段,语音识别现在无论是在线的还是离线的都在相对安静的环境下识别率比较高,但一旦有噪音,或者多人对话,现在语音识别技术都没有办法准确识别。 国内使用的比较多的是科大讯飞的识别技术,而且在线识别的准确率比较高,笔者本也打算集成科大讯飞的,但从其网站下载的SDK来发现,其对Linux只支持x86,x64的计算机,对于树莓
2016-11-18 14:25:37
2093
原创 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
4945
15
原创 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
3730
4
原创 ROS机器人Diego 1#制作(四)base controller---线速度的标定
让机器人动起来容易,但要精确控制是比较难的,这与控制算法、硬件都有比较大的相关性。对于轮式机器人,base controller代码写好,机器人动起来后,首先做的就是需要对线速度,和角速度进行标定,以保证机器人可以按照指令精确的的形式,这篇博文中将讲述线速度的标定方法,下一篇中介绍角速度的标定方法。线速度的标定,就是设置一个1m的距离,代码控制让机器人行驶1m,看是否刚好是1m,误差在可接受的范围内
2016-11-02 09:58:17
5948
原创 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
8354
8
原创 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
6467
6
原创 ROS机器人Diego 1#制作(一)BOM清单
开源ROS机器人操作系统是机器人开发的利器,集成了大量先进的算法,而且还开源,国内也有很多人在研究,也有些原型,但网上文章多是翻译官方的英文教程,在这里我们一步一步的制作一个ROS机器人,探讨机器人制作的步骤,而且我们尽量用开源的硬件Arduino,树莓派,配件都可以在网上买到,或者用自己的一些旧的器件,机器人命名为Diego1#: 先上张Diego1#的图: 这里用了两种不同的底盘,除了底
2016-10-21 10:16:22
8659
2
原创 智能小车制作过程全纪录: 五、软件平台--- Sphinx语音识别
目前国内语音识别主要是使用科大讯飞的在线语音识别,而且准确度也非常高,这主要得益于其强大的语音库,甚至方言也可以识别。但有很多时候需要离线的环境,这就需要离线识别,另外本人在这个平台上使用开源的技术,所以这里使用Sphinx4语音识别平台1.下载Sphinx4开发包 Sphinx有c语言,和Java版本,java版本的开发包技术Sphinx4, 下载:sphinx4-core-5prealpha
2016-10-07 17:03:44
4162
原创 智能小车制作过程全纪录: 四、软件平台--- Java 控制GPIO
嵌入式系统针对GPIO的开发,大部分都是采用c/c++进行开发,也有在树莓派上针对GPIO的java开发包,但必须要用树莓派平台,但友善之臂Friendarm的板子并不支持,只能自己想办法,在这里我们用Jni技术,直接调用友善之臂Friendarm的驱动包接口1.首先下载友善之臂Friendarm的开发包Matrix,并编译apt-getupdate&&apt-getinstallgit
2016-10-04 22:07:46
4541
原创 智能小车制作过程全纪录: 三、软件平台--- Java 平台串口通信
嵌入式Linux上大部分都是有C/C++来做开发的,主要的原因还是为了效率,但本人最近几年用Java比较多所以决定用Java比较多所以决定还是用Java来开发,再者个人认为现在硬件的发展,对于实时性没有苛刻要求的环境Java足可以胜任了,所以言归正传,下面开始实际行动:1.Java虚拟机的安装,OpenJava,Oracle Java都可以,这里用Oracle Java为例:a. Ubuntu本身
2016-09-29 18:03:54
3268
原创 智能小车制作过程全纪录: 二、软件平台--- Arduino底盘驱动
主控板主要提供智能数据分析,根据分析的结果通过串口发送控制命令给小车驱动板,小车驱动板根据控制命令控制小车的动作,主控板采用Java平台,集成相关领域的开源解决方案,软件系统主要包括如下:底盘驱动:根据控制命令控制4个电机的控制听觉系统:采用Sphinx4开源语音识别框架,识别语音数据视觉系统:采用JavaCV图像识别来分析小车所看到的内容,做到目标跟踪语音合成系统:采用FreeTTS语音合
2016-09-28 15:09:45
5490
原创 智能小车制作过程全纪录:一、硬件平台
智能小车制作过程全纪录最近看了BBC的纪录片机器人时代,对国外机器人技术的发展感到震撼,当我们的新闻媒体还在报道几个机器人放在一起做一致的机械动作时,国外的机器人研究已经在研究各种各样的仿生机器人,甚至仿生的植物机器人,差距不是一点半点,而是被人家甩了几条街了。国外很多机器人都是大型的科研机构在研究,这需要长时间大量的经费投入,而我们国内的科研机构所有的科研项目都是功利性的,都是想方设法导出搞钱,没
2016-09-28 11:50:40
22864
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅