kobuki-base / kobuki_ros

ROS2 runtime libraries, nodes and launchers for the Kobuki
46 stars 27 forks source link

Port kobuki keyop to ROS 2. #3

Closed clalancette closed 4 years ago

clalancette commented 4 years ago

Signed-off-by: Chris Lalancette clalancette@openrobotics.org

One important thing to note; there is intentionally no launch files in this PR. That's because launch does not pass stdin through to processes, so there is no way for keyop to access the keyboard. So I didn't even include an example to ensure we don't confuse users.

clalancette commented 4 years ago

What would be the best way to ros2 run this node and pass it your own parameters?

So, the way I've been testing it is like:

ros2 run kobuki_keyop kobuki_keyop_node --ros-args -p angular_vel_max:=1.3

It's slightly ugly, but I'm not sure how to do better at the moment. I'll also note that this syntax only works on Eloquent; I don't exactly know how to pass it in Dashing without writing it to a config file.

stonier commented 4 years ago

Heading out for a few hours. Feel free to merge this when last tasks have been addressed. I'll create another meta-issue for other remaining work.

clalancette commented 4 years ago

Probably worth slightly modifying this with it's own command line argument parsing so we can do something like:

Oh, I should have mentioned that that already works, both in Dashing and in Eloquent (though with different syntaxes).

Eloquent:

ros2 run kobuki_keyop kobuki_keyop_node --ros-args --params-file config/keyop_params.yaml

Dashing:

ros2 run kobuki_keyop kobuki_keyop_node --ros-args __params:=config/keyop_params.yaml

So I think that task ends up being a documentation one. I'll still open an issue about it, then merge this PR.

clalancette commented 4 years ago

All right, I've opened #5 to fix up the documentation for this package. @stonier it looks like I can't merge on this repository, so please merge this PR up when you get a chance, thanks.