turtlebot4机器人-实操教程

准备:下载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的底盘不支持持续后退操作

  1. 对于配有手柄的标准版,可以手柄连接控制移动
  2. 联网后标准版五个指示灯均亮起,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 自主充电/断电

  1. 执行自动充电操作时,TB4与充电桩的距离过远则无法进行自动充电
  2. 据测试,机器人与充电桩的距离在1米左右时,TB4能稳定接收到充电桩的红外信号
  3. 使用底盘按钮启动自动充电
  4. 按下开关键旁的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参数为是否已与充电桩对接

启动自动充电程序

ros2 action send_goal /dock irobot_create_msgs/action/DockServo "{}"

启动脱离充电桩程序

ros2 action send_goal /undock irobot_create_msgs/action/Undock "{}"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值