说明
随便写写,整理思绪,并无他意
在Ubuntu上远程连接树莓派,可采用如下办法:
ssh [用户名]@[IP]
然后输入密码
略
源码安装
1.安装源:
sudo sh - c ' . /etc/ lsb- release && echo "deb ht tp: / /mi r rors.ustc.edu.cn/ ros/ubuntu/$DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
2.增加key:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
3.更新:
sudo apt-get update
4.安装,这里介绍Desktop-Full安装:
sudo apt-get install ros-kinetic-desktop-full
5.解决依赖:
sudo rosdep init
rosdep update
6.环境设置:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
1.安装turtlebot3依赖包,新建终端(Ctrl+Alt+T),复制输入如下代码:
sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard roskinetic-
laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserialarduino
ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kineticrosserial-
msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf roskinetic-
xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping
ros-kinetic-navigation
2.安装turtlebot3源码:
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
cd ~/catkin_ws && catkin_make
如果catkin_make完成没有任何错误,PC使用TurtleBot3的准备已完成。
说明
• ROS需要IP地址通过无线在turtlebot3和远程PC之间进行通信。
• 本节介绍如何设置Turtlebot3的主从模式
1.分别在turtlebot3和PC,打开终端(Ctrl+Alt+T),执行如下命令安装chrony:
sudo apt-get install chrony
2.分别在turtlebot3和PC,执行如下命令安装ntpdate:
sudo apt-get install ntpdate
3.分别在turtlebot3和PC,执行如下命令同步时间:
sudo ntpdate ntp.ubuntu.com
4.分别在turtlebot3和PC,执行如下命令检测时间是否同步:
date
1.分别在turtlebot和PC,打开终端(Ctrl+Alt+T),执行如下命令获得对应的IP地址:
ifconfig
2.执行如下命令打开script文档,按照上述图片所给格式修改IP地址:
gedit ~/.bashrc
3.关闭Script⽂文档,执⾏行行如下命令让环境⽣生效:
source ~/.bashrc
说明
启动前请先进行网络设置,确保PC主机与Turtlebot3之间能正确通信。
【我将此处的两条指令称之为启动指令,后面会经常用到】
1.在PC主机上,打开终端(Ctrl+Alt+T),运行ROScore指令:
roscore
2.在TurtleBot3上,打开终端(Ctrl+Alt+T),运⾏行行启动指令:
roslaunch turtlebot3_bringup turtlebot3_robot.launch
若安装及启动成功,则终端进程无报错,LDS激光雷达正常旋转。
【特别注意】
若出现报错:ros “is neither a launch file in package”…
解决办法:
cd catkin_wc/
source devel/setup.bash
在PC主机上,打开终端(Ctrl+Alt+T),运行键盘控制指令:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
运行成功后,W 前进,X 后退,A 左转,D 右转,S 停止
说明
同步定位与地图构建(Simultaneous localization and mapping)是一种概念:希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的。
1.先运行 启动指令
2.在PC主机上,新建终端(Ctrl+Alt+T),然后运行SLAM启动文件:
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_slam turtlebot3_slam.launch
3.在PC主机上,新建终端(Ctrl+Alt+T),启动Rviz可视化软件观察建图状态:
rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
4.在PC主机上,新建终端(Ctrl+Alt+T),运行键盘控制指令,控制Turtlebot3移动建图:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
5.建图完成后将地图保存至PC主机本地,新建终端,运行下列命令
rosrun map_server map_saver -f ~/map
说明
• 导航技术的主要用途是使机器人进入期望的位置。
• 导航中使用的是上一步SLAM建图出的地图数据。
1.先运行 启动指令
2.在PC主机上,新建终端(Ctrl+Alt+T),启动导航文件:
export TURTLEBOT3_MODEL = burger
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=/home/map.yaml
【注意】map_file 需修改为自己上一步保存的
3.在PC主机上,新建终端(Ctrl+Alt+T),启动Rviz可视化软件:
rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
• 在开始导航之前,TurtleBot3应该知道它的位置和姿势,在PC主机上的Rviz可视化软件中,请按照说明进行操作。
• 点击2D Pose Estimate按钮
• 通过单击并拖动地图上的方向来设置地图上的大致位置。
注:给出的箭头意味着TurtleBot3的初始位置及⽅方向。激光雷达将在地图上的相对位置进行绘制。如果显示不正确,请重复上述过程。
• 在PC主机上的Rviz可视化软件中发送目标位置,Turtlebot3将自动导航前往:
• 点击 2D Nav Goal按钮
• 点击地图中的目标位置,拖动箭头指向期望Turtlebot3到达位置后朝向的方向。
注:若前往目标位置的路径无法规划将导致导航失败。要使机器人立即停止前进,请重新发送TurtleBot3的当前位置为目标位置。
1.从命令行运行raspi-config 配置软件
sudo raspi-config
2.选择Interface Options
3.选择Camera
4.选择 是 ,然后选择Finish,重启树莓派。
5.测试摄像头,运行:
raspistill -o cam.jpg
在当前目录下会保存一张cam.jpg 的照片,检查是否成功。
roscore
2.[TurtleBot SBC] 新终端,启动相机
roslaunch turtlebot3_autorace_camera turtlebot3_autorace_camera_pi.launch
3.[Remote PC] 新终端,浏览图像界面
qt_image_view
选择topic:/camera/image/compressed 或/camera/image/ 如果正常则可以看到图像
5. [Remote PC] 新终端,打开配置界面
rosrun rqt_reconfigure rqt_reconfigure
• 选择camera,调整参数值,使相机显示干净,足够明亮的图像。 之后,将每个值覆盖到树莓派上 turtlebot3_autorace_camera/calibration/camera_calibration 文件夹中camera.yaml 里的参数值
• 下次启动即会使用新的参数值,以达到更好的显示效果。
• 若不能正常载入参数,可以尝试修改树莓上的 raspicam_node/cfg 文件夹中的Camera.cfg内的参数值