Joshua, I’m not sure which RoboSimian demo you’re looking at, but both demo_ROBOT_RoboSimian_Rigid (or _SCM) and demo_PARSER_URDF_RoboSimian apply motor actuations to the various robot joints (the difference between the two is that in the former the RoboSimian model is constructed explicitly, while the latter uses the Chrono URDF parser).
Granted, the motors used in the RoboSimian model uses “position” motors (specifying the joint angles as functions of time), except for the wheel joints which are actuated at velocity level. What I did in these demos to bring the robot from the “design pose” to the “start pose” is to fix the robot chassis (root body) until the desired start pose is reached. After that, I release the robot onto the ground. You should be able to do the same thing while using torque-controlled joints (use ChParserURDF::ActuationType::FORCE if building the robot from a URDF file, or else use ChLinkMotorRotationTorque elements to connect bodies). You can get the reaction in any Chrono joint using the functions GetReaction1() and GetReaction2(), for the reaction wrench on the first and second body, respectively. Furthermore, if you use a motor instead of a joint, you can also get the motor torque (or force for a linear motor) acting on the DOF actuated by that motor. Of course, for a torque (force) actuated motor, that is not interesting. --Radu From: [email protected] <[email protected]> On Behalf Of Joshua Philip Martin Sent: Monday, October 14, 2024 9:03 PM To: ProjectChrono <[email protected]> Subject: [chrono] Questions about Robot Joints I am trying to do some reinforcement learning via gym-chrono with a custom robot system; while I know the current Project Chrono iteration has diverged quite a bit from the original gym-chrono branch, I've been trying to set up my environment in gym-chrono for training and have some questions about core Chrono functionality. 1. Once spawned into a simulation, is there a way to manually change the starting joint angles? None of the demos I've seen with complex rigid body sims (e.g. the RoboSimian demo, as well as the Unitree demo in gym-chrono) do anything but spawn the system at the default "zero" joint angles. I'm interested in having my system be torque controlled at all joints, so I'm unsure if spawning the robot with the motors at position setmode, setting them (thereby imparting moments and forces on the floating, yet-to-touch-the-ground system), then switching to force setmode for later control is possible or feasible; if a better way exists to do this, please let me know! 2. Is there a convenient way to extract the internal forces and torques acting at a link/joint? Since the dynamics simulation needs to propagate wrenches through the rigid body system, I assume those calculations must be done somewhere under the hood in Chrono; I'm just not sure where to access them. Having access to this like one would via a 6-axis force/torque sensor would be very helpful. -- You received this message because you are subscribed to the Google Groups "ProjectChrono" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/e70879a9-ece7-4143-9d36-1bfca85761a1n%40googlegroups.com<https://urldefense.com/v3/__https:/groups.google.com/d/msgid/projectchrono/e70879a9-ece7-4143-9d36-1bfca85761a1n*40googlegroups.com?utm_medium=email&utm_source=footer__;JQ!!Mak6IKo!P7dlRSIicmL0hlRS42vQTHbb4jqI1bMq8sw-BoOn6mBqYSRrYxYRvQ1gzo2O4XH7iUf4jDze2msMBOaw$>. -- You received this message because you are subscribed to the Google Groups "ProjectChrono" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/CH3PPF46CDC218597F1E858798EC0459ADDA7462%40CH3PPF46CDC2185.namprd06.prod.outlook.com.
