1. What is TogetherROS?
TogetherROS是地平线基于ROS2 Foxy版本二次开发的机器人操作系统,旨在提升基于地平线芯片平台机器人开发的效率。
2. How to install TogetherROS?
2.1 准备工作
① 旭日x3派开发板(已经安装好天线) ② Ubuntu20.04操作系统烧录完毕,本文采用使用不带图形桌面的Ubuntu Server版本(服务版) 参考链接: 旭日,从地平线升起——旭日X3派开箱测试 ③ 调试工具MobaXterm ④ 准备一根网线,笔记本电脑与旭日x3派组成局域网互联 ⑤ Wifi联网正常
2.2 局域网连接
2.2.1 网线互联
网线一端连接笔记本电脑(Win10操作系统)网口,另一端连接旭日派网口。旭日x3派系统默认静态ip为:192.168.1.10,为了能够与旭日派组成局域网,可以将笔记本电脑的ip地址设置为192.168.1.100,以便与旭日派的ip设置在同一网段。
设置笔记本电脑以太网ip地址:Windows设置“网络和Internet”,选择“以太网”,在网络设置选项中,将IPv4地址设置为:192.168.1.100,网关:192.168.1.1

2.2.2 通过SSH局域网连接旭日开发板
① 笔记本电脑运行MobaXterm,单击Session→SSH→Remote host→“192.168.1.10”→OK

② 通过SSH登录旭日开发板 login as : root

2.2.3 用SSH Browser浏览旭日开发板的文件系统
SSH连接成功后,就可以用MobaXterm的SSH Browser工具浏览并访问旭日派开发板的文件系统了。

2.3 下载并安装DEB包
2.3.1 从官网下载HHP.deb文件
将HHP.deb下载到笔记本电脑,下载链接:https://pan.horizon.ai/index.php/s/M5NgJPFoWxB8kmS
2.3.2 将HHP.deb传送给开发板
① 利用MobaXterm的SSH Browser工具,浏览并打开旭日x3派开发板根目录下的userdata文件夹,按住鼠标左键,直接拖拽HHP.deb到旭日开发板的userdata目录下


② 查看旭日开发板/userdata目录下的HHP.deb文件

2.3.3 安装HHP.deb
① 进入userdata文件夹 MobaXterm通过SSH模式进入开发板的Ubuntu系统,用户名Boot登录,输入cd /userdata 指令
cd /userdata
② 运行HHP.deb
sudo dpkg -i HHP.deb
③ 完成安装
这样,我们用网线将笔记本电脑与旭日x3派开发板互连并组成局域网,将安装文件HHP.deb传送到开发板,再利用SSH登录开发板的Ubuntu系统,完成了TogetherROS的安装,系统文件会自动安装在/opt/tros文件夹下。
2.4 配置旭日x3派的wifi无线网络
接下来,我们需要对开发板的ROS环境进行配置,配置过程中,旭日开发板必须连接外网下载或更新,可以采用有线和无线两种连接方式,下面介绍wifi无线连接方法。
2.4.1 查找wifi
sudo nmcli device wifi rescan
nmcli device wifi list
2.4.2 连接wifi
sudo nmcli device wifi connect Note password a12345678
上面指令行中,Note为wifi名称,a12345678为密码,用户要根据自己要连接的wifi名称和密码进行修改,如果wifi连接成功,会有successfully activated提示。我们可以试着ping一下百度的网站
ping www.baidu.com
可以看到网站的延时数据,说明wifi连接正常,按Ctrl+C退出ping状态。

2.5 更新Ubuntu系统
sudo apt update sudo apt full-upgrade
2.6 安装ROS2功能包
2.6.1 配置Github服务器ip
安装ROS2需要从Github服务器下载软件,由于Github服务器在国外,为了保证连接有效,可以将Github服务器ip地址提前配置一下hosts:
vi /etc/hosts
一般没有使用过vim编辑器的用户,会比较懵,注意vim操作方法: ① 键盘输入“i”,vim界面左下角会切换成“INSERT”模式; ② 键盘↑↓←→键移动光标到指定位置,添加以下Github服务器ip地址行;
185.199.108.133 raw.githubusercontent.com
添加完毕,如下图所示。

③ 键盘按ESC键,此时INSERT提示消失; ④ 键盘输入“:wq”,回车,退出vim编辑器。 其实本来不想拓展解释vim编辑器,但是为了防止旭友踩坑,下面是网友的总结,让大家系统了解一下vim的指令集的具体含义:
:q //退出
:q! //退出且不保存(:quit!的缩写)
:wq //保存并退出 :wq! //保存并退出即使文件没有写入权限(强制保存退出)
:x //保存并退出(类似:wq,但是只有在有更改的情况下才保存)
:exit //保存并退出(和:x相同)
:qa //退出所有(:quitall的缩写)
:cq //退出且不保存(即便有错误)
2.6.2 更新软件源和下载工具
sudo apt update && sudo apt install curl gnupg2 lsb-release
2.6.3 设置ROS2软件源密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
2.6.4 设置ROS软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
2.6.5 更新系统
sudo apt update
2.6.6 安装ROS2及常用工具
根据用户的实际需求,可以选择安装完整版或是基础版ROS2:
① 完整版ROS2
sudo apt install ros-foxy-desktop
② 基础版ROS2+Demo例程
sudo apt install ros-foxy-ros-base ros-foxy-demo-nodes-cpp
③ Colcon编译工具
sudo apt install python3-colcon-common-extensions
④ Git工具
sudo apt install git
2.7 创建TogetherROS与ROS2之间的软连接
TogetherROS提供了一个软连接的脚本create_soft_link.py,方便调用ROS2的功能: ① 进入TogetherROS文件夹
cd /opt/tros/
② 运行create_soft_link.py脚本
python3 create_soft_link.py --foxy /opt/ros/foxy/ --tros /opt/tros/
③ 设置环境变量脚本 Source一下local_setup.bash
source /opt/tros/local_setup.bash
3. Hello World!Run TogetherROS!
我们测试一下TogetherROS的通信功能,主要思路是: ① 创建两个终端; ② 在终端1中,发布信息; ③ 在终端2中,订阅信息; ④ 若两者同步,说明 TogetherROS运行正常。
3.1 创建两个SSH终端
打开MobaXterm,新建两个SSH终端,也可以通过复制已有的终端实现,如图所示。

3.2 在终端1中,发布信息
在终端1中,依次运行以下命令行,发布信息:
source /opt/tros/local_setup.bash ros2 run examples_rclcpp_minimal_publisher publisher_member_function
3.3 在终端2中,订阅信息
在终端2中,依次运行以下命令行,订阅信息:
source /opt/tros/local_setup.bash ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
3.4 两个终端同步显示Helloworld


「地平线旭日X3派,开启你的嵌入式开发之旅」,欢迎正在阅读的你申请试用,一起交流开发心得!
【参考文献】
【本文作者CSDN同步文章】