总体框架:

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*算法)

最新文章

  1. PHP_环境配置_python脚本_2017
  2. Scala编程--基本类型和操作
  3. webpack的几个使用方法
  4. android 键盘遮挡 父布局上滚解决
  5. mybatis generate 自动生成 entity dao 和 xml 文件
  6. DB Create and Insert
  7. iOS XMPP Framework 中文概述
  8. Wooden Sticks(杭州电1051)
  9. int a[5]={1,2,3,4,5};printf("%d\n", *((int*)(&a+1)-2);
  10. base库--- 一个应用JS
  11. js原生设计模式——12装饰者模式
  12. zoj1610线段树区间覆盖
  13. iOS9新特性之常见关键字、泛型
  14. eclipse创建Maven web项目的步骤
  15. 【C#】Convert.ToInt32、(int)和int.Parse三者的区别
  16. Socket传输简单的信息以及粘包问题的解决
  17. python学习-类属性和实例属性
  18. BZOJ2465: [中山市选2009]小球
  19. 重整ADO.NET连接池相关资料
  20. python dict sorted 排序

热门文章

  1. 【Numpy】python机器学习包Numpy基础知识学习
  2. WAR/EAR 概念
  3. 【BZOJ 2186】 2186: [Sdoi2008]沙拉公主的困惑 (欧拉筛,线性求逆元)
  4. JZYZOJ 1375 双亲数 莫比乌斯反演
  5. [BZOJ 2668] 交换棋子
  6. sum nowcode
  7. BZOJ 1098 [POI2007]办公楼biu(反向图bfs+并查集优化)
  8. I/O多路复用机制:epoll
  9. 8VC Venture Cup 2016 - Elimination Round E. Simple Skewness 暴力+二分
  10. ArcGIS 10.2 三维分析工具箱部分工具不能用