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被赋值。 球是通过在图像上应用蓝色和暗度滤波器而创建的二值图像。 查找球,看看蓝色球是否被正确隔离:
最新文章
- Android历史版本Logo
- iOS中通讯录的开发
- c语言中的指针问题
- visual studio 2013 秘钥
- jsp+bean+servlet 案例代码
- 聊一聊js中的null、undefined与NaN
- SPOJ MULTQ3 7299 Multiples of 3 (区间更新)
- ACM——搜索(一)
- eclipse 启动tomcat报Spring错误 Error creating bean with name &#39;serviceOrderBiz&#39;: Injection of autowired dependencies failed
- 第四课 Grid Control实验 GC Agent安装(第一台机器部署) 及卸载
- 零碎的JS基础
- 微信小程序-制作简易豆瓣笔记
- Redis是可以安装成windows服务-开机自启
- vue-6-事件处理
- RTTI(运行时类型识别)
- Redis高可用之主从复制实践(四)
- 从C# 2.0新特性到C# 3.5新特性
- JDBC连接方式有哪几种
- 17 网络编程 C/S架构介绍
- StringBuilder和StringBuffer解析(百度面试题优化须要用到的)
热门文章
- WIN7下重建图标缓存(解决MFC.exe桌面图标显示异常问题)
- .Net中的内存分配问题
- 【C】——信号量 互斥锁 条件变量的区别
- spring boot 使用拦截器 无法注入 配置值 、bean问题
- 机器人排除标准 robot.txt robot exclusion standard
- Android开发-httpclient兼容性问题
- iOS 基础入门--Bull&#39; Eye 小游戏
- python2 python3 字符串 编码格式 处理
- 一个hadoop hdfs put 文件失败的小情况
- HTML5实现摇一摇的功能(实测后)--转