准备:下载Ubuntu20.04,网线一根,路由器设置 2.4G、5G 双频段发射
一、PC 端在ubuntu20.04下安装ROS2 Galactic(如已安装可跳过)
终端输入:
wget http://fishros.com/install -O fishros && bash fishros
安装成功后可以尝试一些示例。在一个终端中,运行 C++:
ros2 run demo_nodes_cpp talker
在另一个终端源中,运行 Python:
ros2 run demo_nodes_py listener
应该出现talker 在终端显示它正在发布消息,并且listener 在终端显示我听到了这些消息。这验证了 C++和 Python API 是否正常工作。
二、连接机器人
2.1 自主充电开机:
拿出充电桩将机器放入充电桩中,机器人进入自主充电,下方按纽会发出白光且伴随声音,这意味机器人已开始启动。
开机可能出现的情况:led屏幕与信号灯均不亮的情况如图1。
解决方法1:离开充电桩,长按关机键关机,过两分钟再次开机,可多次尝试直至led与信号灯正常亮起。
解决方法2:有线连接后,在树莓派终端输入sudo systemctl restart turtlebot4。
五个指示灯中通讯灯和电池指示灯不亮、电池电量指示为 0如图2。
图 1
图 2 正常情况
2.2 安装相关依赖
$ sudo apt update && sudo apt install -y \
build-essential \
cmake \
git \
python3-colcon-common-extensions \
python3-flake8 \
python3-pip \
python3-pytest-cov \
python3-rosdep \
python3-setuptools \
python3-vcstool \
wget
##添加CycloneDDS配置
$ echo "export CYCLONEDDS_URI='<CycloneDDS><Domain><General><DontRoute>true</></></></>'" >> ~/.bashrc
##apt安装相关包
$ sudo apt update
$ sudo apt install ros-galactic-turtlebot4-description \
ros-galactic-turtlebot4-msgs \
ros-galactic-turtlebot4-navigation \
ros-galactic-turtlebot4-node \
ros-galactic-turtlebot4-robot \
ros-galactic-turtlebot4-desktop \
ros-galactic-turtlebot4-simulator \
ros-galactic-irobot-create-nodes
##源码安装相关包
$ mkdir -p ~/ros2_tb4_ws/src
$ cd ~/ros2_tb4_ws/src
$ git clone -b galactic https://ghproxy.com/https://github.com/turtlebot/turtlebot4.git
$ git clone -b galactic https://ghproxy.com/https://github.com/iRobotEducation/create3_sim.git
$ git clone -b galactic https://ghproxy.com/https://github.com/iRobotEducation/irobot_create_msgs.git
$ git clone -b galactic https://ghproxy.com/https://github.com/turtlebot/turtlebot4_robot.git
$ git clone -b main https://ghproxy.com/https://github.com/luxonis/depthai-ros
$ git clone -b main https://ghproxy.com/https://github.com/luxonis/depthai-ros-examples.git
$ git clone -b galactic https://ghproxy.com/https://github.com/turtlebot/turtlebot4_desktop.git
$ git clone -b galactic https://ghproxy.com/https://github.com/turtlebot/turtlebot4_simulator.git
$ cd ~/ros2_tb4_ws
$ rosdep install --from-path src -yi
$ source /opt/ros/galactic/setup.bash
$ colcon build --symlink-install
$ echo "source ~/ros2_tb4_ws/install/local_setup.bash" >> ~/.bashrc
2.3 网络连接
2.3.1 用户PC连接路由器
路由器插电,用户 PC 连接路由器 5G 频段网络如果路由器还未设置双频段发射,则在连接后转入路由器登录页面进行设置。
图 3 设置路由器
注意不要勾选 5G 优选,会使得频段混合发射,连接后则会出现下图所示的情况。
图 4 连接混合频段会出现ip显示但是两个指示灯依旧不亮且电池电量指示为0
2.3.2 用户 PC 使用网线连接 TB4 的树莓派
2图 5 使用网线连接计算机和tb4的树莓派
设置用户 PC 有线网固定IP 为 192.168.185.5
图 6 设置pc有线网固定ip
用户 PC 开终端输入 ssh ubuntu@192.168.185.3,密码是 turtlebot4
图 7 有线ssh进树莓派
(树莓派设置与PC相同网络)在树莓派的终端输入
sudo wifi.sh -s 'wifi名称' -p 'wifi密码' && sudo reboot
图 8 给树莓派联网
等待树莓派重启,用户PC 再开终端输入ssh ubuntu@192.168.185.3,密码是turtlebot4(网线还未拔出,还可继续用有线 ssh)
在树莓派的终端输入 ifconfig,wlan0 有IP 地址即可,记录这个 ip
(即树莓派的ip地址)
图 9 树莓派查看无线ip
在用户 PC 终端输入 ssh ubuntu@ip,这里的 ip 就是上一步记录下来的 ip,ssh 能进入即可无线连接,用户与树莓派处于同一网络。
2.3.3 配置Create3底座网络
按住 Create3 灯环两边的按钮,直至灯环变蓝色,用户 PC 搜索以create 开头的wifi 并连接。
图 10 连接到creat3的WiFi
在用户 PC 浏览器中进入 192.168.10.1
点击 connect 页面,在下方输入自己所用路由器 2.4G 频段网络的名称及密码,其他默认即可。
图 11 creat3连接2.4G频段网络
连接成功后灯环灯闪一下黄色变白色,连接失败灯环会闪黄色。
图 12 连接网络灯环连接状态
以上联网步骤操作均完成后, 可通过查看路由器网站地址判断是否树莓派与create3底座均在同一局域网中,注意底座需要连接2.4G频段网络
图 13 查看树莓派与底座是否均联网
3.实机测试
3.1 启动键盘控制程序
ros2 run teleop_twist_keyboard teleop_twist_keyboard
注意:TB4的底盘不支持持续后退操作
- 对于配有手柄的标准版,可以手柄连接控制移动
- 联网后标准版五个指示灯均亮起,ui 面板上显示 ip 和电量指示示数,也可以按按钮 3、4 上下进行菜单选择,1 是选择,2 是返回。
图 14 成功联网之后的面板
3.2 A1激光雷达检测
ros2 launch turtlebot4_viz view_model.launch.py
图 15 查看模型及传感器数据
3.3 OAK深度相机检测
ros2 launch turtlebot4_viz view_model.launch.py
图 16 查看OAK相机所拍摄画面
3.4 turtlebot4-SLAM
3.4.1 同步建图
启动同步建图
ros2 launch turtlebot4_navigation slam_sync.launch.py
再开终端,启动可视化界面
ros2 launch turtlebot4_viz view_robot.launch.py
再开终端,启动键盘控制
ros2 run teleop_twist_keyboard teleop_twist_keyboard
图 17 slam与rviz扫描机器人周围环境
注:周围红黑部分表示激光雷达所扫描的障碍物
控制机器人移动开辟地图
保存地图,这将生成map_name.yaml 和 map_name.pgm文件
ros2 run nav2_map_server map_saver_cli -f map
查看生成的地图
eog ~/map_name.pgm
如果没有地图输出,在终端输入
ros2 launch turtlebot4_bringup rplidar.launch.py
3.4.2 异步建图
启动异步建图
ros2 launch turtlebot4_navigation slam_async.launch.py
再开终端,启动可视化界面
ros2 launch turtlebot4_viz view_robot.launch.py
再开终端,启动键盘控制
ros2 run teleop_twist_keyboard teleop_twist_keyboard
保存地图,这将生成map_name.yaml 和 map_name.pgm文件
ros2 run nav2_map_server map_saver_cli -f map
查看生成的地图
eog ~/map_name.pgm
3.4.3 自主导航
运行导航程序,map.yaml为加载的地图名。
ros2 launch turtlebot4_navigation nav_bringup.launch.py slam:=off localization:=true map:=map.yaml
启动可视化界面
ros2 launch turtlebot4_viz view_robot.launch.py
地图加载完成后,使用RViz2左上侧工具栏的2D Pose Estimate 工具进行初始化机器人在地图的位姿
单击该工具,然后单击并拖动地图上的箭头以大致确定机器人的位置和方向
设置完位姿后,使用RViz2左上侧工具栏的Nav2 Goal 工具设置导航目标点
演示视频:
【TurtleBot4-自主导航】 TurtleBot4-自主导航_哔哩哔哩_bilibili
3.4.4 边建图边导航
启动建图程序
ros2 launch turtlebot4_navigation nav_bringup.launch.py slam:=sync
启动可视化界面
使用RViz2左上侧工具栏的Nav2 Goal 工具设置导航目标点
演示视频:
【TurtleBot4-slam_toolbox边建图边导航】 TurtleBot4-slam_toolbox边建图边导航_哔哩哔哩_bilibili
3.5 自主充电/断电
- 执行自动充电操作时,TB4与充电桩的距离过远则无法进行自动充电
- 据测试,机器人与充电桩的距离在1米左右时,TB4能稳定接收到充电桩的红外信号
- 使用底盘按钮启动自动充电
- 按下开关键旁的1按钮,TB4会执行自动充电操作;按下开关键旁的2按钮,TB4会执行脱离充电桩操作
使用命令行启动自动充电
查看/dock话题内容
$ ros2 topic echo /dock
header:
stamp:
sec: 1660797682
nanosec: 847721287
frame_id: ''
dock_visible: false
is_docked: true
dock_visible参数为在启动自动充电程序时,是否找到充电桩
is_docked参数为是否已与充电桩对接
启动自动充电程序文章来源:https://www.toymoban.com/news/detail-857803.html
ros2 action send_goal /dock irobot_create_msgs/action/DockServo "{}"
启动脱离充电桩程序文章来源地址https://www.toymoban.com/news/detail-857803.html
ros2 action send_goal /undock irobot_create_msgs/action/Undock "{}"
到了这里,关于turtlebot4机器人-实操教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!