This repository contains the implementation of a simulated environment for a UR10e robot arm using ROS 2. The robot arm performs sanding tasks through a behavior tree, including home position, quality check of the surface, sanding movement, and returning to the home position. The implementation uses MoveIt2 for path planning, Rviz for visualization, and action clients for task execution.
- Simulation of UR10e robot arm in Gazebo
- MoveIt2 integration for motion planning and visualization in Rviz
- Behavior tree to handle sequential task execution (e.g., home position, quality check, sanding, back to home)
- Force feedback for end-effector interaction (via
/jttopic)
- ROS 2 (Humble)
- Gazebo
- MoveIt2
- Behavior Trees (Action clients, servers)
- ros2_control and related plugins
Start the simulated environment with the UR10e robot arm in Gazebo:
ros2 launch ur_description_pkg gazebo.launch.pyStart MoveIt2 for robot motion planning and visualization in Rviz:
ros2 launch robot_moveit moveit.launch.pyRun the robot server node for executing tasks and robot path planning using Cartesian paths:
ros2 run robot_moveit robot_server_nodeRun the behavior tree sequence for robot task execution:
ros2 run control_robot sandingThis will execute the following sequence:
- Move to home position
- Perform surface quality check
- Execute sanding movement
- Return to home position
To monitor the force feedback from the end effector, run:
ros2 topic echo /jt-
Finding a force sensor plugin for ROS 2 in Gazebo:
- Took significant time to search for a compatible force sensor plugin for ROS 2 simulation.
-
Understanding Behavior Trees and ROS 2 Integration:
- Faced multiple errors while integrating behavior trees with action clients.
- The official ROS 2 documentation provided crucial help in successfully implementing the sequence node.
Watch the video demonstrating the implementation of the sanding behavior tree and robot task execution: Watch Video
This repository is licensed under the MIT License. See the LICENSE file for more details.
