3、TurtleBot 4 源代码
TurtleBot 4 Robot
此处提供源代码:https://github.com/turtlebot/turtlebot4_robot
源代码获取安装
turtlebot4_robot
源包预装在TurtleBot 4树莓派映像上。
Source installation源安装
要从源代码手动安装此元包,请克隆git存储库:
将存储库克隆到您的工作区中:
cd ~/turtlebot4_ws/src git clone https://github.com/turtlebot/turtlebot4_robot.git -b humble
安装依赖项:
cd ~/turtlebot4_ws rosdep install --from-path src -yi
生成程序包:
source /opt/ros/humble/setup.bash colcon build --symlink-install
Base源代码包
turtlebot4_base
包包含在物理机器人上运行的 rclcpp节点turtlebot4_base_node
的源代码。该节点与Raspberry Pi的GPIO线接口,使其能够读取按钮的状态,以及写入LED和显示器。
此节点仅用于TurtleBot 4标准版。
Publishers:
Topic | Message Type | Description |
---|---|---|
hmi/buttons | turtlebot4_msgs/msg/UserButton | Button states of the TurtleBot 4 HMI |
Subscribers:
Topic | Message Type | Description |
---|---|---|
hmi/display | turtlebot4_msgs/msg/UserDisplay | The current information that is to be displayed |
hmi/led/_[led] | std_msgs/msg/Int32 | Hidden topics indicating the state of each LED |
GPIO 接口
TurtleBot 4使用libgpiod与树莓派的GPIO线路接口。gpiochip0
设备代表Raspberry Pi的40引脚头,用于读取和写入这些引脚。
I2C 接口
Linux I2C驱动程序用于在Raspberry Pi的I2C总线上读取和写入数据。显示器的SSD1306驱动程序默认连接到 i2c-3
设备,但也可以使用其他总线。
SSD1306
SSD1306是用于OLED显示器的驱动器。它通过通信总线(TurtleBot 4的I2C)接收命令,并控制物理显示器的行为。TurtleBot 4使用该STM32 SSD1306 driver驱动程序的修改版本将像素、形状和字符写入显示器。
Configuration配置
如果您正在使用标准PCBA或不知道自己在做什么,请不要更改 pin definitions。
可以使用ROS参数设置 turtlebot4_base_node
引脚定义。默认配置为:
turtlebot4_base_node: ros__parameters: # GPIO definition for HMI. Do NOT change if you are using the standard PCBA. gpio: user_button_1: 13 user_button_2: 19 user_button_3: 16 user_button_4: 26 led_green_power: 17 led_green_motors: 18 led_green_comms: 27 led_green_wifi: 24 led_green_battery: 22 led_red_battery: 23 led_green_user_1: 25 led_green_user_2: 6 led_red_user_2: 12 display_reset: 2
每个GPIO设备的值都是GPIO编号。
Bringup
turtlebot4_bringup
包包含运行机器人软件的启动和配置文件。
启动文件:
Joy Teleop: 启动节点以启用蓝牙控制器。
OAKD: 启动OAK-D节点。
RPLIDAR: 启动RPLIDAR节点。
Robot: 启动TurtleBot 4个节点。
Lite: 为TurtleBot 4 Lite启动所有必要的节点。
Standard: 启动TurtleBot 4的所有必要节点。
配置文件:
TurtleBot 4 Controller: TurtleBot 4控制器的配置。
TurtleBot 4:
turtlebot4_node
和turtlebot4_base_node
的配置。
Robot Upstart机器人启动
机器人使用 robot_upstart包安装bringup启动文件,作为机器人启动时启动的后台服务。启动文件位于turtlebot4_bringup
软件包下。
使用TurtleBot 4设置工具管理
robot_upstart
:turtlebot4-setup
导航至“ROS设置”,然后导航至“Robot Upstart”。使用各种菜单选项可以启动、停止、卸载或重新安装upstart job。
当某些设置发生更改时,设置工具将自动重新安装
robot_upstart
作业。
源代码安装/调用诊断
turtlebot4_diagnostics
软件包包含TurtleBot 4诊断更新程序的源代码和启动文件
启动文件:
诊断: 启动turtlebot4诊断更新程序和诊断聚合器节点。
Diagnostics Updater诊断更新程序
diagnostics updater是在机器人上运行的Python3节点。它订阅诊断主题并记录特定于每个主题的统计信息。诊断数据可通过rqt_robot_monitor
查看。
Diagnostic topics:
Topic Message Type Description battery_state sensor_msgs/msg/BatteryState Battery voltage and percentage color/preview/image sensor_msgs/msg/Image OAK-D color camera data dock irobot_create_msgs/msg/DockStatus Dock status hazard_detection irobot_create_msgs/msg/HazardDetectionVector Create® 3 Hazards imu sensor_msgs/msg/Imu IMU data mouse irobot_create_msgs/msg/Mouse Mouse sensor data scan sensor_msgs/msg/LaserScan RPLIDAR laser scan data wheel_status irobot_create_msgs/msg/WheelStatus Wheels enabled status
查看诊断:
ros2 launch turtlebot4_viz view_diagnostics.launch.py
Tests测试
turtlebot4_tests
包包含turtlebot4系统测试脚本的源代码。这些脚本测试机器人的基本功能,对于故障排除非常有用。
ROS Tests
ROS测试使用ROS主题和操作来测试各种系统功能。测试结果保存到 ~/turtlebot4_test_results/Y_m_d-H_M_S
,其中 Y_m_d-H_M_S
是测试的日期和时间。在测试期间还会记录一个rosbag,并将其保存到同一位置。
当前支持的测试:
Light Ring: 测试Create®3灯环。
Create® 3 Button: 测试Create®3按键。
User LED: 测试HMI LED(仅TurtleBot 4标准版)
User Button: 测试HMI按钮(仅TurtleBot 4标准版)
Display: 测试HMI显示 (仅TurtleBot 4标准版)
Dock: 测试机器人脱离和对接的能力。
运行测试:
ros2 run turtlebot4_tests ros_tests
这将启动一个CLI菜单,在其中可以运行不同的测试。
输入测试的索引,然后点击回车键开始测试。有些测试将自动运行,而另一些则需要用户输入。