I have a related question.
I do robot feasibility studies all the time. I use SolidWorks which has a built-in IK solver that is adequate. However, there are really not any other tools in SW that help with this task, and making objects in SW is not nearly as fast as in SU. SU is also a tenth of the price of SW, so not burning up a seat of SW for 1-3 weeks is a factor.
So, I have done quite a few studies and sketch-ups for robotic work-cells in SU as well. But since it had no real jointing or IK at all, I went back to SW for a while.
Just the controlled joints alone is enough to maybe make SU more productive than SW for this type of testing, but I am wondering if SP has any IK capability, even if it isn't real-time. I do 4 to 7 axis robots, 3 to 4 axis SCARA robots, and 2 to 4 axis cartesian robots all the time, and what I would need is to move the end joint or end-effector (gripper, welder, grinder, dispenser, etc.) by dragging to some point, rotating to some orientation, etc., and then something solves for the joints and tries to reconnect everything correctly in a fashion that satisfies the joint connections and limits. If it fails, it pops back, or fail-beeps, or turns something red, or whatever. I'm sure you see or already know that IK solving makes obtaining a specific multi-joint pose much easier and quicker.
I've just read as much as I could find online, but it looks like I'll just have to use it to see what's in SP for my puposes.
Another useful feature for robot studies would be to save the joint angles/cylinder positions as a 'pose' in a pose-list (or as a 'move' in a move-list with additional parameters such as max velocity/accel/decel), and then the robot or mechanism could be placed back in these saved poses easily, or it could run through a poses-list for animation playback purposes. A robot or machine could then be programmed to run through its cycle and this cycle could be played at trigger points in the simulation or just repeated in a loop.
Thanks for any feedback you might have on this!
Jay
P.S.
Also, regarding programming inputs, I do a lot of the robot programming for my company. I like doing the programming side (but not the design and build side) of hobby-robotics as well. I've long wanted to come up with a kind of standard robot with standard in/outs that can be programmed in a programming competition, mostly for high-school and college level students.
The application to SP would be that SP becomes the battleground where two or more robots compete to either fight each other, or complete physical, non-violent tasks, where a physics engine is critical in either case. The robots, either wheeled or tracked to simplify the programming control task, would either have some kind of gripping mechanism for tasks such as pick and place, or weapons of some sort. A bullet-spawning cannon and/or laser could be used to hit a target object on the sides or top of the opposing robot, and once enough 'damage' had been triggered, the robot is considered to be destroyed. (Or the simple detection of an enemy bullet/beam colliding with a robot triggers the 'damage'.) Power budgets, cannon- and laser-overheating, ammo-limits, and obstacle-avoidance could be introduced to make the programming very challenging. Hitting an obstacle could cause as much damage as a cannon-hit, for example, depending on speed and type of object hit. Other features such as a shield bubble (a transparent sphere that gets unhidden on command) that drains power, but prevents a projectile from successfully hitting a robot could be added.
And of course, if it can be controlled by a program, it could also be controlled by a joystick, allowing for a person to 'play' a robot. (Got dual game-controller input?)
It sounds like this is largely implemented already, but the one key to programmable robots is some sort of sensoring system where a sensor can detect what object is infront of it, and how far away it is.
I played a robot-programming game once where the chassis had a front sensor for the purposes detecting any robot or obstacles at a distance of one or two game-cells in front of the chassis, and the turret had a sensor that could detect high obstacles or enemy robots at any distance in front of the turret, which could rotate 360 deg. You had to basically query a port when you wanted to check for a sensor detection, and an integer would be returned on whether a robot was detected, or it was an obstacle, rubble, water, or nothing. Hitting a robot or obstacle resulted in damage to your robot, running over rubble gave you some damage, and maybe a power penalty as well, running through water was a power-penalty, and 'nothing' was just standard power-usage with no damage. It had a laser for a direct shot that could overheat, so a temp port had to be queried. Same for a cannon that fired a ballistic shot that could go over any obstacle to the specified range (write an integer to a gun-range port) and angle (write an integer to the turret-angle port) and cause area damage.
Implementing a sensor object that has a configurable distance limit and returns whether an object is present within that distance limit (and possibly an object ID) would be great for using as a general trigger in any sort of physics simulation.