unitreerobotics/unitree_ros

GitHub: unitreerobotics/unitree_ros

宇树科技官方ROS仿真包,支持多款四足和人形机器人在Gazebo中进行关节级底层控制开发,是算法验证到实机部署的桥梁。

Stars: 1251 | Forks: 398

# 介绍 这是 Unitree 机器人的 ROS 仿真功能包。您可以在 Gazebo 中加载机器人和关节控制器,从而对机器人关节进行底层控制(控制力矩、位置和角速度)。请注意,Gazebo 仿真无法进行高层控制,即行走。除了这些仿真功能外,您还可以使用 [unitree_ros_to_real](https://github.com/unitreerobotics/unitree_ros_to_real) 包在 ROS 中控制您的实体机器人。对于实体机器人,您可以使用我们的 ROS 包进行高层和底层控制。 ## 功能包: 机器人描述: * [`a1`](robots/a1_description) * [`a2`](robots/a2_description) * [`aliengo`](robots/aliengo_description) * [`aliengoZ1`](robots/aliengoZ1_description) * [`b1`](robots/b1_description) * [`b2`](robots/b2_description) * [`b2w`](robots/b2w_description) * [`dexterous_hand`](robots/dexterous_hand_description) * [`g1`](robots/g1_description) * [`go1`](robots/go1_description) * [`go2`](robots/go2_description) * [`go2w`](robots/go2w_description) * [`h1_2`](robots/h1_2_description) * [`h1`](robots/h1_description) * [`h2`](robots/h2_description) * [`laikago`](robots/laikago_description) * [`r1`](robots/r1_description) * [`r1_air`](robots/r1_air_description) * [`z1`](robots/z1_description) 机器人和关节控制器: * `unitree_controller` * `z1_controller` 仿真相关: * `unitree_gazebo` * `unitree_legged_control` # 依赖 * [ROS](https://www.ros.org/) Melodic 或 ROS Kinetic(未测试) * [Gazebo8](http://gazebosim.org/) * [unitree_legged_msgs](https://github.com/unitreerobotics/unitree_ros_to_real):`unitree_legged_msgs` 是 [unitree_ros_to_real](https://github.com/unitreerobotics/unitree_ros_to_real) 下的一个包。 # 构建 对于 ROS Melodic: ``` sudo apt-get install ros-melodic-controller-interface ros-melodic-gazebo-ros-control ros-melodic-joint-state-controller ros-melodic-effort-controllers ros-melodic-joint-trajectory-controller ``` 对于 ROS Kinetic: ``` sudo apt-get install ros-kinetic-controller-manager ros-kinetic-ros-control ros-kinetic-ros-controllers ros-kinetic-joint-state-controller ros-kinetic-effort-controllers ros-kinetic-velocity-controllers ros-kinetic-position-controllers ros-kinetic-robot-controllers ros-kinetic-robot-state-publisher ros-kinetic-gazebo8-ros ros-kinetic-gazebo8-ros-control ros-kinetic-gazebo8-ros-pkgs ros-kinetic-gazebo8-ros-dev ``` 然后打开文件 `unitree_gazebo/worlds/stairs.world`。在文件末尾: ``` model:///home/unitree/catkin_ws/src/unitree_ros/unitree_gazebo/worlds/building_editor_models/stairs ``` 请将 `building_editor_models/stairs` 的路径更改为您电脑上的实际路径。 然后您可以使用 catkin_make 进行构建: ``` cd ~/catkin_ws catkin_make ``` 如果您遇到依赖问题,可以直接再次运行 `catkin_make`。 # 功能包详情 ## unitree_legged_control: 它包含用于 Gazebo 仿真的关节控制器,允许用户通过位置、速度和力矩控制关节。有关不同模式下的关节控制示例,请参考 “[unitree_ros/unitree_controller/src/servo.cpp](https://github.com/unitreerobotics/unitree_ros/blob/master/unitree_controller/src/servo.cpp)”。 ## 机器人描述: 即 Go1、A1、Aliengo 和 Laikago 的描述。每个包都包含机器人的 mesh、urdf 和 xacro 文件。以 Laikago 为例,您可以通过以下方式在 Rviz 中检查模型: ``` roslaunch laikago_description laikago_rviz.launch ``` ## unitree_gazebo & unitree_controller: 您可以使用以下命令启动 Gazebo 仿真: ``` roslaunch unitree_gazebo normal.launch rname:=a1 wname:=stairs ``` 其中 `rname` 表示机器人名称,可以是 `laikago`、`aliengo`、`a1` 或 `go1`。`wname` 表示世界名称,可以是 `earth`、`space` 或 `stairs`。`rname` 的默认值为 `laikago`,而 `wname` 的默认值为 `earth`。在 Gazebo 中,机器人应该躺在地面上,关节未激活。 ### 1. 站立控制器 启动 gazebo 仿真后,您可以开始控制机器人: ``` rosrun unitree_controller unitree_servo ``` 您可以添加外部干扰,比如推或踢: ``` rosrun unitree_controller unitree_external_force ``` ### 2. 位置和姿态发布器 这里我们演示了如何在没有控制器的情况下控制机器人的位置和姿态,这在 SLAM 或视觉开发中应该很有用。 然后在另一个终端中运行位置和姿态发布器: ``` rosrun unitree_controller unitree_move_kinetic ``` 机器人将绕原点旋转,这是在世界坐标系下的运动。在源文件 [move_publisher.cpp](https://github.com/unitreerobotics/unitree_ros/blob/master/unitree_controller/src/move_publisher.cpp) 中,我们还提供了使用机器人坐标系移动的方法。您可以将 `def_frame` 的值更改为 `coord::ROBOT` 并再次运行 catkin_make,然后 `unitree_move_publisher` 将在机器人自身的坐标系下移动机器人。 ## z1_controller 您可以使用以下命令启动 z1 Gazebo 仿真: ``` roslaunch unitree_gazebo z1.launch ``` 启动 gazebo 仿真后,您可以通过 z1_sdk 开始控制 z1 机器人。 参见 [z1_documentation](https://dev-z1.unitree.com)
标签:A1, B1, B2, DNS解析, Gazebo, Go1, Go2, H1, ROS, ROS Melodic, Simulink, Unitree, URDF, Z1, 人形机器人, 仿真, 关节控制, 动力学, 四足机器人, 威胁情报, 宇树科技, 开发者工具, 开源项目, 机器人, 机器人控制, 机器人描述文件, 机器人操作系统, 机械臂, 运动控制