Replies: 8 comments
-
@nikepupu I had the same question, I have a mobile manipulator (differential), and I modified the configuration file for my robot, but couldn't find any examples for differential base robots. Were you able to find something? Thanks |
Beta Was this translation helpful? Give feedback.
-
yes, I am able to get my robot to work through modifying the Franka example in the code base. However, I need to modify the USD file quite a lot to get it to work. Somehow there are some issues with joints when changing URDF to USD. |
Beta Was this translation helpful? Give feedback.
-
That's amazing, what mobile robot are you using? Also, is it holonomic or differential? Thanks |
Beta Was this translation helpful? Give feedback.
-
It's a ridgeback with 2 UR5s |
Beta Was this translation helpful? Give feedback.
-
Oh okay, that's a holonomic drive. I doubt if orbit supports differential or Ackerman drive for now, will have to dig more into documentation I guess. Thanks for the response though! |
Beta Was this translation helpful? Give feedback.
-
I don't think orbit or isaac sim really has the concept of holonomic drive or differential drive. It's actually implemented through two prismatic joint in x and y direction and a revolute joint in x-y plane for holonomic drive. It not really simulating a wheel rotating. I don't really think the simulator is complex enough to handle actually wheel movement for a very complicated base. For differential, you need to come up with different constraints or equivalents. |
Beta Was this translation helpful? Give feedback.
-
Yes you are right. I suppose with prismatic x, y and revolute z we can model almost every holonomic drives but won't be the same for differential. Well that solves my problem. I have a mobile manipulator to I'm not sure if I'll be able to use underlying or it's feature even after modelling the constraints. Thanks though for the clarification! |
Beta Was this translation helpful? Give feedback.
-
Not sure if this helps, but I was able to get the Nvidia Carter robot working with differential control commanding wheel velocities independently by simply remapping the dofs: from omni.isaac.orbit.robots.mobile_manipulator import MobileManipulatorCfg
from omni.isaac.orbit.actuators.group import ActuatorControlCfg, ActuatorGroupCfg
from omni.isaac.orbit.actuators.model import ImplicitActuatorCfg
ROBOT_USD = "robot_usd_path"
ROBOT_CFG = MobileManipulatorCfg(
meta_info=MobileManipulatorCfg.MetaInfoCfg(
usd_path=ROBOT_USD,
base_num_dof=2,
tool_num_dof=0,
arm_num_dof=0,
),
init_state=MobileManipulatorCfg.InitialStateCfg(
dof_pos={
'left_wheel': 0.0,
'right_wheel': 0.0,
},
dof_vel={
'left_wheel': 0.0,
'right_wheel': 0.0,
},
),
ee_info=MobileManipulatorCfg.EndEffectorFrameCfg(
body_name="chassis_link", pos_offset=(0.0, 0.0, 0.1034), rot_offset=(1.0, 0.0, 0.0, 0.0)
),
actuator_groups={
"base": ActuatorGroupCfg(
dof_names=["left_wheel", "right_wheel"],
model_cfg=ImplicitActuatorCfg(velocity_limit=100.0, torque_limit=1000.0),
control_cfg=ActuatorControlCfg(
command_types=["v_abs"],
stiffness={".*": 0.0},
damping={".*": 1e5}),
),
},
) The robot can then be operated using: ...
actions = torch.tensor([[left_vel, right_vel] for _ in range(robot.count)], device=robot.device)
robot.apply_action(actions)
... |
Beta Was this translation helpful? Give feedback.
-
Question
I have a usd file for my dualarm mobile robot. I want to run some RL with it. Is there any examples or descriptions on how I can get started?
Beta Was this translation helpful? Give feedback.
All reactions