总体框架:

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的更多相关文章

  1. java8 学习系列--NIO学习笔记

    近期有点时间,决定学习下java8相关的内容: 当然了不止java8中新增的功能点,整个JDK都需要自己研究的,不过这是个漫长的过程吧,以自己的惰性来看: 不过开发中不是有时候讲究模块化开发么,那么我 ...

  2. ios/mac/COCOA系列 -- UIALertVIew 学习笔记

    最近在学习ios开发,学习的书籍<ios7 Pragramming cookbook>,做笔记的目的以后方便查看.笔记形式是小例子,将书上的例子书写完整. UIAlertViewClass ...

  3. contiki-main.c 中的process系列函数学习笔记 <contiki学习笔记之六>

    说明:本文依然依赖于 contiki/platform/native/contiki-main.c 文件. ---------------------------------------------- ...

  4. 干货 | Python进阶系列之学习笔记(二)

    目录 对象 字符串 一.对象 (1)什么是对象 在python中一切都是对象,每个对象都有三个属性分别是,(id)身份,就是在内存中的地址,类型(type),是int.字符.字典(dic).列表(li ...

  5. Docker系列之学习笔记

    一.Docker简介 1.1.Docker架构 Docker 使用客户端-服务器 (C/S) 架构模式,分为Docker守护进程和客户端,Docker 客户端,实际上是 docker 的二进制程序,D ...

  6. 干货 | Python进阶系列之学习笔记(四)

    目录 Python条件判断 Python循环语句 Python循环控制 迭代器与生成器 异常 一.Python 条件判断 如果某些条件满足,才能做某件事情:条件不满足时,则不能做,这就是所谓的判断. ...

  7. AngularJS学习笔记2——AngularJS的初始化

    本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...

  8. Netty 学习笔记(1)通信原理

    前言 本文主要从 select 和 epoll 系统调用入手,来打开 Netty 的大门,从认识 Netty 的基础原理 —— I/O 多路复用模型开始.   Netty 的通信原理 Netty 底层 ...

  9. Angular6 学习笔记——指令

    angular6.x系列的学习笔记记录,仍在不断完善中,学习地址: https://www.angular.cn/guide/template-syntax http://www.ngfans.net ...

随机推荐

  1. Xamarin Android真机测试报错

    Xamarin Android真机测试报错   Xamarin Android真机测试报错,错误信息为INSTALL_CANCELLED_BY_USER.出现这个错误,通常都是真机上开发者选项设置错误 ...

  2. [BZOJ4832]抵制克苏恩(概率期望DP)

    方法一:倒推,最常规的期望DP.f[i][a][b][c]表示还要再攻击k次,目前三种随从个数分别为a,b,c的期望攻击英雄次数,直接转移即可. #include<cstdio> #inc ...

  3. 【点分治】【FFT】CDOJ1562 Amaz1ng Prime

    统计路径的时候,显然用母函数的思想,可以用FFT来方便统计. 注意!要减去路径两个端点相同的情况!然后再除以二!这样防止重复. 还有就是说啊,点分治的正确姿势还是应该用所有子树的答案减去各个子树分别的 ...

  4. python基础之带参数装饰器和迭代器

    带参数的装饰器:就是在原装饰器外再包一层函数 def auth(driver='file'): def auth2(func): def wrapper(*args,**kwargs): name=i ...

  5. php分布式缓存系统 Memcached 入门

    Memcached 是一个分布式的缓存系统, 但是 Memcachd 到底是什么意思,有什么作用呢?缓存一般用来保存一些经常被存取的数据和资源(例如:浏览器会将访问过的网页会话缓存起来),因为通过缓存 ...

  6. Apache 优化配置10条建议

    之前VPS使用的是默认的Apache配置,感觉还行,不过随着博客的人流量上升,显然这种配置无法满足需求了:下面是Apache官方手册中给出的几条优化配置建议,笔者将其整理出来,对Apache服务器的运 ...

  7. IOS Reachability判断所请求服务器是否超时?

    开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息.如果没有处理它们,是不会通过Apple的审查的. Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法. ...

  8. 关于XUtils框架细解

    感谢关注xUitls的网友最近一段时间给予的热心反馈,xUtils近期做了很多细节优化之后,功能和api已经稳定. 1.9.6主要更新内容:Bitmap加载动画有时重复出现的问题修复,加载过程优化; ...

  9. Ubuntu下轻松安装virtualbox

    转自:http://blog.csdn.net/flm2003/article/details/8168628 以下假设你的Ubuntu系统版本为11.10的64位版本,进行如下操作: 1.到http ...

  10. spring webflow

    最近看了一段时间的spring-webflow,说一下自己的见解吧. 首先说一下关于spring-webflow的技术文档太少了,网上就只有一个入门篇,讲的比较笼统,但还是推荐一下, Spring W ...