上位机环境搭建基本应该没什么难的,装一个Ubuntu16.04,然后根据ros官方指导来操作即可
http://wiki.ros.org/kinetic/Installation/Ubuntu
树莓派环境搭建还是遇到点麻烦
根据网上的说法,ros环境和Ubuntu环境必须要搭配,不然安装会有错误,我购买的小R SLAM机器人,默认搭建的环境ROS版本为Kinetic,所以我树莓派应该安装Ubuntu16.04,
但是我手上的树莓派硬件为3b+,把默认的系统https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz烧录进去无法正常安装,网上把此现象叫做彩虹屏,即HDMI连接出现一个彩色页面,但无法操作,解决步骤为https://wiki.ubuntu.com/ARM/RaspberryPi
wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-bootloader_1.20180417-1_armhf.deb
dpkg-deb -x raspberrypi-bootloader_1.20180417-1_armhf.deb /tmp/pi-bootloader
sudo mount /dev/XXX1 /mnt
sudo cp /tmp/pi-bootloader/boot/* /mnt
这样可以正常安装,并通过HDMI显示桌面
安装的时候需要注意一点,如果要和买回的小R机器人的程序兼容的话,需要把用户名设定为rikirobot,因为卖家给的程序的环境变量中此路径是写死的,要修改会比较麻烦
但装好之后,依然存在一个问题,是有线网卡和无线网卡均没有正常驱动,我尝试解决,但没有找到完美的方案,有时候把wifi驱动起来了但HDMI又没有界面了,所以我妥协为外接了一个USB wifi无线网卡
装好Ubuntu系统之后开始安装ROS,步骤也和上位机一样,这里把官方的指令再粘贴一遍
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update
sudo apt-get install ros-kinetic-ros-base
sudo rosdep init
rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
这里ROS基本的环境变量就搭建好了
然后就是配置小R机器人自有的程序,把ros-core1903.zip 复制到 /home/rikirobot 目录下,unzip 解压出 catkin_ws 目录,执行如下命令
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo usermod -aG dialout $USER
硬件接好之后,如果要按照教程,比如进行键盘控制的话,还需要执行如下指令
sudo apt-get install -y ros-kinetic-rosserial
sudo apt-get install -y ros-kinetic-navigation
sudo apt-get install -y ros-kinetic-teleop-twist-keyboard
sudo ln -s /dev/ttyUSB0 /dev/xrbase
这样一个最基本的系统就搭建好了,如果要键盘控制小车运动的话,可以在终端执行
roslaunch xrrobot bringup.launch
另起一个终端,执行
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
按照提示,按键盘的i,j,,,等按键,即可控制小车的运动
————————————————————————————————————
小车的运动是由STM32控制的,USB口连接上控制板,会出现两个串口,即/dev/serial 和 /dev/ttyUSB0,而和控制板通信是通过/dev/xrbase,其仅是 /dev/ttyUSB0 的软链接