Dual arm tutorial for ROS2#3
Conversation
- Add ros2 control tags/parameters for each robot arm - Some parameters are specific to each arm and some common to both - Ports and IP different for each arm - RTDE scripts, mock hardware, headless mode common to the arms
- Instantiates one controller manager for both arms and passes the controller configs and update rate - Receives the robot_description param from the robot_description_topic (robot_state_publisher) - Does not yet implement io_and_status_controller and forward_velocity_controller - Has functionality to spawn and stop controllers for both arms - Only works in simulation and not with real hardware - Limited number of launch parameters as of now
…Universal_Robots_ROS2_Tutorials into dual_arm_tutorials
|
First, Thank you for your contribution. |
|
@eladpar, I recommend ensuring you pass all the parameters for ros2_control for both arms in your description. In the Humble version of ur_description, the ur_macro.xacro contains the ros2_control tags, unlike in Rolling. Once you have configured these parameters, you can refer to the my_dual_robot_cell/my_dual_robot_cell_control/config/combined_controllers.yaml file, which defines controllers for both arms. In your driver launch file, try spawning the controllers using only the ros2_control_node (comment out everything else). Once that works, you can continue testing and gradually add all the other nodes and functions. |
|
@fmauch Once this PR has been merged do you think we can make a branch for humble? I'd be willing to make the tutorials. |
|
@fmauch Can you suggest how I can write the docs (reST documentation). Do you have a Sphinx workflow for the same? |
fmauch
left a comment
There was a problem hiding this comment.
Sorry for not coming back on this earlier. I appreciate your efforts very much @ShahhhVihaan. I'll review this bit by bit in order to make it easier to find time slots for reviewing.
So far, I have been looking a the description which looks very good, overall. Please see my comments on suggestions for improvements.
my_dual_robot_cell/my_dual_robot_cell_description/meshes/171005_Motek_Monitor_L.dae
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_description/urdf/my_dual_robot_cell_macro.xacro
Outdated
Show resolved
Hide resolved
fmauch
left a comment
There was a problem hiding this comment.
Second round of reviewing, this time the control package.
my_dual_robot_cell/my_dual_robot_cell_control/config/combined_controllers.yaml
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/config/update_rate.yaml
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/launch/rsp.launch.py
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/launch/rsp.launch.py
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/launch/rsp.launch.py
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/launch/rsp.launch.py
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/launch/start_robots.launch.py
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/launch/start_robots.launch.py
Outdated
Show resolved
Hide resolved
my_dual_robot_cell/my_dual_robot_cell_control/launch/start_robots.launch.py
Show resolved
Hide resolved
This should make it easier to distinguish
urfeex
left a comment
There was a problem hiding this comment.
Going to approve and merge this for now. A written documentation will be contributed in a separate PR by a different author.


This draft PR addresses issue #1 regarding a dual arm example setup. It introduces three packages that perform the following functions:
This has been tested successfully on two UR3 arms. Here's the ROS graph for the same:

I need to clean up the packages and write tutorial documentation before it is ready to merge.