正值暑假有很多的空余时间,所以打算用自己大一大二所学的知识和一些准备比赛的经验来从零开始搭建一个基于arduino的ros全向轮小车,之前准备比赛做的是差分机器人所以这次想尝试挑战一下全向移动机器人。和其他机器人一样在搭建机器人之前首先得设计好自己机器人的底盘,包括底盘的运动模型,后续都会根据模型去调整小车的一些参数,要想做好一个机器人,搭好底盘是非常重要的一步。
1.全向轮机构设计
全向轮的底盘可以是等边三角形也可以是圆形(可根据自己实际情况来定),三个轮子两两必须相差120°,一般常用的安装方式为三个轮子到底盘中心的距离要相等。
2.电机的选型
最重要的就是选择电机的扭矩和转速比,这个需要根据底盘的负载来进行选择,选择的电机如果转速比越大则扭矩就会越大,但相应的转速就会越小;电机的转速选择则要根据轮子的大小和机器人移动的速度来选择,如果是室内机器人的话速度最好在1m/s左右,速度太大了可能会失控。如果要对车轮测速的话就得选择带编码器的电机,编码器一般分为光电编码器和霍尔传感器,编码器码盘的精度则得根据主控板的处理精度来选择,像arduino mega2560这种的话可能处理的精度不会很高,像处理更高码盘的话可以使用stm32来作为主控板,这样精度会更高,但是这样程序的编写相对于arduino来说就会变得相对复杂一些,对于像我这种初学者来说选择arduino会更好一点。电机的运动是通过主控板根据PID来控制PWM输出来控制电机驱动板来控制的。
3.电机驱动板的选择
电机驱动板,目前使用的电机驱动板大部分是两路和四路电机驱动板还有少部分单路的(用的比较少了),如果是自己对单片机硬件这方面感兴趣的话可以尝试自己焊一块三路电机驱动板。我选择的是两块大功率的两路电机驱动板。
4.底盘电源的选择
电源的选择也是一个大问题,大部分自制机器人底盘都是使用LiPo电池,对于如何选择电池的容量,不仅仅得根据电机的额定电压和额定功率来选择,还得考虑电机的工作时间和底盘的负载,如果想让电机工作时间越长则就得选择容量更大的电池,而大容量电池自然体积就会更大,这样一来又增大了底盘的负载,就又回到了电机选择那,所以选择合适的锂电池是一个比较麻烦的问题,电池的工作时间可以根据电池的额定功率和电机的额定功率来计算。
5.底盘控制板的选择
控制电机驱动板的控制板推荐使用arduino mega2560因为这块板子接口很多足够使用了(54路数字输入/输出口),条件好的话可以选择32控制板。
6.Ros主控板的选择
底盘搭载ros系统的主控板可以是树莓派,minipc,Tx2,nano等等,如果是像经济实惠的话可以选择树莓派,在树莓派上运行ros系统,我这里选择的是minipc这相对于树莓派来说性能要好一点,在后续的机器人搭建过程中可能会顺利一点。
7.底盘的其他功能部件
如果说向给小车底盘加一些其他功能的话可以在底盘上加一些传感器,如红外传感器,超声波传感器,防撞传感器,姿态传感器,温度传感器等等,环境类传感器的话可以与语音模块搭配使用,让机器人可以随时播报环境情况。
底盘的硬件选择大致就是这些了,之后就是底盘的搭建和调试了,后续还会进行后续步骤的更新。