write by 2025.04.06 by luwei
本文记叙了一些如何入门创客智造TB4机器人、如何调试相机、运行ORB SALM的方法。
对应的代码仓库地址:Turbot4: ROS机器人Turbot入门手册,基于厂家教程整理 (gitee.com)
本仓库只列举了常用的指令与过程,有关的配置过程等请参考厂家文档。
有关雷达建图等指令见仓库的Turbot机器人入门手册。本文只是简要化的操作说明。
xxxxxxxxxx151├── README.md2├── douji.py #舵机控制文件3├── douji1.py #舵机控制文件(实时监听键盘输入)(优先)4├── depth_align.py #OAK官方例程,显示RGBD混合图像5├── depth_align_s.py #OAK相机1280x720 RGBD ROS2消息发布(优先)6├── my_depth_align.py #OAK相机1080p ROS2消息发布 带有本地OPENCV显示7├── rgbd-slam-node.cpp #ORBSLAM RGBD ROS2节点配置文件,使用opencv进行窗口resize8├── stereo-slam-node.py #ORBSLAM stereo ROS2节点配置文件9├── whatsoak.py #OAK相机内参打印文件10├── calib.json #OAK相机内参文件11├── myoak_stereo.yaml #OAK相机双目内参,适用ORBSLAM12├── Turbot机器人入门手册 #机器人操作手册13├── oak_rgb_record.py #oak相机RGB录制程序14├── OAK-VIDEO720.mp4 #oak相机标定录屏文件15
在ubuntu主机中输入 sudo ufw allow 22/tcp 以允许 SFTP 服务。
Windows主机中安装FileZilla,连接到ubuntu主机的IP地址,端口号为22,协议为SFTP,用户名和密码为ubuntu主机的用户名和密码。
xxxxxxxxxx221# 查看当前工作空间的所有包2ros2 pkg list3# 查看当前工作空间的所有节点4ros2 node list5# 查看当前工作空间的所有话题6ros2 topic list7# 查看当前工作空间的所有服务8ros2 service list9# 查看当前工作空间的所有动作10ros2 action list11# 查看当前工作空间的所有参数12ros2 param list13# 查看话题,避免底盘ID冲突14export ROS_DOMAIN_ID=2 && ros2 topic list15# 查看话题图像16ros2 run rqt_image_view rqt_image_view17# 启动底盘18ros2 launch turbot4_bringup robot.launch.py19# 启动键盘控制20ros2 launch turbot4_teleop keyboard.launch.py21# 话题录制22ros2 bag record -o my_bag /camera/aligned_rgb /camera/aligned_depth关于主机供电
主机需要19V外接电源,如果机器人需要移动,显然需要电池供电。
注意,电池电压为12V,不能直接连接主机,需要与升压模块连接。
电池输出连接升压模块输入,升压模块19V输出连接主机19V输入。
升压模块有一路12V输入被并联引出,看需求接入舵机控制器。(可选)
关于舵机供电(如果不使用舵机可不接)(可选)
舵机需要12V电源,需要与升压模块12V连接(不要接错为19V)。
使用舵机必须采用电池供电了,舵机控制板通过USB接口接入主机。
注意升压模块输入输出线材颜色,注意文字标识,不要接错。
关于底盘供电
底盘需要上电开机,只要把底盘放置在底盘充电器上,底盘供电自动开机。
底盘开机后可以取下底盘充电器,一般建议放置充电,仅在机器人需要跑动时取下。
底盘关机需要长按底盘上的关机按钮,直到听到语音铃声。
其他部分的接线
相机、雷达、舵机控制板接线需要与主机保持USB连接。
主机与底盘之间的连接采用网线连接。
必须注意!!!Ubuntu主机与底盘需要连接进入同一个WIFI网络,否则无法通信。
如果底盘配置连接的网络与主机不一致,则无法启动底盘。
过程请参考:https://www.ncnynl.com/archives/202209/5402.html
主机与个人电脑需要连接进入同一个WIFI网络。
也就是说,通常情况下,主机、个人电脑与底盘需要连接进入同一个WIFI网络。
在个人PC上安装NoMachine远程连接软件,连接到主机的IP地址,端口号默认,用户名和密码为ubuntu主机的用户名和密码。
在有显示屏的情况下,启动NUC主机,进入界面,打开新的终端terminal,使用命令ifconfig,查看Turbot4的ip地址(可选)获取IP地址后进行远程连接,用户名:ubuntu,password:ubuntu
务必需要注意主机的IP与个人电脑NoMachine软件显示的是否一致,否则需要手动修改连接IP。
使用远控时,可以断开主机与显示屏连接,此时必须插入显卡欺骗器在主机后侧右边的那个HDMI接口上。
可以参考的官方教程:https://www.ncnynl.com/archives/202209/5401.html
启动底盘
xxxxxxxxxx11ros2 launch turbot4_bringup robot.launch.py新开终端,启动键盘控制
xxxxxxxxxx11ros2 launch turbot4_teleop keyboard.launch.py键盘控制操作

如果没有意外的话,你应该可以看到机器人跑起来了。
‘如何让机器人跑起来’一节中已经介绍了舵机控制器的连接方法。
舵机控制板需要与主机进行USB连接,与电池12V接口(并联在升压模块输入端)进行连接。
启动舵机云台环境
xxxxxxxxxx11ros2 launch interbotix_xsturret_control xsturret_control.launch.py robot_model:=pxxls推荐使用python3运行自定义控制文件
启用舵机键盘控制
xxxxxxxxxx61cd ~/Desktop/turbot42#启动键盘按键监听,通过WASD前后上下移动,需要先启动上文的舵机云台控制程序3#按q退出(推荐duoji1.py)4python3 duoji1.py5#启动终端输入内容监听,需要按回车键6python3 duoji.py通过topic pub方式与Time-Based-Profile驱动模式例程进行云台控制见Turbot机器人入门手册。
OAK相机可以通过ROS驱动启动,也可以通过python启动。
OAK相机通过ROS驱动启动。
xxxxxxxxxx51# - RGBD启动节点2ros2 launch depthai_examples rgb_stereo_node.launch.py3#ros2 launch turbot4_bringup rgb_stereo_node.launch.py4# - 双目启动节点5ros2 launch turbot4_bringup stereo.launch.pyRGBD启动节点发布的图像中,RGB与深度图像没有进行对齐,存在比例差距。
图像话题通过ros2 topic list查询,应为/color/video/image与/stereo/depth。
OAK相机通过python启动。
xxxxxxxxxx41cd ~/Desktop/turbot42python3 depth_align_s.py3# python3 my_depth_align.py4ros2 bag record -o my_bag /camera/aligned_rgb /camera/aligned_depth图像话题通过ros2 topic list查询,应为/camera/aligned_rgb与/camera/aligned_depth。
xxxxxxxxxx81source /opt/ros/humble/setup.bash2source ./install/setup.bash # 注意路径,需要进入orbbec文件夹下的ros2_ws3ros2 launch astra_camera astra_mini.launch.py4
5#相机ROS驱动重新编译指令(回到ROS2_WS根目录)(可选,用不到)6source /opt/ros/humble/setup.bash7colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release8source ./install/setup.bash图像话题通过ros2 topic list查询,应为/camera/color/image_raw与/camera/depth/image_raw。
xxxxxxxxxx11ros2 run rqt_image_view rqt_image_view窗口显示后,在窗口上方选择图像话题,即可查看图像。可以通过窗口栏标签进行刷新。
xxxxxxxxxx41# 查询RGB(需要根据实际的topic话题更改)2ros2 topic echo /color/video/image --no-arr | grep "width\|height"3# 查询深度4ros2 topic echo /stereo/depth --no-arr | grep "width\|height"xxxxxxxxxx51cd ~/bag_files2# 奥比中光astra相机录制RGB与深度图像3ros2 bag record -o my_bag /camera/color/image_raw /camera/depth/image_raw4# OAK相机录制RGB与深度图像5ros2 bag record -o my_bag /camera/aligned_rgb /camera/aligned_depth上文中的my_bag为录制的bag文件名称,可以自行更改。停止录制在对应终端中输入Ctrl+C。
xxxxxxxxxx41#因为底盘有默认的网络ID,为避免话题冲突,所以设置独立的网络ID来实现回放2cd ~/bag_files3export ROS_DOMAIN_ID=2 && ros2 bag play my_bag 4#my_bag是要回放的文件名称xxxxxxxxxx21# rosbag2转化为rosbag12rosbags-convert --src /home/ubuntu/bag_files/my_bag --dst /home/ubuntu/bag_files/my_converted_bag.bag上述命令将ROS2 bag文件my_bag转换为ROS1 bag文件my_converted_bag.bag。需要按情况修改名称。
由于ORB_SLAM2与ORB_SLAM3的存在配置文件冲突,只能配置一个执行,当前配置的是ORB_SLAM2。
具体教程查看:https://www.ncnynl.com/archives/202303/5843.html
xxxxxxxxxx181# RGBD模式2#ros2 launch depthai_examples rgb_stereo_node.launch.py #可选,通过通过ROSBAG文件回放获得话题3#ros2 launch turbot4_bringup rgb_stereo_node.launch.py #(OAK ROS方式启动)4
5ros2 run ros2_orbslam rgbd ~/tools/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/ubuntu/ros2_orb_slamv2_ws/src/ros2-ORB_SLAM2/src/rgbd/TUM1.yaml6
7# 双目模式8ros2 launch turbot4_bringup stereo.launch.py9ros2 run ros2_orbslam stereo ~/tools/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/ubuntu/ros2_orb_slamv2_ws/src/ros2-ORB_SLAM2/src/stereo/oak.yaml false10
11# 注意:需要确保orbslam节点配置文件与图像话题的对应关系正确。12# 可以通过修改ROSBAG回放时的图像话题名称进行重映射。13ros2 bag play my_bag --remap /exist_rgb_topic:=/camera/aligned_rgb /exist_depth_topic:=/camera/aligned_depth14
15#ORBSLAM2重新编译指令16$ cd ~/ros2_orb_slamv2_ws/17$ colcon build18$ echo 'source ~/ros2_orb_slamv2_ws/install/setup.bash' >> ~/.bashrcxxxxxxxxxx771RGB Camera Default intrinsics2[[2999.7548828125, 0.0, 1916.0357666015625], [0.0, 2999.7548828125, 1113.051513671875], [0.0, 0.0, 1.0]]33840421605RGB Camera Default intrinsics6[[2999.7548828125, 0.0, 1916.0357666015625], [0.0, 2999.7548828125, 1113.051513671875], [0.0, 0.0, 1.0]]73840821609RGB Camera resized intrinsics 3840 x 2160 10[[2.99975488e+03 0.00000000e+00 1.91603577e+03]11 [0.00000000e+00 2.99975488e+03 1.11305151e+03]12 [0.00000000e+00 0.00000000e+00 1.00000000e+00]]13RGB Camera resized intrinsics 4056 x 3040 14[[3.16849097e+03 0.00000000e+00 2.02381274e+03]15 [0.00000000e+00 3.16849097e+03 1.55491064e+03]16 [0.00000000e+00 0.00000000e+00 1.00000000e+00]]17LEFT Camera Default intrinsics18[[450.47235107421875, 0.0, 306.4180908203125], [0.0, 450.47235107421875, 251.56312561035156], [0.0, 0.0, 1.0]]196402048021LEFT Camera resized intrinsics 1280 x 72022[[900.94470215 0. 612.83618164]23 [ 0. 900.94470215 383.12625122]24 [ 0. 0. 1. ]]25RIGHT Camera resized intrinsics 1280 x 72026[[906.80108643 0. 648.49902344]27 [ 0. 906.80108643 358.8253479 ]28 [ 0. 0. 1. ]]29LEFT Distortion Coefficients30k1: -11.92473411560058631k2: 45.69417572021484432p1: -0.00159965641796588933p2: 6.964409112697467e-0534k3: -41.06405639648437535k4: -11.92336750030517636k5: 45.6805953979492237k6: -41.03921508789062538s1: 0.039s2: 0.040s3: 0.041s4: 0.042τx: 0.043τy: 0.044RIGHT Distortion Coefficients45k1: -9.77375793457031246k2: 32.0942840576171947p1: 0.000676308933179825548p2: 0.001875755144283175549k3: -8.63704490661621150k4: -9.77578163146972751k5: 32.11013031005859452k6: -8.73421001434326253s1: 0.054s2: 0.055s3: 0.056s4: 0.057τx: 0.058τy: 0.059RGB FOV 68.7938003540039, Mono FOV 72.900001525878960LEFT Camera stereo rectification matrix61[[ 1.04050399e+00 1.68362826e-03 -3.49383303e+01]62 [ 1.86616935e-02 1.00701155e+00 -3.99854977e+01]63 [ 5.42929138e-05 1.42804276e-06 9.64982343e-01]]64RIGHT Camera stereo rectification matrix65[[ 1.03378411e+00 1.67275490e-03 -6.76430109e+01]66 [ 1.85411709e-02 1.00050798e+00 -1.37679309e+01]67 [ 5.39422745e-05 1.41882005e-06 9.63311505e-01]]68Transformation matrix of where left Camera is W.R.T right Camera's optical center69[[ 9.98174310e-01 -3.99243692e-03 -6.02666177e-02 -7.47559023e+00]70 [ 3.83233069e-03 9.99988794e-01 -2.77198525e-03 -3.52574028e-02]71 [ 6.02770112e-02 2.53596297e-03 9.98178482e-01 -8.50782171e-02]72 [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00]]73Transformation matrix of where left Camera is W.R.T RGB Camera's optical center74[[ 0.99819404 0.00496115 -0.05986672 -3.77959633]75 [-0.00456661 0.99996698 0.00672531 -0.04174132]76 [ 0.0598981 -0.00643977 0.99818373 -0.42714706]77 [ 0. 0. 0. 1. ]]