![]() |
![]() |
![]() |
![]() |
Video Links: YouTube, Bilibili (for China).
qm_control is a controller for quadruped manipulators using model predictive control and whole-body control. The controller aims to make the quadruped manipulator more athletic. It has achieved tasks such as whole-body planning, end-effector motion tracking, stability with force disturbance, and whole-body compliance control. We will continue to develop more features for the controller. The project is still under development, not the final version.
Notes: Four branches focus on different tasks.
[1] 张天霖. 基于视觉伺服与集值反馈的四足机械臂动态物体抓取研究 [D]. 哈尔滨: 哈尔滨工业大学, 2024. (for China).
Notes: 可以通过哈尔滨工业大学图书馆和深圳大学城图书馆搜索查询。
[2] T. Zhang, F. Lin, X. Peng, X. Xiong, and Y. Lou. “Whole-body Compliance Control for Quadruped Manipulator with Actuation Saturation of Joint Torque and Ground Friction”, 2024 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Accepted.
# Clone
mkdir -p <catkin_ws_name>/src
cd <catkin_ws_name>/src
git clone https://github.com/skywoodsz/qm_control.git
# Build
cd <catkin_ws_name>
catkin init
catkin config -DCMAKE_BUILD_TYPE=RelWithDebInfo
catkin build
Notes: Make sure OCS2 is in the environment path.
We have two versions of the controller: MPC with WBC and only MPC.
Launch the simulation with:
mon launch qm_gazebo empty_world.launch
Load the controller:
mon launch qm_controllers load_controller.launch
Start the controller using rqt_controller_manager
GUI
rosrun rqt_controller_manager rqt_controller_manager
After the manipulator is initialized, commands can be sent
# Don't use mon
roslaunch qm_controllers load_qm_target.launch
# rviz
mon launch qm_controllers rviz.launch
Launch the simulation with:
mon launch qm_gazebo empty_world_mpc.launch
Load the controller:
mon launch qm_controllers load_controller_mpc.launch
You can use the gamepad to control the quadruped base and the manipulator's end-effector, respectively. The schematic diagram of the gamepad is as follows:
![]() |
![]() |
Analysis: The motion of the base and end-effector pose w.r.t. the initial pose when the end-effector is controlled to remain at a fixed pose during locomotion. While the base travels 30 cm, the end-effector’s deviation from its initial position is at most 3.5 mm and 2.6 degrees.
The project is still in the early stages of development and we welcome feedback. Please report bugs and request features using the Issue Tracker or Email skywoodszcn@gmail.com