Comments (3)
Hi Shengzhi,
Thanks for your question. On hardware, ROS is not involved in critical communication. ROS only publish debug messages. The robot and the controller directly talk via unitree SDK's UDP class. This is the most direct communication channel. You cannot do any better. The LCM is a wrapping layer over the UDP class so theoretically it introduces a small delay. Using UDP communication the control frequency can reach around 400Hz-500Hz, which is enough to achieve torque control with reasonable performance. The controller is not running real time but I think if your robot does not run at 5m/s, this won't affect performance.
In Gazebo simulation, yes, gazebo and the controller talk via ROS. But we can slow down the simulation speed to make sure everything is still synchronized.
from a1-qp-mpc-controller.
Hi Shuo,
thanks for your reply. I've attached the A1 software guide, and I would like to quote the section 4.4.1 in page 15.
A1 Software Guide v2.0-en.pdf
In my understanding, one ROS node acts like one process in pc. It is commonly known that ROS is not real-time guaranteed. Although you are using ROS not for the critical communication, your controller runs as a non-real-time Ros node and the UDP instructions are set directly inside this node, which thus cannot ensure the real-time performance on controlling the robot. As mentioned in the software guide, by using LCM, the non-real-time ROS nodes won't affect the real-time process of controlling robot. Therefore, it seems that using LCM could help to achieve the real-time.
How do you think?
Best
from a1-qp-mpc-controller.
Hi @ShuoYangRobotics ,
any feedback on this? I've also asked the technical support from Unitree. They also recommend using the LCM instead of direct UDP. So maybe this could help to improve the real-time performance. How do you think?
from a1-qp-mpc-controller.
Related Issues (20)
- Why using inverse kinematics instead of the jacobian transpose in swing leg PD control? HOT 1
- Why are the parameter "a1_robot_mass" different in config folders? HOT 1
- why 4th order Bezier Curves is used instead of 3rd order, like MIT? HOT 1
- static error with QP control when trying to stand still HOT 2
- Is there any way to get body accelerations from Isaac Sim?
- Possible missing coefficient when converting QP controller to osqp. HOT 1
- On the Constraint Problem of Friction Cone
- roslaunch报错:ERROR in LDL_factor: Error in KKT matrix LDL factorization when computing the nonzero elements. The problem seems to be non-convex ERROR in osqp_setup: KKT matrix factorization. The problem seems to be non-convex. [OsqpEigen::Solver::initSolver] Unable to setup the workspace. [OsqpEigen::Solver::solveProblem] The solve has not been initialized yet. Please call initSolver() method. [OsqpEigen::Solver::solve] Unable to solve the problem. HOT 1
- PATH_OF_THE_REPO_ON_YOUR_HOST_COMPUTER HOT 2
- a1关节位置获取延迟 HOT 1
- Error in Gazebo example HOT 4
- Major problems in robot param & MPC control HOT 1
- Error catkin_make
- localhost port 2233: Connection refused HOT 2
- Controller does not continue/no topics from gazebo received
- euler error and PD law for QP formulation
- 梁亭演示
- Misleading information for using joystick in docker HOT 1
- What is the parameter ‘km_foot’? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from a1-qp-mpc-controller.