环境设置
- 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\
路径下,v1
和v2
版本择其一即可
但是要注意此路径下仅包含.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