TogetheROS是一款基于ROS2 Foxy版本进行功能优化和扩展的软件。它提供了丰富的基础功能节点和应用实例,可以帮助开发者更加高效、便捷地进行机器人开发。最近,TogetheROS推出了X86版本,这意味着你可以直接在X86平台上进行机器人开发,而无需考虑设备限制。此外,X86版本还实现了与X3派之间的无缝迁移,这样可以避免在开发过程中频繁的部署验证,从而为你带来更好的开发体验。在本文中,我们将带你沉浸式地体验一下TogetheROS X86版本! 功能体验速览,展示功能有图像采集,YOLOv3目标检测,人体骨骼关键点检测三项,效果都不错,让我们一起来看看! 看完效果大家是否已经跃跃欲试啦?接下来就让我带领大家体验一下TogetheROS在PC端的安装与使用!
环境准备
首先确定PC/虚拟机系统版本为Ubuntu Focal(20.04) 64bit系统
#查看系统版本
root@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
安装TogetheROS
使用apt进行快速安装(适合仅功能体验群体),指令如下:
#设置locale和启用universe软件源
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
sudo apt install software-properties-common
sudo add-apt-repository universe
#下载gpg密钥文件并添加源列表
sudo apt update && sudo apt install curl
sudo curl -sSL http://archive.sunrisepi.tech/keys/sunrise.gpg -o /usr/share/keyrings/sunrise.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/sunrise.gpg] http://archive.sunrisepi.tech/ubuntu-sim focal main" | sudo tee /etc/apt/sources.list.d/sunrise.list > /dev/null
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
#更新源并安装tros(时间较长,请耐心等待)
sudo apt update
sudo apt install tros
安装成功后,会在/opt路径下看到一个名为“tros”的文件夹。这意味着你已经可以开始使用TogetheROS了!如果大家需要做二次开发,可以使用源码安装的形式,具体操作步骤可以参考使用手册。
功能体验
以下是之前视频中TogetheROS的使用示例,你也可以尝试一下!
#安装v4l-utils并列出摄像头索引
sudo apt-get install v4l-utils
v4l2-ctl --list-devices
#在第一个终端运行
source /opt/tros/setup.bash
#注意将video_device参数替换为实际摄像头索引
ros2 run hobot_usb_cam hobot_usb_cam --ros-args -p pixel_format:=mjpeg -p image_width:=1280 -p image_height:=720 -p zero_copy:=false -p video_device:="/dev/video0"
#在第二个终端运行
source /opt/tros/setup.bash
ros2 launch websocket hobot_websocket_service.launch.py
ros2 run websocket websocket --ros-args -p image_topic:=/image -p image_type:=mjpeg -p only_show_image:=true
运行成功后,打开浏览器,在网址处输入localhost:8000即可查看摄像头的实时画面。

请注意:若使用虚拟机调用USB摄像头需进行以下操作:
- 虚拟机->可移动设备->"USB摄像头设备名称"->连接
- 虚拟机->设置->USB控制器->USB兼容性->USB 3.1->确定
source /opt/tros/setup.bash
ros2 launch dnn_node_example hobot_dnn_node_example_feedback.launch.py config_file:=config/yolov3workconfig.json image:=config/target.jpg
运行成功后会在/opt/tros文件夹下生成render_feedback_0_0.jpeg,这就是算法运行后的效果图。

③人体检测
source /opt/tros/setup.bash
cp -r /opt/tros/lib/mono2d_body_detection/config/ .
cp -r /opt/tros/lib/dnn_node_example/config/ .
export CAM_TYPE=fb
ros2 launch mono2d_body_detection hobot_mono2d_body_detection.launch.py
运行成功后,打开浏览器,在网址处输入localhost:8000即可查看效果。

体验总结
- X86版本的适配解除了TogetheROS与X3派之间的强绑定关系,让我们在没有X3派的情况下也能够使用相关功能,降低了使用门槛;
- 由于同一个算法在X86平台和X3派上推理出来的结果是完全一致的,因此我们可以直接在X86平台上进行开发和验证,确认功能正常后再迁移到X3派上。这避免了一次次地将部署包安装到板端进行功能验证;
- 由于部分示例算法已经针对BPU进行了优化,因此X86平台上的算法推理速度与X3派相比存在一定差距。
另附上体验过程全记录!