从零开始的ROS小车2

硬件:

  • 树莓派3b
  • 带编码器的减速电机(我的型号未知,但是相关参数可以手动测量观察)。
  • Arduino MEGA2560 开发板一块:用于控制电机驱动,接收上位机指令。
  • 蓝宙电子双路控制板,网上一般使用L298N,其实都大同小异。
  • lidar激光雷达
  • 3S电池
  • 稳压模块

搭建

底盘及马达等的安装这里不做过多介绍,这里我仅仅介绍我的做法,你可以参考创客智造的相关介绍。

1.编码器的连接:编码器我使用的是双通道霍尔效应编码器,它分AB两相再加上GND,Vcc共4个接口。Arduino MEGA2560 有中断引脚,可以很方便的使用编码器。(中断引脚 2,3,21,20,19,18 中断号分别对应0~5)

这里我仅使用2,3,19,18引脚。这里要和之后的代码对应,我这里是左电机编码器的A相接2,B相接3。右电机编码器的A相接18,B相接19。只有这样接,我的才能正常工作。具体需要自己尝试。

马达控制需要根据你所选择的驱动板来连接,这里不做过多介绍。

准备

需要python-serial功能包

sudo apt-get install python-serial

你的Arduino很可能是通过接口/dev/ttyACM# 或者 /dev/ttyUSB#来连接你的系统的。这里的#可以是0,1,2等数字,当然这根据你连接的设备数量而定。得到这个数字#最简单的方式就是拔掉所有的USB设备,然后插上你的Arduino,然后运行下面这个命令:

ls /dev/ttyACM*
或
ls /dev/ttyUSB*

总会有一个返回需要的信息 你可以看到:

运行:
ls /dev/ttyACM*
会显示下面
/dev/ttyACM0

然后你需要确保对这个接口有访问的权限。运行:

ls -l /dev/ttyACM0

会看到下面 只有 root dialout 组才有这个接口的访问权限
crw-rw---- 1 root dialout 166, 0 8月  10 11:54 /dev/ttyACM0

 可以运行这个命令来将你的用户加入dialout组:

sudo usermod -a -G dialout 你的用户名

之后再注销一下,当你执行完上述操作后,可以运行:

groups

观察你的用户有么有加入dialout组(在那一串中找到dialout)

获得ros_arduino_bridge功能包


git clone https://github.com/hbrobotics/ros_arduino_bridge.git

之后为它创建一个工作空间 ,将他移动到src目录(记住catkin_make)

参考链接:https://blog.csdn.net/github_30605157/article/details/51344150/

猜你喜欢

转载自blog.csdn.net/qq_29735067/article/details/81558670