Unity Robotics Hub环境搭建

2023-06-12

环境设置

  • Windows 11 64位
  • wsl: Ubuntu 22.04 LTS

WSL安装ROS2

按照ROS官方说明进行ROS2 iron发行版的安装: 首先确保UTF-8编码的支持

locale  # check for UTF-8

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

locale  # verify settings

然后设置源环境,这一步根据需求可能需要换源,我在安装的时候系统用的阿里源

sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

添加好ros源以后就可以正式安装ROS2了

sudo apt update
sudo apt upgrade
sudo apt install ros-iron-desktop python3-argcomplete
sudo apt install ros-dev-tools

然后设置环境

source /opt/ros/foxy/setup.bash

这样我们就安装好了ROS2,我们还希望安装Colcon工具,这是一个ROS的build工具,在ROS1中使用的是catkin,ROS2升级到了Colcon

sudo apt install python3-colcon-common-extensions

然后我们要创建workspace

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
git clone https://github.com/ros2/examples src/examples -b iron
colcon build --symlink-install
source install/setup.bash

在workspace下构建unity-ros集成库

可以按照Unity官方的说明构建

创建好workspace以后,要在workspace的\src路径下把ROS-TCP-Endpoint这个库clone下来,然后用Colcon将它build好

source install/setup.bash
colcon build
source install/setup.bash
  • 如果这一步报错了的话,也可以选择用Docker直接build

如果你还没有安装Docker,可以用如下指令安装

sudo apt install docker
sudo apt install docker.io

安装好Docker以后,将Unity-Robotics-Hubclone下来,进入\tutorials\ros_unity_integration路径,然后执行如下指令

docker build -t foxy -f ros2_docker/Dockerfile .
docker run -it --rm -p 10000:10000 foxy /bin/bash

至此完成安装,可以用如下指令运行ROS

ros2 run ros_tcp_endpoint default_server_endpoint --ros-args -p ROS_IP:=<your IP address>

用Docker的话可以用0.0.0.0放到ROS_IP的位置

Unity安装插件

在Unity的项目界面中,点击左上角的+号,然后选择从git URL添加包,一共需要添加两个包

  • ROS-TCP-Connector – https://github.com/Unity-Technologies/ROS-TCP-Connector.git?path=/com.unity.robotics.ros-tcp-connector
  • URDF Importer – https://github.com/Unity-Technologies/URDF-Importer.git?path=/com.unity.robotics.urdf-importer#v0.5.2

装好ROS-TCP-Connector以后记得在ROS Settings中将Protocol从ROS1修改为ROS2,ROS IP地址也要修改为与上方地址一致(使用Docker的话可以不管)

URDF模型导入

URDF Importer包允许我们在Unity中导入URDF格式的模型,可以使用niryo_one_ros这个库的机械臂模型进行实验

URDF文件在\niryo_one_description\urdf\路径下,v1v2版本择其一即可

但是要注意此路径下仅包含.xacro文件,需要使用xacro包将它转换成.urdf文件,然后把\niryo_one_dedscription文件夹放到Unity的Assets中,再把URDF文件放到Assets路径下,此时右键选中URDF文件选择导入URDF模型即可

使用xacro进行格式转换需要安装xacro包,要注意此处无法在Docker中安装(你可以试试,但是我失败了),安装指令为

sudo apt install ros-iron-xacro

然后执行

ros2 run xacro xacro -o ./xxx.urdf ./xxx.xacro