ROS2理论与实践_宇树机器人Go2开发指南(文字)
为方便大家输代码,我手打赵老师课件上的部分代码做个记录
视频在这里:ROS2理论与实践_宇树机器人Go2开发指南
1.2.2 安装 Unitree Ros2
1.下载 unitree ros2
从 github 上下载 unitree ros2,终端指令如下:
git clone https://github.com/unitreerobotics/unitree_ros2
其中 unitree ros2 包括 cyclonedds ws 和 example 两个子级文件夹:
cyclonedds_ws 文件夹为编译和安装 Go2 机器人 ROS2 msg 的工作空间,在子文件夹cyclonedds_ws/unitree/unitree_go和 cyclonedds_ws/unitree/unitree api 中定义了Go2状态获取和控制相关的 ROS2 msg.·
example 文件夹为 Go2 机器人 ROS2 下的相关例程。
2.安装依赖(我的是foxy,就改为foxy了)
sudo apt install ros-foxy-rmw-cyclonedds-cppsudo apt install ros-foxy-rosidl-generator-dds-idl
3.编译 cyclone-dds
由于 Go2 使用的是cyclonedds 0.10.2版本,因此需要先更改 ROS2 的 DDS 实现。
编译 cyclonedds 前请确保在启动终端时没有source ros2 相关的环境变量,否则会导致 cyclonedds 编译报错。如果安装 ROS2 时在~/.bashrc中添加了\"source /opt/ros/humble/setup.bash\",需要修改~/.bashrc文件将其删除:
sudo apt install geditsudo gedit ~/.bashrc
在弹出的窗口中,注释掉 ROS2 相关的环境变量,例如:
# source /opt/ros/humble/setup.bash
在终端中执行以下操作编译 cyclone-dds
cd ~/unitree_ros2/cyclonedds_ws/src#克隆cyclonedds仓库git clone https://github.com/ros2/rmw_cyclonedds -b foxygit clone https://github.com/eclipse-cyclonedds/cyclonedds -b releases/0.10.xcd ..colcon build --packages-select cyclonedds #编译cyclonedds
4.编译 unitree_go 和 unitree_api 功能包
编译好 cyclone-dds 后就需要 Ros2 相关的依赖来完成 Go2 功能包的编译,因此编译前需要先 source ROS2 的环境变量。
source /opt/ros/foxy/setup.bash #source Ros2 环境变量colcon build #编译工作空间下的所有功能包
1.2.3 网络配置
使用网线连接 Go2 和计算机,使用 ifconfig 查看网络信息,确认机器人连接到的以太网网卡
接着打开网络设置,找到机器人所连接的网卡,进入IPv4,将IPv4方式改为手动,地址设置为192.168.123.99,子网掩码设置为255.255.255.0,完成后点击应用,等待网络重新连接。
打开 setup.sh 文件
sudo gedit ~/unitree ros2/setup.sh
bash 的内容如下:
#!/bin/bashecho \"Setup unitree ros2 environment\"source /opt/ros/foxy/setup.bashsource $HOME/unitree_ros2/cyclonedds_ws/install/setup.bashexport RMW_IMPLEMENTATION=rmw_cyclonedds_cppexport CYCLONEDDS_URI=\'<CycloneDDS><Domain><General><Interfaces> <NetworkInterface name=\"enp3s0\" priority=\"default\" multicast=\"default\" /> </Interfaces></General></Domain></CycloneDDS>\'
将 foxy 修改为 humble(我就不改了),并且 enp3s0 为 Go2 所连接的网卡名称,根据实际情况修改为对应的网卡名称,在终端中执行:
source ~/unitree_ros2/setup.sh
至此,即完成 G02 开发环境的设置。如果不希望每次打开新终端都执行一次 bash 脚本,也可将setup.sh 中的内容写入到 ~/.bashrc中,但是当系统有多个ROS 环境共存需要注意。
补充说明:如果电脑没有连接到机器人,但仍希望能使用 unitree ros2 实现仿真等功能, 可以使用本地回环\"lo\"作为网卡:
source ~/unitree_ros2/setup_local.sh #使用“lo”作为网卡
或
source ~/unitree_ros2/setup_default.sh #不指定网卡
完成上述配置后,建议重启一下电脑再进行测试。