Skip to content

PerkLab/Benchtop_Imaging_Robot

Repository files navigation

Mycobot 280 with ROS2 Humble, ROS2 control and MoveIt2

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.

Features

  • 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.

Usage

1. Gazebo, ros2_control and moveit2

# 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

2. Launching real robot with control and moveit2

ros2 launch mycobot_280_description move_group.launch.py

3. Giving a Desired Pose

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

Autonomous breast cancer scan

Powerpoint to show solution: https://github.com/ColemanFarv/ros2_ws/blob/main/Breast%20Cancer%20Scanning%20with%20robot.pptx

1. Scan cavity

  1. Scan cavity with intel intellisense depth camera

  2. Put image in jupiter notebook

image
  1. Isolate cavity
image
  1. Get point cloud in Slicer

image

Send point cloud points to Moveit2 as poses iterativly to scan the fantom cavity: https://youtu.be/Fz6Yo6vJVx8?si=G-bxJqX7FI-_D-VB

image

Accuracy Experiment

Experiment for checking accuracy of system.

1. Lauch Slicer on Linux

# Source ROS2 Humble
source /opt/ros/humble/setup.bash
# Launch Slicer
cd Slicer-build
./Slicer

2. Launch real robot with MoveIt2

ros2 launch mycobot_280_description move_group.launch.py

3. Merge Slicer and robot coordinate frames

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.

4. Start listening to Slicer

# Start Listening
ros2 launch moveit2_scripts test_trajectory.launch.py

5. Start Slicer module

  1. Press button to initialize module
  2. Press button to publish points

6. Experiment starts

Robot will scan each point on STL as shown in the video: https://youtu.be/AizRuA_jTYM IMG_A86E24E89752-1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published