本文叙述了如何使用笔记本电脑作为Romote PC远程控制Turtlebot3-Burger运动,涉及到树莓派的镜像烧录、树莓派中安装ROS、SSH远程控制等问题。
1. 在SD卡中烧录镜像
(0)工具准备
#所需软件和文件
链接:https://pan.baidu.com/s/1wsjUHATsOVPzfjFdIG5AxA
提取码:oa1l
(1)格式化SD卡
使用SDFormatter工具格式化SD卡
Dvive处选择SD卡盘符,点击“格式化”即可格式化成功
(2)烧录ubuntu mate镜像
使用Win32DiskImager烧录准备好的ubuntu mate镜像
#ubuntu mate镜像
链接:https://pan.baidu.com/s/17LOz2kfc-DUHVXRXw3yAiA
提取码:h4lp
点击“Write”即可,成功后显示“write successful”窗口
(3)准备远程文件
将ssh文件和wpa_supplicant.conf文件复制到树莓派SD卡中,其中ssh文件为空,wpa_supplicant.conf文件需修改网络账户密码,内容如下:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="XXX"
psk="XXX"
priority=5
}
network={
ssid="XXX"
psk="XXX"
priority=4
}
随后将SD卡插回树莓派。
2. 在ubuntu mate中安装ROS及其他设置
(0)获取root权限
sudo passwd root
(1)安装源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
或来自中国的源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
(2)增加key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
(3)更新
sudo apt-get update
(4)安装Desktop-Full
sudo apt-get install ros-kinetic-desktop-full
(5)解决依赖
sudo rosdep init
rosdep update
此处会出现网络问题的报错,参考:
sudo rosdep init 出现 ERROR: cannot download default sources list from:
(6)环境设置
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
(7)安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
(8)安装Turtlebot3依赖包
sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-interactive-markers
(9)安装Turtlebot3源码
mkdir -p ~/catkin_ws_turtlebot3/src/
cd ~/catkin_ws/src/
catkin_init_workspace
cd ..
catkin_make
cd src
git clone https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ..
catkin_make
(10)安装依赖包
sudo apt-get install ros-kinetic-rosserial-python ros-kinetic-tf
(11)添加模型声明
echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
(12)环境设置
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
(13)USB设置(以下允许将USB端口用于没有root权限的OpenCR板)
rosrun turtlebot3_bringup create_udev_rules
3. 远程PC激光雷达驱动安装
sudo apt-get install ros-kinetic-hls-lfcd-lds-driver
4. 网络配置
(1)时间同步
分别在turtlebot3和PC,打开终端(Ctrl+Alt+T),执行如下命令安装chrony:
sudo apt-get install chrony
分别在turtlebot3和PC,执行如下命令安装ntpdate:
sudo apt-get install ntpdate
分别在turtlebot3和PC,执行如下命令同步时间:
sudo ntpdate ntp.ubuntu.com
分别在turtlebot3和PC,执行如下命令检测时间是否同步:
date
(2)网络配置
将机器人和PC连接同一无线网,使其处于同一局域网下,并都安装ssh
sudo apt-get install openssh-server
机器人端启动ssh
service ssh start
#运行以下命令后出现sshd即已启动ssh
ssh localhost
PC端终端输入:
ssh 树莓派用户名@树莓派ip地址
4. 远程控制Turtlebot3
(1)在PC主机上运行roscore
roscore
(2)启动机器人
roslaunch turtlebot3_bringup turtlebot3_robot.launch
若安装及启动成功,则终端进程无报错,LDS激光雷达正常旋转。
(3)键盘远程控制
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
至此,机器人可正常前后左右运动