mit-biomimetics / Cheetah-Software

MIT License
2.59k stars 919 forks source link

Opportunity to purchase / collaborate on Cheetah Mini #31

Closed SteveMacenski closed 4 years ago

SteveMacenski commented 4 years ago

Hi,

I'm a maintainer in the ROS ecosystem (Navigation2, SLAM Toolbox, Perception PCL, Robot Localization, and the like around mobile/field robotics) and I'm very interested in working with a quadruped from a practical standpoint and getting wider adoption or use of them. Something in particular I'm interested in is writing ROS2 drivers for the Cheetah Mini / Stanford Pupper and integrating them into the next generation ROS2 Navigation stack which aims to support a larger class of robot and maturity in framework (first preliminary work can be seen here).

I've seen some videos with a number of Cheetah Mini's running around and I was curious to learn if these are available for research / use / sale / what the plans are on this front. I'd love to make this my default development platform for navigation algorithms and make awesome product-grade demos. I, myself, am not interested in using it as a commercial product, but I do create high-quality open-source software and support which can be used in them. (I currently work for Samsung Research doing solely Open Source Robotics work that often borders research).

If there's an opportunity to collaborate, that would be stellar. I think there are some really cool things this work can be used to build on top of and get them out in the real-world.

Thanks, S

qiayuanl commented 4 years ago

Hi. I have built the ROS wrapped CAN bus, sbus, PWM and GPIO node working on both Upboard or Jetson. But I have no exposure to ROS2, We can talk about it. I have a mini cheetah but I haven't moved the whole cheetah program to ROS, because I am forcing on RoboMaster competition.
I am sure that the nodes are working very well on the rt-kernel because we are using it on our RoboMaster robot.

SteveMacenski commented 4 years ago

I'm not sure that its necessary to replace any existing communication between components within this project to ROS2 (though, it certainly could be). Generally speaking, if you start with a library or working system, you simply wrap the interfaces into ROS2 for use. For this case, that may be commands on gait choice, velocity, turning rate, report sensor data / robot state. Whatever interfaces that an external source may need to give the robot commands or any information the robot may produce that may be valuable for an external source to be aware of. This is what I am proposing to make this robot "ROS2-compatable" such that anyone in the future with one of these robots can use any of the ROS2 ecosystem's tools batteries-included. It also would allow the speed up for folks developing autonomous applications like navigation or mission planning for their research task.

I've been working with ROS2 since Beta 2, so I would say I know it pretty well :wink:.

One project I'm particularly interested in is using some open-source/available quadrupeds within the ROS2 navigation framework (which uses behavior trees for orchestration and larger mission planning) and create new capabilities and demos such that we can showing that Navigation2 can handle new classes of robots without laser scanners within the extensible framework. I have a roadmap of tasks required for this work that is very achievable. This would allow folks to use their Cheetah Mini's within ROS2 and also use its autonomous navigation software.

I'm sure though that there are many places where Cheetah project moving forward could use the ROS2 tools such as sensor drivers, processing techniques, and interoperability. Once the drivers exist, I can't predict the number of useful ways it may be used.

SteveMacenski commented 4 years ago

@QiayuanLiao do you know who would be the best contact point about potentially getting my hands on a robot?

I've also recently been shown this knockoff that at least appears at first glance to be a reasonable reproduction (for $2,500? there must be something I'm missing here). But I'd rather not spend my time on getting something I later realize after much work is somehow inhibited by whatever they did to get that pricepoint.

qiayuanl commented 4 years ago

I think you have two consideration:

  1. Dogotix's mini cheetah. I have a robot sent by Dogotix, I help them set up the UP Board environment(kernel and SPine). Dogotix's robot is almost exactly the same as the original from MIT, except for some mechanical optimizations. I am sure that the software(including Upboard, SPine, and the FOC driver) work on MIT mini cheetah can also work on Dogotix's robot without any change. And the robot is very cheap but works well and stable. If you want to develop base on MIT Mini Cheetah, Dogotix's robot should be your choice.
  2. Unitree's Laikago, Aliengo, or A1. Unitree's CEO XingXing Wang is also my good friend. He develops the dynamic quadruped five years ago. The robots are the more mature, commercial product than Dogotix's with amazing motion and stable performance and friendly API (ROS supported). But most motion control algorithms and software are not open source since they develop by themselves, you couldn't get the development freedom like MIT cheetah. If you don't require full open-source in your software stack or project, You can try Unitree's robots.

By the way, I am not sure that quadruped robots can be a good navigation or SLAM development platform since the locomotion of them is still not much stable. The MIT Mini Cheetah and Unitree's robot is the excellent motion control platform but may work as same as turtlebot on SLAM.

SteveMacenski commented 4 years ago

Oh that's interesting to hear you have the Dogotix (which is what is shown in that video I believe). I tried to go to their website and it doesn't appear to be online (Dogotix.ai) and I can't find any other reference to their existence other than that youtube video. I wasn't sure how "legit" that was given no actual presence online. Someone also showed me smart-machines whom has a website but only shows CAD models, are those the same people? This is a very good option, I'm just looking for more information. If you're happy with it, that's a really good sign, even if their presence is a little lacking at the moment. Do they have a website I'm missing or documentation available?

Unitree is another good option. I've been talking to them over email for a bit now about the A1 model. They are really cagey about documentation, SDK, and user manuals so I wasn't sure if they were hiding something to spring it on me after purchasing. They keep pointing me to their ros control and SDK repos which are completely empty. I've tried to point out to them that this is basic stuff that they need to provide public facing on their website but they keep saying "ok, after you purchase" which is never going to happen if they don't actually give me enough info to purchase based on. You may want to mention that to your friend. Put the user manuals and documentation on their website, it would help in purchasing decisions and makes it clear they have nothing to hide. Also putting the SDK API up, if not in the user manual.

I don't require fully open-source as long as there is good public facing documentation or code available. Because I'm focused on open-source robotics research, I want to use a platform that has public-facing documentation to make all this work more accessible for everyone. For that reason, that's why I'm gravitating towards the MIT cheetah mini & stanford pupper versus things like boston dynamics or ghost robotics. Unitree as well, if they would just publish their docs they supposedly will provide after purchase. I would like to create capabilities that people can then use, so choosing a platform that is reasonable for other people to use is important. Part of that is going to be their public-facing documentation / support. Lesser for me, but more for building a set of open capabilities around that will have alot of reuse.

Does that make sense? If there's good docs or code (less concerned by code, more concerned by general support) then its a better community standard. If I'm going to make capabilities for a robot in open-source, I'd like to use the robot that will have the best chance of direct re-use. For people to make hardware decisions, basic documentation and being able to know what they're buying is important.

By the way, I am not sure that quadruped robots can be a good navigation or SLAM development platform since the locomotion of them is still not much stable. The MIT Mini Cheetah and Unitree's robot is the excellent motion control platform but may work as same as turtlebot on SLAM.

That's kind of the point in my mind. I like to build stuff that's rugged and bulletproof. If it works on this, it can work on anything. I'm also not only working on SLAM, I work on perception, motion planning, and navigation system problems as well. All of which have unique issues with a legged robot that would also increase the robustness of non-legged robots using derived work.

qiayuanl commented 4 years ago

Yes, smart-machines and Dogotix are the same company. There are no documents or manuals of Dogotix's robot. However, you can use MIT Mini Cheetah's documents as Dogotix's robots documents lol.

Does that make sense? If there's good docs or code (less concerned by code, more concerned by general support) then its a better community standard. If I'm going to make capabilities for a robot in open-source, I'd like to use the robot that will have the best chance of direct re-use. For people to make hardware decisions, basic documentation, and being able to know what they're buying is important.

I strongly agree with you. But in China, the high tech hardware company facing some awkward dilemma. On one hand, potential customers require the document, manual, and code; On the other hand, they keep these materials minimize to the public to avoid some competing companies to fake. Although counterfeit was make according to little information and not running well and stable, Its cost can be highly compressed base on China's developed manufacturing and electric industry. The entire market can be Destroy. This can be a catastrophe for the high tech hardware company.

So many universities and research institute in China go to the Unitree company directly and then buy the robot without detailed info you require.

I don't require fully open-source as long as there is good public-facing documentation or code available. Because I'm focused on open-source robotics research, I want to use a platform that has public-facing documentation to make all this work more accessible for everyone.

I talk with Xingxing, he said the public-facing document of AlienGo and A1 will be public latter. Put on the website and also sent it to you by mail. Also, he points out that the current document can be provided to the people have strong purchase intention.

That's kind of the point in my mind. I like to build stuff that's rugged and bulletproof. If it works on this, it can work on anything. I'm also not only working on SLAM, I work on perception, motion planning, and navigation system problems as well. All of which have unique issues with a legged robot that would also increase the robustness of non-legged robots using derived work.

It seems interesting. In general, I recommend you use Unitree's robot, it will save you time since Dogotix's is more "geek" or non-commercial and unstable, require more professorial skill on motion control.

TrivasZhang commented 4 years ago

Hi, @SteveMacenski I'm the maintainer of Unitree repositories. Glad to hear your interesting for our Aliengo and A1. The good news is Unitree becomes more open about Doc and SDK. And the empty repo you mentioned will be updated at May, 2020. Our software team is working on that. And if you has emailed our sales team, they might has sent your Doc, API and SDK of Laikago, which is our previous robot but these files are also good references. Feel free for more questions!

SteveMacenski commented 4 years ago

There are no documents or manuals of Dogotix's robot. However, you can use MIT Mini Cheetah's documents as Dogotix's robots documents lol.

Fair enough, but I think that just needs to be made explicitly clear and any deviations they made from those docs / plans should be explicitly mentioned so you know what you're getting (and link to the original docs, just to have everything in the same place).

On one hand, potential customers require the document, manual, and code; On the other hand, they keep these materials minimize to the public to avoid some competing companies to fake.

On Dogotix: That doesn't really make for good business practice in the West, especially for folks like me that highly value transparency and documentation. SDK (well, I guess its just the MIT repo then, so whatever ignoring that) or list of capabilities / specs are the bare minimum. And I need something to link to when I ask for other people to collaborate or what this platform is (and how they can get it). Right now it doesn't seem to be operating as a business with no website, email, documentation which doesn't inspire confidence that they're not just going to take my money and run or not offer any support.

On Unitree: They're closer to a name-brand though, I'd be surprised if getting ripped off is too much of an issue. I need to know what I'm getting for my money, however. Things like dimensions, runtime, and sensors (which their website now has) are great starting points. But then I need to go a level deeper to know if the capabilities are there, how I can interface with it, and if I want to swap out controllers / modules for my own; have they made that possible at all. Unitree is obviously a real, legit company, so I don't have concerns at all on that front, but I am concerned about what it can do and how flexible it is to changing things so I can add my own capabilities but use some of theirs for the things I'm not looking to change. I haven't received any docs from Unitree that answer those questions. I get a run-around from the sales person about being able to get it after purchasing.

It seems interesting. In general, I recommend you use Unitree's robot, it will save you time since Dogotix's is more "geek" or non-commercial and unstable, require more professorial skill on motion control.

Is this because of this code or their hardware? The MIT videos I see are really compelling, but the Dogotix video looks a little odd. It walks with very small steps rapidly and I wonder if that's due to poor torque control on their actuators.

And the empty repo you mentioned will be updated at May, 2020. Our software team is working on that.

I look forward to that! The docs the sales team had sent me was a very short 4-5 page doc that didn't have any useful information in it.

TrivasZhang commented 4 years ago

Two further tips:

The docs the sales team had sent me was a very short 4-5 page doc that didn't have any useful information in it.

  1. I believe there has an laikago_sdk file together with the doc at the latest email. Our customers have developed with our SDK a long time, including many big companies. And our support team are always on call.
  2. Wish our new commit at May will do more help for your need!
SteveMacenski commented 4 years ago

Wish our new commit at May will do more help for your need!

Looking forward to it!

Closing out ticket, I think the discussion is sufficiently covered.

@TrivasZhang @QiayuanLiao thanks for your help / attention!

AndreV84 commented 4 years ago

does any of these two robots support nvidia jetson NX / nvidia IsaaC SDK? what components does the original mit cheetah use?

xdaumich commented 4 years ago

Hi Andrey,

I sm an Engineer from Nvidia. I am working on laikage isaac sdk integration. isaac sdk has supported laikago, and has laikago driver. I have done the auto navigation on laikago. I used jetson tx2. NX should wotk as well. Please checl the video https://developer.nvidia.com/isaac-sdk The tech blog will be posted soon.

Dennis

On Tue, May 26, 2020 at 1:02 PM Andrey Volodin notifications@github.com wrote:

does any of these two robots support nvidia jetson NX / nvidia IsaaC SDK? what components does the original mit cheetah use?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mit-biomimetics/Cheetah-Software/issues/31#issuecomment-634249038, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC2O5VL2APM3V4SZOP3HA43RTQN6VANCNFSM4LVZ5N2A .

-- Xingye (Dennis) Da Ph.D. School of Mech. Eng. University of Michigan

AndreV84 commented 4 years ago

Dear Xingye (Dennis) Da, Which exactly video are you referring to saying "Please check the video"? The URL that you pointed to seems to open the generic documentation. It doesn't seem possible to find any information on "laikago auto navigation" there. Could you extend where exactly I can find steps on how to implement auto navigation with IsaaC SDK, please? Could you share any insights on how to upgrade TX2 to a more powerful Xavier NX, please? How to setup the robot to be operated by the Isaac? Andrei, Nvidia Community Developer pinned thread https://forums.developer.nvidia.com/t/supported-quadrupeds/124701

SteveMacenski commented 4 years ago

does any of these two robots support nvidia jetson NX / nvidia IsaaC SDK?

To be specific, I don't think any of the manufacturers specifically support Jetson / Intel boards (though you can buy either way of any of those options). I think its Nvidia that's semi-supporting Unitree - I know they have a few in house they use for various demos / R&D.

AndreV84 commented 4 years ago

from Unitree: "A1 Explorer is based on A1, adds some accessories, such as NVIDIA Jetson TX2 with software or Lidar with software."

xdaumich commented 4 years ago

Andrey, the video in the last email is referred to as this one. It is a proof of concept that Isaac SDK on Laikago. The auto navigation feature is similar to Kaya and Carter navigation, which have been included in the Isaac Documentation. The newest SDK will be available later this week, which included laikago driver and navigation examples. [image: Screenshot 2020-05-27 09:56:58.png]

On Tue, May 26, 2020 at 9:31 PM Andrey Volodin notifications@github.com wrote:

they do, Unitree used TX2

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mit-biomimetics/Cheetah-Software/issues/31#issuecomment-634421453, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC2O5VISYN7KYHYQQTLYGYTRTSJR7ANCNFSM4LVZ5N2A .

-- Xingye (Dennis) Da Ph.D. School of Mech. Eng. University of Michigan

AndreV84 commented 4 years ago

@xdaumich could you share the video url once again, please? the video file you are talking about? or youtube video? I missed it. How do I watch the proof of concept IsaaC SDK on Laikago? Could you send the video url as a response to this question? when you are saying 'referred as this one" which exactly do you mean? The last post from you only contained text.

AndreV84 commented 4 years ago

the screenshoot did not get attached to the github message

junzengx14 commented 4 years ago

Andrey, the video in the last email is referred to as this one. It is a proof of concept that Isaac SDK on Laikago. The auto navigation feature is similar to Kaya and Carter navigation, which have been included in the Isaac Documentation. The newest SDK will be available later this week, which included laikago driver and navigation examples. [image: Screenshot 2020-05-27 09:56:58.png] On Tue, May 26, 2020 at 9:31 PM Andrey Volodin @.***> wrote: they do, Unitree used TX2 — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#31 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC2O5VISYN7KYHYQQTLYGYTRTSJR7ANCNFSM4LVZ5N2A . -- Xingye (Dennis) Da Ph.D. School of Mech. Eng. University of Michigan

Your screenshot is missing. :)

xdaNvidia commented 4 years ago

@AndreV84 The new isaac has released. https://developer.nvidia.com/isaac-sdk The laikago driver and auto-navigation project doc are included under /packages/laikago/ @junzengx14 thanks :)

AndreV84 commented 4 years ago

how to get it to be Jetson NX instead of Jetson TX2?

xdaumich commented 4 years ago

It should be the same. Just follow the instruction for tx2.

On Thu, May 28, 2020 at 12:48 PM Andrey Volodin notifications@github.com wrote:

how to get it to be Jetson NX instead of Jetson TX2?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/mit-biomimetics/Cheetah-Software/issues/31#issuecomment-635558895, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC2O5VM6ZGBMEI5HUQLSTE3RT25X3ANCNFSM4LVZ5N2A .

-- Xingye (Dennis) Da Ph.D. School of Mech. Eng. University of Michigan

AndreV84 commented 4 years ago

Jetson NX will work using the same instruction, but it will nether work with Aliengo, nor with A1, not A1 non explorer version? Or one can get Aliengo or A1 and add jetson on themselves? Or it will be more complicated than that? They do not issue Laikago anymore but have $2.9k Aliengo or 13k tagged A1 [explorer] https://www.aliexpress.com/item/10000184966282.html?spm=a2g0o.store_home.slider_1000632650.0&fbclid=IwAR2NCQfY5KOtNPXtygVZQJtipl5oKazdO87y5T_3zXAzo6A6___ccexxQ7c

xdaumich commented 4 years ago

I don't see any compatible issue with Aliengo or Ai.

On Thu, May 28, 2020 at 11:21 PM Andrey Volodin notifications@github.com wrote:

Jetson NX will work using the same instruction, but it will nether work with Aliengo, nor with A1, not A1 non explorer version? Or one can get Aliengo or A1 and add jetson on themselves? Or it will be more complicated than that? They do not issue Laikago anymore but have $2.9k Aliengo or 13k tagged A1 [explorer]

https://www.aliexpress.com/item/10000184966282.html?spm=a2g0o.store_home.slider_1000632650.0&fbclid=IwAR2NCQfY5KOtNPXtygVZQJtipl5oKazdO87y5T_3zXAzo6A6___ccexxQ7c

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mit-biomimetics/Cheetah-Software/issues/31#issuecomment-635784119, or unsubscribe https://github.com/notifications/unsubscribe-auth/AC2O5VLC2MK3R4ZA5BC7PS3RT5H6FANCNFSM4LVZ5N2A .

-- Xingye (Dennis) Da Ph.D. School of Mech. Eng. University of Michigan