1. 前言 — 地平线机器人平台用户手册 1.0 文档 (horizon.ai)
前言: 前面两篇基本测试了板端跑Ubuntu Server镜像及基本外设功能,接下来测试地平线机器人平台HHP,根据地平线机器人平台用户手册,地址如上链接。根据文档一步一步进行做,这些都是直接在板端进行操作,非常方便。
一、 安装HHP并验证环境
根据地平线机器人平台用户手册2.安装这一章节进行操作,记录一下自己实际操作过程中的关键步骤。
1. 下载最新的旭日X3派系统镜像
目前最新版本为x3pi_ubuntu_server_disk_20220718195941.tar.gz,解压提取system_sdcard.img,使用balenaEtcher工具将镜像烧录到快速卡中,我使用的闪迪的64G,速度等级UHS-I。
2. 使用MobaXterm工具通过串口连接旭日X3派,进入系统输入用户名和密码均为sunrise。
3. 扫描WiFi无线网络
使用命令sudo nmcli device wifi rescan
扫描无线网络,如果出现“Error: Scanning not allowed immediately following previous scan.”需要重新执行一次扫描指令,查看扫描到的无线网络指令sudo nmcli device wifi list
,扫描结果如图所示。
4. 连接无线网络
sudo wifi_connect “604” “passwd”,会打印连接成功的信息,ifconfig查看wlan0分配的IP地址。
5. 安装HHP.deb包
安装之前重要的一步,升级整个系统,我用另一张卡重新做了系统这一步就忘记做了,直接安装HHP.deb出现如图所示。
使用命令sudo apt full-upgrade
后,再安装HHP,sudo apt install hhp
。如图所示安装完成。
6. 查看/opt目录下是否安装成功tros。
可以看到HorizonHobotPlatform已经安装到/opt目录下。
二、 运行自带的测试“Hello World”
使用MobaXterm工具开启两个ssh终端都连接到旭日X3派的板端,地址为上面wlan0的地址。
修改/opt/tros/local_setup.sh的"COLCON_CURRENT_PREFIX",如图所示。
终端一输入如下命令:
source /opt/tros/local_setup.sh
ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function
终端二输入如下命令:
source /opt/tros/local_setup.bash
ros2 run examples_rclcpp_minimal_publisher publisher_member_function
运行效果如下图所示。
如图左侧sub端不断接收,右侧pub端不断发送。至此TogetherROS已经成功安装并验证。
三、 安装ROS2 package
1. 添加ROS apt源
添加ROS apt源
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
这一步需要增加一个操作,否则总是出现如下错误。
安装ROS需要从github上下载,为了保证连接有效,先将github服务器IP地址保存到hosts文件中,vi /etc/hosts修改如下,再执行第二步等待一会就不报错了。
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
更新apt仓库
sudo apt update
2. 安装packages
sudo apt install ros-foxy-image-transport
sudo apt install ros-foxy-image-transport-plugins
3. 建立软连接
cd /opt/tros
##使用/opt/tros目录下的create_soft_link.py创建ROS package至TogetherROS的软连接
sudo python3 create_soft_link.py --foxy /opt/ros/foxy/ --tros /opt/tros/
四、使用ROS2 package
与ROS使用一样,首先是使能环境变量source /opt/tros/local_setup.bash
,ros2 run image_transport list_transports
运行如下所示。
五、 TogetherROS功能体验
手里有usb摄像头,就选择USB图像采集,WEB端查看图像功能体验一下。
1. 通过ssh登录旭日X3派,启动摄像头采集:
source /opt/tros/local_setup.bash
ros2 launch hobot_usb_cam hobot_usb_cam.launch.py
如下图所示,说明节点已经成功启动。
2. Web端查看USB摄像头图像,另起一个终端登录旭日X3派。
source /opt/tros/local_setup.bash
#启动nginx,nginx只需启动一次,如前面已启动过nginx,则无需再次启动
cd /opt/tros/lib/websocket/webservice && chmod +x ./sbin/nginx &&./sbin/nginx -p .
#启动websocket
ros2 run websocket websocket --ros-args -p image_topic:=/image -p image_type:=mjpeg -p only_show_image:=true
3. PC端打开浏览器输入旭日X3派IP地址,(chrome/firefox/edge三个浏览器都可以),如图所示,点击web端展示即可看到usb摄像头实时画面。
到这里基本的操作就完成了,后面需要学会手势控制及人体跟随。