1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot camera.launch. 2.在虚拟机端启动 roslaunch opencv_apps edge_detection.launch 进行边缘提取采集. 效果如下: 3.在虚拟机端启动 roslaunch opencv_apps hough_lines.launch 进行哈夫变换直线检测. 4.在虚拟机端启动 roslaunch opencv_apps find_contour…
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端运行rosrun robot_upstart install znjrobot/launch/bringup.launch 2.按照上一步提示运行命令:sudo systemctl daemon-reload && sudo systemctl start znjrobot. 3.再继续运行 sudo service znjrobot start 4.此时通过 rostopic list,可以查看到 bringup.…
关于摄像头:普通摄像头, USB 免驱摄像头都可以使用. 1.如下图所示,用红色胶布在地板上贴一条线,小车摆放在线的一头处,让线在小车的中间位置,摄像头角度往下调整倾斜一点,好让摄像头识别到红线.注意:红线拐弯角度不能太急,地板最好不反光,地板的颜色和红色线对比度要高,识别效果才会更好. 2.用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch. 3.再打开一个终端.ssh 过去小车主控端,启动roslaunch znjrobo…
1.把小车架空,平放在地板上,注意四个轮子一定要悬空.用资料里的虚拟机,打开一个终端 ssh 过去主控端启动 roslaunch znjrobot bringup.launch.   2.在虚拟机端再打开一个终端,ssh 过去主控端启动rosrun znj_pid pid_configure   3.在虚拟机端再打开一个终端,直接启动 rosrunrqt_reconfigure rqt_reconfigure 4.在弹出以下窗口,点击左边的 pid_configure,然后我们看到右边有三个数值…
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch . 2.再打开一个终端,ssh 过去主控端,在 ~/catkin_ws/src/znjrobot_project/znjrobot/param/imu 路径下启动 imu 校正命令.rosrun imu_calib do_calib 3.按提示输入回车即可完成校正. 切记:运行imu自动校正,一定要先跳转到~/catkin_ws/src/znjrobo…
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch. 2.在虚拟机端打开一个终端,ssh 过去主控端启动roslaunch znjrobot hector_slam.launch. 3.在虚拟机端打开一个终端,启动 rviz:rosrun rviz rviz. 4.全屏化后点击 File,点击 Open Config, 5.找到路径下~/catkin_ws/src/znjrobot_project/zn…
建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平放在你想要构建地图的区域内地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动 roslaunch znjrobot bringup.launch. 2.在虚拟机端,再打开一个终端,ssh 过去小车主控端启动, roslaunch znjrobot rplidar.launch 3.在虚拟…
建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平放在你想要构建地图的区域内地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动 roslaunch znjrobot bringup.launch. 2.在虚拟机端打开一个终端,ssh 过去主控端启动roslaunch znjrobot karto_slam.launch. 3.在虚拟机端…
版权声明:该教程版权归北京智能佳科技有限公司所有,未经公司授权禁止引用.发布.转载等,否则将追究其法律责任. 使用前说明:本使用文档说明略微简明,请结合指导视频进行操作会更容易理解!! 第一章节 BJROBOT ROS 网络配置及移动控制 1.工控机的系统用户名为 robot,密码:bjrobot  远程登录方式:a.teamview, 输入工控机IP,密码即可登录:                   b.ssh登录:ssh bjrobot@192.168.50.102 密码:bjrobot…
导航前说明:一定要确保你小车在构建好地图的基础上进行! 1.把小车平放在你想要构建地图区域的地板上,打开资料里的虚拟机,打开一个终端, ssh 过去主控端启动roslaunch znjrobot bringup.launch. 2.在虚拟机端再打开一个终端,ssh 过去主控端启动roslaunch znjrobot camera.launch. 3.在虚拟机端打开一个终端,再次 ssh 过去小车主控端启动roslaunch znjrobot navigate.launch. 4.在虚拟机端打开一…
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobotbringup.launch 2.在虚拟机端再打开一个终端,ssh 过去主控端启动roslaunch znjrobot camera.launch 3.在虚拟机端再打开一个终端,ssh 过去主控端启动roslaunch znjrobot lidar_slam.launch 4.在虚拟机端打开一个终端,启动 rviz:rosrun rviz rviz. 5.全屏化后点击 File,点击…
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch 2.在虚拟机端再打开一个终端,ssh 过去主控端启动roslaunch znjrobot auto_slam.launch 3.在虚拟机端打开一个终端,启动 rviz:rosrun rviz rviz. 4.全屏化后点击 File,点击 Open Config, 5.找到路径下~/catkin_ws/src/znjrobot_project/znjro…
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch. 2.再打开一个终端,ssh 过去主控端启动 roslaunch znjrobot navigate_multi.launch. 3.在虚拟机端打开一个终端,启动 rviz:rosrun rviz rviz. 4.全屏化后点击 File,点击 Open Config, 5.找到路径下~/catkin_ws/src/znjrobot_project/zn…
BJROBOT 线速度校正   1.把小车平放在地板上,用卷尺作为测量刻度,选取车头或者车尾处作为小车的起点, 打开资料里的虚拟机,打开一个终端 ssh 过去主控端启动 roslaunch znjrobot bringup.launch. 2.在虚拟机端打开一个终端,ssh 过去小车主控端,启动校正线速度命令rosrunznjrobot_nav calibrate_linear.py 3.在虚拟机端再打开一个终端,直接启动 rosrunrqt_reconfigure  rqt_reconfigu…
1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch .   2.再打开一个终端 ssh 过去主控端,启动校正角速度命令rosrun znjrobot_nav calibrate_angular.py 3.在虚拟机端打开一个终端,直接运行 rosrun rviz rviz   4.全屏化后点击 File,点击 Open Config: 5.找到路径下~/catkin_ws/src/znjrobot_pro…
雷达跟随说明:注意深度摄像头的 USB 延长线,可能会对雷达扫描造成影响, 所以在雷达跟随前,把深度摄像头的 USB 延长线取下.另外雷达跟随范围大概是前方 50cm 和 120°内扫描到的物体都可以跟随. 1.把小车平放在地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动roslaunch znjrobot bringup.launch.   2.在虚拟机端再打开一个终端,ssh 过去启动 roslaunch znj_lidar_follower laser_follower.la…
1.把小车架空平放在地板上.   2.用 USB 线将 PS3 蓝牙手柄连接至小车主控端,初次连接手柄上的 4 个红色指示灯会同时闪烁; 3.按下手柄中间的圆形配对键,然后等待红灯闪烁至停止. 4.此时手柄只有一个红灯常亮,再次插拔 USB 线后,还是只有一个红灯常亮,说明已经匹配成功了. 5.把手柄放在地上,回到虚拟机端. 6.按下图的步骤,进行蓝牙匹配 7.用资料里的虚拟机,打开一个终端 ssh 过去主控端启动 roslaunch znjrobot bringup.launch.   8.再…
第五章节 BJROBOT SLAM 构建地图   建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!!   1.把小车平放在你想要构建地图的区域内地板上,用资料里的虚拟机,打开一个终端 ssh 过去主控端启动 roslaunch znjrobot bringup.launch. 2.在虚拟机端打开一个终端,ssh 过去主控端启动roslaunch znjrobot…
导航前说明:一定要确保你小车在构建好地图的基础上进行! 1.把小车平放在你想要构建地图区域的地板上,打开资料里的虚拟机,打开一个终端, ssh 过去主控端启动 roslaunch znjrobot bringup.launch. 2.在虚拟机端打开一个终端,再次 ssh 过去小车主控端启动roslaunch znjrobot navigate.launch 3.在虚拟机端打开一个终端,启动 rviz:rosrun rviz rviz. 4.全屏化后点击 File,点击 Open Config,…
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样的任务,所以就好好把基础研究了一下,驱动式学习,目标明确,所以还是比较快去接受和理解,然后写代码实现就好了.今天就带领大家走近TSP问题以及群蚁算法. 机器学习目录:[目录]数据挖掘与机器学习相关算法文章总目录 本文原文地址:群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法 1.关于旅行商(…
最近有点空闲时间了, 准备开一个地图SDK的开源项目, 现在的地图SDK已经有很多了, 再做一个跟重新发明个轮子差不多, 但还想做的原因是想在别的轮子的基础上造个轮子... 初步设想是基于开源的地图渲染引擎tangram-es进行二次开发, 使用Qt5.7进行二次封装, 提供QWidget和QML两种接口 项目地址: https://github.com/tiangles/ltdmap 支持平台: linux gcc 32/64 bits, arm/x86, 未来打算移植到QNX和win32,…
引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文章转自[http://www.cnblogs.com/hoojo/p/ant_increment_svn_diff_diffSummarize.html] 首 先请允许我这样说,作为开发或测试,你一定要具备这种本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 当地图中增加了很多元素后,对不同的元素需要进行一定的控制,最简单的控制就是能对元素有选择的进行清空删除.在本节中,还将介绍WebGIS中另外一个常用功能,即地图定位功能.具体描述便是:当输入一个坐标点后,能够将地图缩放到该点处.下面我便就以上两个功能展开此章节的内容. 2.清空功能 2.1设计思路 根据功能点,我们可以将清空分为如下几个情形: a.清空某个或…
地图上实现最短路径的查询,据我了解的,一般用Dijkstra算法和A*算法来实现.由于这是一个课程项目,时间比较急,而且自己不熟悉A*算法,所以参考网上的Dijkstra算法(http://blog.csdn.net/javaman_chen/article/details/8254309)的代码来实现了地图上任意两点的最短路径的查询.但该demo存在一个很严重的错误,缺了两行非常关键的代码…… 首先,来了解下Dijkstra算法:无向图的最短路径求解算法之——Dijkstra算法 http:/…
八皇后问题是一道经典的回溯问题.问题描述如下:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8*8个方格),使它们谁也不能被吃掉?         看到这个问题,最容易想到的就是遍历穷举法,不过仔细一想,思路虽然非常清晰,但是需要遍历次数太多,时间复杂度很高.那么,我们应该怎么办呢?下面给出算法思路:         算法思想:首先尝试在第一行放置第一个皇后,然后在第二行放置第二个使之与前面的皇后不构成威胁,依此类推.如果发现不能放置下一个皇后,就回溯到上一步,试着…
先是这周是搜索的题,网站:http://acm.hdu.edu.cn/webcontest/contest_show.php?cid=6041 主要内容是BFS,A*,IDA*,还有一道K短路的,.....木做,本来1009是说要用迭代加深做,但是我在他讲之前就用BFSA了,虽然很耗时,但还是过了,10000MS的时限,我8000+MS....... 1001 Eight  八数码问题 先把代码放上来 题目网址: http://acm.hdu.edu.cn/showproblem.php?pid…
HDU 1043 Eight 八数码问题(经典问题) 题意 经典问题,就不再进行解释了. 这里主要是给你一个状态,然后要你求其到达\(1,2,3,4,5,6,7,8,x\)的转移路径. 解题思路 这里有很多的解法,我这里是参考的学长给的题解,真的写的巨好啊!可惜不知道是哪位学长写的>︿<. 下面就是学长写的题解了,自己改动和增添了一点. 经典问题,解法有很多,我们先来计算一下八数码问题一共有多少种状态.八数码问题包含九个字符,这九个字符可以任意排列,也就是\(9! = 362880\).所以八…
八种排序算法可以按照如图分类 交换排序 所谓交换,就是序列中任意两个元素进行比较,根据比较结果来交换各自在序列中的位置,以此达到排序的目的. 1. 冒泡排序 冒泡排序是一种简单的交换排序算法,以升序排序为例,其核心思想是: 从第一个元素开始,比较相邻的两个元素.如果第一个比第二个大,则进行交换. 轮到下一组相邻元素,执行同样的比较操作,再找下一组,直到没有相邻元素可比较为止,此时最后的元素应是最大的数. 除了每次排序得到的最后一个元素,对剩余元素重复以上步骤,直到没有任何一对元素需要比较为止.…
Eight Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10101    Accepted Submission(s): 2684Special Judge Problem Description The 15-puzzle has been around for over 100 years; even if you don't…
地图与地理定位 定位在大部分项目中都需要实现,如何实现主要有如下的几种方法 H5定位 在HTML5中navigator有很强大的功能,其中就有定位的方法 navigator.geolocation.getCurrentPosition(function showPosition(position){ lat=position.coords.latitude; lon=position.coords.longitude; console.log(lat,lon) },function(err){…