PC端:
TurtleBot3:
树莓派3B+ + 官网e-Manual提供的TurtleBot3 Raspbian image for Raspberry Pi 3B+镜像(基于Ubuntu16.04,已包含ROS Kinetic及一些turtlebot3需用的packages)
起初为了树莓派和PC的Ubuntu版本一致,所以安装了官网e-Manual提供的 Ubuntu 18.04.3 Preinstalled Server ARM64 for Raspberry Pi3,没有图形化界面,配置起来比较繁琐,e-Manual中也没有对应此版本的教程,需根据Kinetic中的教程进行修改(比如命令中包含Kinetic时,应改为Melodic),后面因为在“8.Autonomous Driving”中无法enable摄像头而放弃。此文最后附上了此系统下调试时的一些爬坑笔记,若使用此系统且还想试一试的同学可参考一下,若在8.2.1中能成功开启摄像头还烦请指教一下。
后来重新使用e-Manual提供的系统镜像进行配置,只能说真香,可省去很多步骤,主要是稳定。
经过调试发现PC和树莓派Ubuntu、ROS版本不同也可。
主要参考(本文的debug也是针对此网站给出的e-Manual。)
其他可参考:
提示:我直接写e-manual中的章节号,便于定位,非笔记章节号。
3. Quick Start Guide
在设置3.1 PC setup 和3.2 SBC Setup时,注意要选对上面的ROS版本,Ubuntu18.04对应ROS Melodic;Ubuntu16.04对应ROS Kinetic。尤其PC端和树莓派端Ubuntu版本不一致时,注意切换。
3.1.2. Install ROS
wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh
在运行此步时,可能报错,原因是raw.githubusercontent.com这个网站是外网,在ROS的安装和使用中经常遇到,解决方法如下:
方法1:科学上网
方法2:连接手机热点,多执行几次,有概率可解决。
方法3:修改hosts
sudo nano /etc/hosts
在最下面添加:
151.101.84.133 raw.githubusercontent.com
保存后重新运行指令即可。
当然此处也可按照下面的提示,直接使用官方的ROS安装,但ROS安装的最后一步rosdep init的时候也会出现这个问题,仍需上述方法来解决。
3.1.4. Install TurtleBot3 Packages
如果想要新建workspace,先无需运行apt-get install,否则还需运行下面Click here to expand中的spt-get remove。
3.1.6. Network Configuration
此处图片并非要操作什么,只是示意,此处也无需设置TurtleBot,也可忽略此处直接看后面步骤操作。
3.2.3.3. SSH
sudo ssh pi@192.168.x.x
无需大括号,必要时加sudo。
固定IP的方法
此处插播一条固定IP的方法,否则每次PC端和树莓派端关机重启连接wifi,会被动态分配不同的IP,导致ssh失效,还需重新查询,并更改.bashrc中的IP。
第一种情况:PC端和树莓派端在第三端路由器发射出来的局域网内
第二种情况:PC端发热点,树莓派连接到PC端的热点上。
3.2.3.8 设置IP
注意事项见上述3.1.6
3.3.7 验证OpenCR
3.5.1. Run roscore
若要运行树莓派中的ROS命令,则必须保持PC端的roscore是启动状态。
3.6.1.1.1. Keyboard Teleoperation
运行teleop应同时运行树莓派中的bringup
3.6.1.2. RC100
若使用ROBOTIS RC100手柄(只有TurtleBot3 Waffle Pi里面有带),可无需运行任何指令,因为手柄是通过蓝牙和OpenRC直接通讯,不经过树莓派。通讯指令是在3.3中上传到OpenCR中的。
4.2.SLAM
export TURTLEBOT3_MODEL=${
TB3_MODEL}
无需每次都要输入此句,因为已经写进.bashrc中了,可打开.bashrc检查一下,如没有运行一次即可,无需重复。
4.2.3 Mapping
建图时,受雷达传感器性能的限制,不要让机器人运动太快,也不要原地快速转动,容易造成地图混乱。
4.5.1 Save Map
如果在前面3.14中建立了新的workspace,建议在此处将map的储存路径改为自己的ws中,便于管理,名字也可根据实际环境更改。比如:
mkdir -p ~/catkin_ws/map
rosrun map_server map_saver -f ~/catkin_ws/map/labmap
但后面5.1.3中运行navigation时应注意修改map.yaml的路径和名字
5.2.&5.3. Navigation
表述的文字有点多,白话说一下:
6.1.2 Launch Simulation World
三种机型和三种地图可任意组合,比如使用的机型为burger,仍可roslaunch World和House仿真环境,但是第一次打开House会特别慢,可先用Empty和World来尝试,尤其是电脑配置较低时。
6.2. SLAM Simulation
此处和4.2一样,无需每次都要运行export,除非想要更换机器人模型。
提示:上述提到过的坑在Ubuntu18.04中基本都有,就不重述了,下面是一些只在Ubuntu18.04中遇到的坑。
3.2.3.5 配置WIFI
Ubuntu 18.04.3 Preinstalled Server ARM64 for Raspberry Pi3 只能在tty中调试,没有图形化界面,所以在连接ssh前的配置wifi需要自己手动打代码。
首先需一字不差的按照教程给的代码编辑,代码的层级也要注意,每个层级隔两个空格,不能用tab,只能敲空格。还有冒号后的空格一定要有。
wifi name和password是带有双引号的,把里面的文字换成wifi名称和密码即可。例如:
access-points:
"wifi":
password: "12345678"
此步之后在运行第6步之前,需运行以下命令:
sudo netplan generate #检查代码格式是否正确
sudo netplan apply #应用
ifconfig #此时即可查询wifi设置是否成功,以及wlan0对应的IP
4. SLAM
从这里开始教程中就不支持Melodic了,但是按照Kinetic下面的教程进行还能继续。
8.1.2. Install Autorace Packages
sudo apt-get install ros-kinetic-image-transport ros-kinetic-cv-bridge ros-kinetic-vision-opencv python-opencv libopencv-dev ros-kinetic-image-proc
此步安装可能遇到python-opencv报错,但是更改一下python版本,比如python3-opencv,可运行,但是不知道这样是否正确。
8.2.1 Camera Imaging Calibration
此处打不开摄像头,网上查了一些,都是在可视化界面中的操作,可是此版本系统没有可视化界面,所以进行不下去了,如有大佬有办法解决,请告知,感谢!
按照Robotis官网提供的e-Manual调试的坑目前就只发现这么多,如果再有什么发现可以交流。本人Linux、ROS均为初学,若解决办法错误或者有更好的办法,欢迎指教。