Track and Follow an Object----4
原创博文:转载请标明出处(周学伟):http://www.cnblogs.com/zxouxuewei/tag/
ntroduction:
在本示例中,我们将探索包含Kinect摄像头的自主行为。 这个算法是TurtleBot寻找一个蓝色的球,然后停留在离球的固定距离。 首先tuetlebot已经集成了基本的安全行为,例如碰撞和悬崖检测等。
运行此示例需要图像处理的工具箱。
先决条件:与TurtleBot正常通信,探索TurtleBot的基本行为,使用遥控控制TurtleBot,使用TurtleBot避开障碍。
Hardware Support Package for TurtleBot
本示例概述了使用其本机ROS接口的TurtleBot。 基于TurtleBot的机器人的机器人系统工具箱支持包为TurtleBot提供了更简洁的界面。
它允许您:
1. 获取传感器数据并发送控制命令,而不显式调用ROS命令。
2.与Gazebo中的模拟机器人或物理TurtleBot进行通信。
要安装支持包,在MATLAB Home选项卡上打开Add-Ons > Get Hardware Support Packages,然后选择“TurtleBot-Based Robots”。 或者,使用roboticsAddons命令。
Trial>> roboticsAddons
Connect to the TurtleBot or zxbot
确保你有一个TurtleBot运行在通过Gazebo®或真实硬件的模拟。 有关启动过程,请参阅开始使用Gazebo和模拟TurtleBot或开始使用Real TurtleBot。 如果您使用硬件,请找到用于跟踪的蓝色球。 如果你使用Gazebo,蓝色的球必须在机器人前面的世界。
初始化ROS。 通过将示例IP地址(192.168.1.156)替换为TurtleBot的IP地址来连接到TurtleBot
在这我使用的是自主研发的ZXBOT机器人,首先通过SSH连接机器人,然后启动相关节点
ZXBOT:
//打开ubuntu终端
ssh ubuntu@192.168.1.156
roslaunch odom_tf_package zxbot_kinect_start.launch
zxbot_kinect_start.launch内容如下:主要完成里程计的发布,激光雷达/scan数据的发布,kinect的openni驱动。
<launch> <param name="use_sim_time" value="false" />
<node name="link_camera" pkg="tf" type="static_transform_publisher" args="0.15 0 0.15 0 0 0 base_link camera_link 50"/>
<node name="link_laser" pkg="tf" type="static_transform_publisher" args="0.15 0 0.15 0 0 0 base_link laser 50"/>
<node pkg="odom_tf_package" type="tf_tf_not_smoother" name="serial_send_recevice" output="screen"/>
<include file="$(find odom_tf_package)/launch/include/rplidar_ros.launch.xml"/>
<include file="$(find openni_launch)/launch/openni.launch"/> </launch>
初始化ROS。 通过将IP地址(192.168.1.1)替换为TurtleBot的IP地址来连接到TurtleBot。(或者ZXBOT机器人)
ipaddress = '192.168.1.156'
rosinit(ipaddress)
如果您使用真正的TurtleBot硬件,请确保您已经启动了Kinect摄像机.你必须在TurtleBot的终端输入。
命令启动相机是:
roslaunch turtlebot_bringup 3dsensor.launch
下面为彩色相机,边沿检测传感器和触碰开关传感器创建订阅者。 创建发布者控制机器人速度。我在这里用的是ZXBOT机器人,没有边沿检测传感器和触碰开关传感器,所以就不创建发布者。
//如果你采用的是turtlebot
handles.colorImgSub = exampleHelperTurtleBotEnableColorCamera;
handles.cliffSub = rossubscriber('/mobile_base/events/cliff', 'BufferSize', );
handles.bumpSub = rossubscriber('/mobile_base/sensors/bumper_pointcloud', 'BufferSize', );
handles.soundPub = rospublisher('/mobile_base/commands/sound', 'kobuki_msgs/Sound');
handles.velPub = rospublisher('/mobile_base/commands/velocity');
//若果你采用的是zxbot或者自己的机器人,请按照自己的机器人话题名称去订阅和发布。
handles.colorImgSub = exampleHelperTurtleBotEnableColorCamera;
handles.velPub = rospublisher('/cmd_vel');
Tune the Blue Ball Detection
设置图像过滤的参数。 将它们添加到将算法中使用的数据结构中。
blueBallParams.blueMax = ; % Maximum permissible deviation from pure blue
blueBallParams.darkMin = ; % Minimum acceptable darkness value
尝试可视化球,以确保球找到参数可以找到它。 运行exampleHelperTurtleBotFindBlueBall函数来查看是否找到了一个圆。 如果是,则c和m被赋值。 球是通过在图像上应用蓝色和暗度滤波器而创建的二值图像。 查找球,看看蓝色球是否被正确隔离:
Track and Follow an Object----4的更多相关文章
- “Clang” CFE Internals Manual---中文版---"Clang"C语言前端内部手册
原文地址:http://clang.llvm.org/docs/InternalsManual.html 译者:史宁宁(snsn1984) "Clang"C语言前端内部手册 简介 ...
- [翻译]:Cinemachine 官方文档(0)
目录 Overview : Installation and Getting Started :安装并开始 User Guide :用户指南 What is Cinemachine? : 什么是Cin ...
- .NET Best Practices
Before starting with best practices tobe followed, it is good to have clear understanding of how mem ...
- NCE2
1.A private conversation Last week I went to the theatre. I had a very good seat. The play was very ...
- C#中的委托解析
谈及到C#的基本特性,“委托”是不得不去了解和深入分析的一个特性.对于大多数刚入门的程序员谈到“委托”时,都会想到“将方法作为方法的参数进行传递”,很多时候都只是知道简单的定义,主要是因为“委托”在理 ...
- NGUI:HUD Text(头顶伤害漂浮文字)
HUD Text 很早之前就有闻于NGUI中的HUD Text插件,今天得以尝试,看了会儿官方的文档,楞是没给看明白,官方的ReadMe.txt写的使用方法如下: 官网Usage 1. Attach ...
- The Four Stages of Recovering a Project
If a project is in trouble, the project manager needs to work to recover it and get the schedule bac ...
- .NET垃圾回收机制 转
在.NET Framework中,内存中的资源(即所有二进制信息的集合)分为"托管资源"和"非托管资源".托管资源必须接受.NET Framework的CLR( ...
- [转]Entity Framework and slow bulk INSERTs
本文转自:https://weblog.west-wind.com/posts/2013/Dec/22/Entity-Framework-and-slow-bulk-INSERTs I’ve been ...
随机推荐
- 安装corel x8提示你已安装了另外一个版本
如果之前安装了其他版本,提示安装不进去,需卸载visual c++ 2015 redistributable(x64)即可(测试环境是安装了x6后,x8安装不了) windows install cl ...
- oozie 安装过程详解
1.从apache的官网下载oozie3.3.2 2.编译oozie,以下命令用root来执行吧,它不做任何的测试的,因为一测试就会出错的 官网估计也知道,所以顺便也提供了一个跳过参数的命令... b ...
- java中GZIPOutputStream 流的使用(EOFException)
GZip流的使用非常多人都出现了以下的异常:java.io.EOFException: Unexpected end of ZLIB input stream.或者出现压缩后的数据不全的情况(就是压缩 ...
- SQL Server 2012 自动增长列,值跳跃问题(自增增加1000)
介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(in ...
- 记一次MyEclipse闪退的解决方法
http://www.th7.cn/Program/java/201408/262487.shtml ———————————————————————————————————————————————— ...
- Spring @Value注解问题
xml配置了下面标签:<context:property-placeholder location="classpath:xxx.properties" /> 用spr ...
- 安卓程序代写 网上程序代写[原]BluetoothSocket详解
一. BluetoothSocket简介 1. 简介 客户端与服务端 : BluetoothSocket 和 BluetoothServerSocket 类似于Java中的套接字的 Socket 和 ...
- 【转】MySQL count(*)速度慢优化
select count(*)是MySQL中用于统计记录行数最常用的方法. count方法可以返回表内精确的行数,每执行一次都会进行一次全表扫描, 以避免由于其他连接进行delete和insert引起 ...
- SpagoBI 教程 Lesson 2: OLAP with JPIVOT
SpagoBI Lesson 2: OLAP with JPIVOT Online Analytical Processing Online Analytical Processing (OLAP) ...
- 【转载】K-NN算法 学习总结
声明:作者:会心一击 出处:http://www.cnblogs.com/lijingchn/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...