smartcar 系列机器人学习笔记1
总体框架:
1,感知
一个相机,一个雷达,一个odom(非必须:一个imu)
功能:
车道线检测,红绿灯检测,障碍物检测
2,决策规划
功能:
一次规划,(避障即:二次规划)
3,控制执行
功能:
速度控制,角度控制
4,人机交互
功能:
显示高精度地图,感知数据,定位数据等关键信息。
总结开发过程中遇到的一些问题:
1、usb永久改变权限的方法
参考文章:https://www.cnblogs.com/lvchaoshun/p/5911903.html
创建文件: /etc/udev/rules.d/70-ttyusb.rules
添加内容: KERNEL=="ttyUSB[0-9]*", MODE="0666"
对于js(手柄),假如不知道路径的话,可以都加上。
KERNEL=="ttyUSB[0-9]*", MODE="0666"
KERNEL=="ttyACM[0-9]*", MODE="0666"
KERNEL=="js[0-9]*", MODE="0666"
KERNEL=="input/js[0-9]*", MODE="0666"
2、ttyUSB 和 ttyACM 的区别
参考文章: https://www.cnblogs.com/sky-heaven/p/5594089.html
对于转换桥,功能较单一,归类为ttyUSB。驱动在drivers/usb/serial/usb-serial.c。 比如FDTI转换芯片虚拟出的串口,在ubuntu上都识别为ttyUSB*.
对于带通信规约的接口,实现复杂,归类为ttyACM。驱动在drivers/usb/class/cdc_acm.c。比如arduino uno rev3板子的usb串口是由atmega16u2芯片完成的。本身芯片可以运行usb协议代码。
关于几个结构体的文章:
3、如何将cmd_vel 转为左右轮轮速
参考资料: https://blog.csdn.net/heyijia0327/article/details/41823809/ ROS 教程之 navigation : 用 move_base 控制自己的机器人(1)
rosmsg show geometry_msgs/Twist
linear.x ,linear.y,linear.z
angular.x,angular.y,angular.z .
一般是取 linear.x 线速度, angular.z 角速度。
其中linear 的x就是代表前进方向的速度,单位为m/s。angular 的z就代表机器人的绕中心旋转的角速度,单位为 弧度/s (rad/s)。
4、里程计结果转为 odom
参考资料: https://www.ncnynl.com/archives/201702/1328.html
nav_msgs::Odometry
odom.header.stamp
odom.header.frame_id
//posion
odom.pose.pose.position.x
odom.pose.pose.position.y
odom.pose.pose.position.z
odom.pose.pose.orientation
//velocity
odom.child_frame_id
odom.twist.twist.linear.x
odom.twist.twist.linear.y
odom.twist.twist.linear.z
odom.twist.angular.x
odom.twist.angular.y
odom.twist.angular.z
5、键盘如何控制机器人
参考文章:http://www.guyuehome.com/253 ROS探索总结(八)——键盘控制
6、经典机器人 Husky参考
参考文章: https://www.cnblogs.com/shangchele/p/7328490.html ROS示例----导航功能包Husky_exploration
7、一些D*参考资料
参考文章:
https://www.cnblogs.com/flyinggod/p/8782264.html Dstar Lite路径规划算法简介
https://github.com/search?l=C%2B%2B&q=D%2A+Lite&type=Repositories 算法实现
https://github.com/azampagl/robotics-d-star-lite
https://www.cnblogs.com/flyinggod/p/8671053.html 人工智能: 自动寻路算法实现(四、D、D*算法)
smartcar 系列机器人学习笔记1的更多相关文章
- java8 学习系列--NIO学习笔记
近期有点时间,决定学习下java8相关的内容: 当然了不止java8中新增的功能点,整个JDK都需要自己研究的,不过这是个漫长的过程吧,以自己的惰性来看: 不过开发中不是有时候讲究模块化开发么,那么我 ...
- ios/mac/COCOA系列 -- UIALertVIew 学习笔记
最近在学习ios开发,学习的书籍<ios7 Pragramming cookbook>,做笔记的目的以后方便查看.笔记形式是小例子,将书上的例子书写完整. UIAlertViewClass ...
- contiki-main.c 中的process系列函数学习笔记 <contiki学习笔记之六>
说明:本文依然依赖于 contiki/platform/native/contiki-main.c 文件. ---------------------------------------------- ...
- 干货 | Python进阶系列之学习笔记(二)
目录 对象 字符串 一.对象 (1)什么是对象 在python中一切都是对象,每个对象都有三个属性分别是,(id)身份,就是在内存中的地址,类型(type),是int.字符.字典(dic).列表(li ...
- Docker系列之学习笔记
一.Docker简介 1.1.Docker架构 Docker 使用客户端-服务器 (C/S) 架构模式,分为Docker守护进程和客户端,Docker 客户端,实际上是 docker 的二进制程序,D ...
- 干货 | Python进阶系列之学习笔记(四)
目录 Python条件判断 Python循环语句 Python循环控制 迭代器与生成器 异常 一.Python 条件判断 如果某些条件满足,才能做某件事情:条件不满足时,则不能做,这就是所谓的判断. ...
- AngularJS学习笔记2——AngularJS的初始化
本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...
- Netty 学习笔记(1)通信原理
前言 本文主要从 select 和 epoll 系统调用入手,来打开 Netty 的大门,从认识 Netty 的基础原理 —— I/O 多路复用模型开始. Netty 的通信原理 Netty 底层 ...
- Angular6 学习笔记——指令
angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...
随机推荐
- shell 读配置文件
今天跟同事探讨了一下 shell 脚本中对配置文件的读写问题.在此总结一下常用的配置文件的读写方式.大多数的配置文件都是以key=value形式存在的.配置项完全由键值对组成.这样的配置文件读写也是最 ...
- 设计模式-模板方法模式(the Template Method Pattern)
本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 模板方法模式简介 这是一个被用的相当广泛的一种设计模式,变体也特别多,他建立一个抽象类定义一个算 ...
- Python开发基础-Day13模块2
sys模块 sys模块提供了一系列有关Python运行环境的变量和函数. #重点记忆 sys.argv #命令行参数List,第一个元素是程序本身路径 sys.exit(n) #退出执行的程序未见,正 ...
- ES5 方法学习
Object 1. Object.getPrototypeOf(o)获取对象的prototype对象.等价于以前的o.__proto__ var o = {}; Object.getPrototype ...
- 反编译apk 修改 合成
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 反编译apk帮助文档 准备工具 dex2jar(dex转换jar工具),下载地址: ht ...
- 【BZOJ 3993】【SDOI 2015】序列统计
http://www.lydsy.com/JudgeOnline/problem.php?id=3992 这道题好难啊. 第一眼谁都能看出来是个dp,设\(f(i,j)\)表示转移到第i位时前i位的乘 ...
- CodeForces - 992D Nastya and a Game
题面在这里! 显然一段区间的 mul - sum * k = 0 才合法,然鹅我们发现sum * k 对于本题的数据来说最大才是1e18,也就是说mul必须得<=1e18. 我们不妨从这里入手, ...
- BZOJ 1877 [SDOI2009]晨跑(多条不交叉最短路)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1877 [题目大意] 找出最多有几条点不重复的从1到N的路,并且要求在满足这个条件的情况 ...
- 求n以内的质数的数量
- BUG:upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected
更换Apache扑向Nginx,刚搭建完WNMP,nginx能访问php页面 但是访问现有开发项目报错 [error] 4112#3724: *9 upstream timed out (10060: ...