Add Reachback mobile manipulator model#227
Conversation
There was a problem hiding this comment.
Yay, thank you! Good to see this. Your approach looks totally sensical, though I have a few comments:
- Testing wise, I would try out all the Python examples (IK, RRT, and Oink specifically)
- The Rolling job is known to fail right now because they just cut over from 24.04 to 26.04 but the image isn't updated yet. So ignore it
- As we start collecting more robot model, file size is going to keep being more of a problem. I have a standing issue to resolve this, but not something for today. But if you have any ideas...
The one that maybe we do want to look at for this PR is that the Kinova model also has a Robotiq. So maybe we can find a way to reuse these meshes instead of duplicating them?wait different robotiq model nvm
| tform=pin.SE3(np.eye(3), np.array([0.0, 0.0, -0.1])).homogeneous, | ||
| color=np.array([0.5, 0.5, 0.5, 0.5]), | ||
| disabled_collisions=[ | ||
| "base_link", |
There was a problem hiding this comment.
This seems like it should be a permament disable in the SRDF?
There was a problem hiding this comment.
I'll admit this is mostly copy-paste from https://github.com/open-planning/roboplan/blob/main/roboplan_examples/python/common.py#L435
For the reachback, base_link has no geometry though, chassis_link is the link with geometry. I can just as well remove base_link from here.
| </material> | ||
|
|
||
| <link name="base_footprint" /> | ||
| <joint name="base_joint" type="planar"> |
There was a problem hiding this comment.
Cool, glad to see the planar worked!
There was a problem hiding this comment.
Haha, yes! When I first showed you the mobile manipulator with roboplan, I noticed you didn't have planar joint support so I just stacked x, y, and theta joints. But since that recently changed, I figured I should restore the planar joint, and it worked fantastically :D
I assume we don't want to use LFS? Barring that, I'd imagine we'd want to have the models stored and retrieved from somewhere else. |
Right. LFS helps retrieve the data, but it doesn't dimish the file size of the entire package. It would have some be something like the latter, which is done for example in https://github.com/robot-descriptions/robot_descriptions.py |
There was a problem hiding this comment.
I tested this branch during my lunch break on all the examples:
- In the RRT example, if you add
--include-obstacles, then there is no valid initial configuration. I think the wheels are also colliding with theground_planeobject and may need to be excluded. Alternatively you could just lower the ground plane collision object, which also lets you remove thechassis_linkfrom the exclusion list. - IK examples all worked great ✔️
There was a problem hiding this comment.
Indeed, I deleted it and just used the collision since it looks the same to me anyway 🤷
Thanks for the pointers, got it working with --include-obstacles too. My bad for not checking that was even an option. I was kind of wondering where those test obstacles were used 😅
reachback.webm
- Lower ground plane to be at the height of the wheels - Disable collisions between ground plane and wheels anyway - Just use the collision mesh for the gripper
|
By the way, I just went down a perf rabbit hole that should help with this example tremendously: #232 |
Add the Reachback, which is more-or-less a Doosan H2017 bolted on top of a Clearpath Ridgeback with some other bits added in.
I'm new to this project, so I'm not 100% sure how you guys like to run and test things, so if there are millions of conventions I'm violating, let me know. I just tried to run the RRT demo with the Reachback model:
reachback-roboplan.mp4