我之前买的ros小车是单独买的底板,以为随便一个树莓派就可以,因为我以前有一个树莓派3B,后来买了单独的小车之后,发现只能使用树莓派4B,然后又单独买了一个树莓派4B,给装上镜像,安装ros-melodic-desktop-full。经过各种摸索,终于能让小车开动了。
最开始的时候,是直接把官方提供的launch文件拷贝到catkin_ws相关目录,然后运行,发现运行roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch的时候总是报错,cannot launch node of type [turn_on_wheeltec_robot/wheeltec_robot_node]。当时一直很纳闷,以为是串口问题,就一直在那运行wheeltec_udev.sh,发现最后wheeltec_controller只能对应/dev/ttyACM0,wheeltec_lidar总是对应/dev/ttyUSB0。但是根据指导资料上好像需要修改0001端口为0002:
其实呢,这个串口号根本不用修改。
第二天,就想着把官方给的所有launch包给编译一下,然后又遇到了很多很多问题,大部分问题参照:https://blog.csdn.net/zsq122021821/article/details/128316043,都可以解决,其他问题,根据关键字搜索也能解决,比如缺少pcap.h,找到libpcap的源码,然后放到树莓派上,进入相关目录执行./configure,然后把对应的头文件考到/usr/include目录即可。
全部编译完成,我们在运行之前,还是需要运行串口修改脚本src\turn_on_wheeltec_robot\scripts\wheeltec_udev.sh,官方给的脚本不用修改任何东西,包括串口号也不需要使用工具CP21xxCustomizationUtility修改。
运行脚本修改相关串口映射之后,再重新插拔串口线。
我本机的串口映射:
最后运行:
roslaunch turn_on_wheeltec_robot turn_on_wheeltec_robot.launch
没有报错,打印如下:
接着运行键盘控制底板的启动文件:
roslaunch wheeltec_robot_rc keyboard_teleop.launch
打印信息如下所示:
启动不报错,串口开启,就可以通过键盘控制小车移动了,下面是一个键盘控制小车运动的视频:
ros
这里通过键盘控制小车移动,只是用到了树莓派,没有开启虚拟机。小车控制板打开,通过电池供电,然后给树莓派供电,树莓派发送指令控制底板运动。
树莓派使用无线网络,和本机在一个局域网,本机通过putty连接树莓派,最后运行启动相关指令。树莓派使用无线自动连接,设置如下:
制作镜像之后,在boot目录加入wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CNnetwork={ssid="JCYJYF"psk="******"key_mgmt=WPA-PSK
}
其中ssid为wifi名称,psk为wifi密码,根据实际情况设置。
后面树莓派启动之后,就会自动连接wifi,偶尔情况树莓派会抽风,并不是每次都能自动连接,断电重启几次就好了。