This description involves controlling a Mycobot 280 robot using ROS 2, MoveIt!, and Gazebo simulation. The system allows for sending desired poses to the robot, launching ROS 2 control simulations, and running the robot in a real environment.
- Mycobot 280 Control: Control the Mycobot 280 robot using ROS 2.
- MoveIt! Integration: Use MoveIt! for planning and executing robot trajectories.
- ROS 2 Control: Manage robot hardware interfaces and controllers using ROS 2 control.
- Gazebo Simulation: Simulate the robot in a virtual environment using Gazebo.
# Launch the Mycobot Gazebo simulation
ros2 launch mycobot_gazebo mycobot_280_arduino_bringup_ros2_control_classic_gazebo.launch.py
# Launch the simulation move group
ros2 launch mycobot_moveit_config move_group.launch.py
ros2 launch mycobot_280_description move_group.launch.py
Listens to [X, Y, Z] topic and sends the desire pose to moveit2:
# Launch the MoveIt! test trajectory
ros2 launch moveit2_scripts test_trajectory.launch.py
Powerpoint to show solution: https://github.com/ColemanFarv/ros2_ws/blob/main/Breast%20Cancer%20Scanning%20with%20robot.pptx
-
Scan cavity with intel intellisense depth camera
-
Put image in jupiter notebook
- Isolate cavity
- Get point cloud in Slicer
Send point cloud points to Moveit2 as poses iterativly to scan the fantom cavity: https://youtu.be/Fz6Yo6vJVx8?si=G-bxJqX7FI-_D-VB
Experiment for checking accuracy of system.
# Source ROS2 Humble
source /opt/ros/humble/setup.bash
# Launch Slicer
cd Slicer-build
./Slicer
ros2 launch mycobot_280_description move_group.launch.py
Using the Moveit2 interface in rviz and fiducial registration wizard module in Slicer to combine the put everything in robot coordinate frame.
Set four fiducils points in Slicer at known locations and move the robot to each fiducial in real life in the order of the points and select place to in the registration wizard.
# Start Listening
ros2 launch moveit2_scripts test_trajectory.launch.py
- Press button to initialize module
- Press button to publish points
Robot will scan each point on STL as shown in the video: https://youtu.be/AizRuA_jTYM