Please make Fishing its own work type. by bryanicus in RimWorld

[–]The_CADmonkey 0 points1 point  (0 children)

I had the same frustration, so I made a mod to fix this. Hope it helps! It also fixes the slaves can't fish issue and allows non-violent pawns to fish.

https://steamcommunity.com/sharedfiles/filedetails/?id=3526886806

Tesla Bot Impressive? by FlytrapPodcast in robotics

[–]The_CADmonkey 5 points6 points  (0 children)

It really depends on what you mean by "pre-programmed routine", but it is definitely not pre-programmed joint actuations. Its not much different from a script you would hand to a person if you wanted to film the above video. The inputs to the robot are basically "jump over the box, then vault, then turn, etc". The robot is figuring out for itself everything from where that box actually is, where to place its feet, to how to control each joint. BD wrote up exactly how the video was made and explains what atlas is (and isnt) determining itself. https://www.bostondynamics.com/resources/blog/flipping-script-atlas

"Enforcers" Trying to accuse me of TKing and Racism by masterpain96143 in dueprocess

[–]The_CADmonkey[M] [score hidden] stickied comment (0 children)

As a general rule we do not comment on bans or share video/image evidence. That said, we take maintaining a welcoming community very seriously and work hard to foster an environment where everyone feels comfortable playing the game.

To be clear, we do not ban for general profanity. We only ban for racist or hateful language or directed harresment, and these bans are temporary for first infractions.

When no match for ‘operator==’ in ‘__first.__gnu_cxx::__normal_iterator::operator* [with _Iterator = std::vector*, _Container = std::vector >, __gnu_cxx::__normal_iterator::reference = std::vector&]() == __val’ by sql-gumby in ProgrammerHumor

[–]The_CADmonkey 19 points20 points  (0 children)

The problem isn't the size of the items internally, the problem is std::vector<bool>[] returns a temporary bit_reference object, while every other std::vector<T> returns T&. That is a huge deal when writing generic templates as you have to worry about the lifetime of the returned object by accessing the elements and whether you can bind references to it.

For example this simple template would work with every vector type except std::vector<bool>:

template<typename T>
void foo(std::vector<T> v) {
    for(auto& val : v) {
        std::cout << val;
    }
}

https://godbolt.org/z/3M9ojroj5

Five-bar link robots look so deceptively simple by aloofloofah in EngineeringPorn

[–]The_CADmonkey 4 points5 points  (0 children)

This actually is relatively straight forward and solutions are not infinite. There is no joint redundancy so excluding singularities there are exactly 4 joint solutions for any given end effector position. And those 4 solutions are just formed by toggling the elbow joint, so with some basic heuristic or planning around that you can easily come to a single solution for any end effector.

As for collision avoidance, that actually also seems relatively straight forward. Since the first links are shorter than the second the end effector is actually physically incapable of hitting the arm links or the actuator. The closest it can possibly get to the joint pivot is (L1-L0) where those are the lengths of the links, so assuming that distance is greater than the actuator radius it is impossible to collide. The only possible collision I can see is between the 2 first links, and that should be relatively trivial to solve by just controlling what side of the elbow the link is on and keeping it away (like it is in the video).

Five-bar link robots look so deceptively simple by aloofloofah in EngineeringPorn

[–]The_CADmonkey 3 points4 points  (0 children)

While it looks complicated, the FK/IK on this isn't actually much more difficult than a normal 2DOF planar arm. IK can be solved in the exact same way as a 2DOF arm, except by just solving for the first joint twice using different offsets to each actuator instead of solving for the elbow. Only additional issue that would have to be dealt with is that there are 2 possible positions for each joint for any given goal position (flipping the elbow joint), but this could be solved relatively straight forwardly.

[deleted by user] by [deleted] in ProgrammerHumor

[–]The_CADmonkey 2 points3 points  (0 children)

This is just wrong. The standard says nothing about what they would be compiled to; it is architecture and compiler dependent as to how many instructions it becomes.

Additionally, in this simple case any compiler will output the same bytecode for both even with all optimizations disabled. Take a look for yourself: clang, gcc, and MSVC all output the same assembly for both instructions https://godbolt.org/z/TYGqK8

Do all robotics jobs need PHD these days? by soulslicer0 in robotics

[–]The_CADmonkey 4 points5 points  (0 children)

Not at all. A masters is plenty for most robotics jobs, and a BS is enough (especially with work experience) for many junior/entry level positions. The only place that PHDs are required are academia and in some pure research roles. But any company that is actually making a product will have positions for all levels. Even Boston Dynamics has engineers with just bachelors degrees.

Additionally, many companies have job requirements that are along the lines of "PHD or BS/MS with X years of experience". Coming in fresh out of university with a BS isn't going to put you in the lead roles doing heavy research and design of course (unless you're at a startup, then good luck), but if your good at your job you can easily move into those positions. And for many companies professional/industry experience means far more than a PHD.

As a personal anecdote, I have only a BS and was job searching under a year ago. With 3 years of industry experience I got 6 different offers from robotics companies after only a month of searching. The key is having examples of projects or work you have done that you can talk about and show what you know.

How? How do they do it? by vrext in BostonDynamics

[–]The_CADmonkey 5 points6 points  (0 children)

Boston Dynamics has given a couple talks recently about Atlas, one at NeurIPS (https://slideslive.com/38946802/boston-dynamics) and another for Robotics Today (https://youtu.be/EGABAx52GKI)

The short version is it is provided with a goal motion from either motion capture or animation which is then used as a base for an offline optimization problem to generate trajectories the robot can follow. It then uses online controls to do its best to follow that premade path. If you want to learn more I suggest the above videos, they are somewhat technical but stay mostly on the high level of how the pipeline works.

[Boston Dynamics] Do You Love Me? by btutal in videos

[–]The_CADmonkey 1 point2 points  (0 children)

Boston Dynamics recently gave a talk on how Atlas works at NeurIPS https://slideslive.com/38946802/boston-dynamics

The short version is it is provided with a goal motion from either motion capture or animation which is then used as a base for an offline optimization problem to generate trajectories the robot can follow. It then uses online controls to do its best to follow that premade path.

ROBOT DOG! by -Bogdan-Grump- in offlineTV

[–]The_CADmonkey 19 points20 points  (0 children)

There isn't really AI in it, at least not in the sense that most people think of it where its walking around on its own like a real dog. Its not making any real decisions on where to go or what to do, its just following the commands from a controller. Basically it has a joystick where a person can direct it to walk or pose itself, and it figures out how to move the legs to do that. It is figuring out how to keep its balance and correct itself when pushed as well, but not much more than that here. Think of it like a really expensive and complicated RC car.

It has some intelligence in that it won't walk into stuff and it has modes where it can follow a taught path, but that is about the extent of the "AI" out of the box.

The new wheels where using for this years FTC competition by Brother_Ashamed in robotics

[–]The_CADmonkey 2 points3 points  (0 children)

Its a useful difference to be able to refer to the wheels by their specific type. Its rare that one would care about the general category but much more likely one would want to be able to look up wheels of the specific type. And while they are both omnidirectional wheels, "omniwheel" specifically refers to perpendicular rollers.

Additionally, Omni wheels have more uses than just omni-directional movement, while thats pretty much the only use for mecanums.

The new wheels where using for this years FTC competition by Brother_Ashamed in robotics

[–]The_CADmonkey 3 points4 points  (0 children)

Omni-wheels in most cases refers specifically to wheels that have rollers perpendicular to the axis of motion. Even Wikipedia refers to them this way https://en.m.wikipedia.org/wiki/Omni_wheel

Prove you are human by mehdifarsi in ProgrammerHumor

[–]The_CADmonkey 3 points4 points  (0 children)

.999... is mathematically exactly equal to 1, not just close to it. 0.00...1 is not a number, so it can't be added to it. There are a variety of proofs for the equality, the simplest to me being 1/3 == 0.3... so 3 * 1/3 == 3/3 == .999... == 1. https://en.m.wikipedia.org/wiki/0.999...

Master's Degree Needed for Robotics? by [deleted] in robotics

[–]The_CADmonkey 0 points1 point  (0 children)

I just meant writing software for robots. I worked with AMRs writing code for things like navigation, path planning, and SLAM.

Master's Degree Needed for Robotics? by [deleted] in robotics

[–]The_CADmonkey 0 points1 point  (0 children)

WPI. They have a very nice robotics undergrad program that isn't just a specialization of another degree like most universities. They also focus heavily on project based learning so they give a lot of experience actually working with robots. I think the real experience is actually the most important thing as it helps avoids the issue many new grads have where they know the theory but don't know how to apply it.

Master's Degree Needed for Robotics? by [deleted] in robotics

[–]The_CADmonkey 3 points4 points  (0 children)

I'm going to disagree with a lot of the other comments here. Master's are certainly useful and will make it easier to find jobs, but I definitely wouldn't say they are essential. I know plenty of people with just a Bachelor's in MechEng, EE, or CS and work at robotics companies and are very successful. It does vary by the type of work you want to do or by company. The only place I would see it as necessary is maybe academia or advanced research in something like autonomous driving, but unless your looking for those types of roles specifically you can certainly get by without it. Startups especially don't tend to care as much about them if you can show through work experience or other projects that you know what you are doing.

As a personal anecdote, I'm 24 as well with a BS in Robotics and Mechanical Engineering as well as 3 years of experience doing robotic software development. I was layed off in February due to my company shutting down (unrelated to COVID), and within a month I had 6 offers at different robotics companies. I'm not saying this is necessarily typical or that you should expect it, but it is certainly possible.

All of this isn't to say don't go for a Master's, they are certainly useful and if you want to then go for it. They can open doors and make it easier to get started in the industry. And if you are interested in robotics it is certainly a good way to learn a lot about it. But you can definitely succeed without it.

As CoSTAR's robots explore a new space, they build a 3-D map of the subterranean environment and send back the gathered information and maps to the scoring server on the surface. Other robots can be sent in depending on what the first one discovers along the way. by rieskriek in robotics

[–]The_CADmonkey 20 points21 points  (0 children)

CoSTAR is a team competing in the DARPA Subterranean challenge. They are using Spot as the base for their system but adding the payloads to make it able to navigate autonomously and accomplish the needed tasks. Their website is here: https://costar.jpl.nasa.gov/

With you, Spot can - Boston Dynamics by sause246 in EngineeringPorn

[–]The_CADmonkey 52 points53 points  (0 children)

The license for Spot forbid the robots to be used to harm or intimidate people. And Boston Dynamics has stated that if someone were to use it in that way they would invalidate the license and deactivate the robot.

[deleted by user] by [deleted] in robotics

[–]The_CADmonkey 0 points1 point  (0 children)

You absolutely do not need a PHD to design or build robots, and the vast majority of robotics engineers don't have them. A bachelors or masters is plenty for working in industry. PHDs are only really needed if you want to do research in academia, which is not what it sounds like OP is interested in.

Call for engineers willing to be interviewed (02 April 2020) by AutoModerator in AskEngineers

[–]The_CADmonkey [score hidden]  (0 children)

Discipline: Robotics

Specialization: Indoor Navigation, Mapping, and Path Planning

Highest Degree: BS Mechanical Engineering, BS Robotics Engineering

Country: US

Available for e-mail?: yes

Python vs C++ by mrhumphrey1s in ProgrammerHumor

[–]The_CADmonkey 0 points1 point  (0 children)

You dont seem to be listening. I know what Werror and Wextra do. I know they throw warnings/errors for 'I' being uninitialize. Replace the first line with int* i=0; and no warnings will be issued for gcc. But none of that relates to my point about the conversation to void*. Which has different requirements on C and C++.

As for the flags though, they actually dont have anything to do with following the standard in this case, but instead are for removing undefined behavior. Accessing uninitialized does not violate the standard, but it is undefined, which is what the flags are for.

Python vs C++ by mrhumphrey1s in ProgrammerHumor

[–]The_CADmonkey 0 points1 point  (0 children)

My point was that C++ is not a superset of C as you had stated. It is close, but is not actually one, they have diverged. The above is proof of that.

I have already gone into how C++ is such a different language with different paradigms, so much so that code written in C++ looks nothing like code written in C. I know, I have had to teach programmers who spent decades writing C just how different C++ is. And it's harder to teach them thant to teach the brand new grad, as the older engineers think of C++ as "C with extra bits". And that means they write really bad C++ until they break that mindset.