Skip to content

CheolMin-Yoon/projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 FRBot Workspace

Welcome to the FRBot project, a Mobile Manipulator workspace for ROS2 Humble. This document provides a comprehensive guide to the system's architecture, setup, and operation.


📋 Table of Contents


🚀 Main Launch File

To bring the entire system online, use the main launch file:

ros2 launch robot_bringup full_system_with_pickplace.launch.py

This command executes all system components in a coordinated sequence:

  1. Mobile Manipulator MoveIt + Hardware (Starts immediately)
  2. Dual RealSense Cameras + YOLO (Starts after 5 seconds)
  3. Web Interface (Starts after 8 seconds)
  4. Pick & Place Controller (Starts after 12 seconds)

🛠️ System Configuration

The robot's hardware components are connected as follows:

Component Communication Port / Channel
🤖 Mobile Base (4WD) RS485 Serial /dev/ttyUSB0, /dev/ttyUSB1
🦾 Manipulator (4DOF) USBCAN-UC12 Channel 0
🤏 Gripper Serial /dev/ttyACM0
👁️ RealSense D405 USB Gripper Camera
👁️ RealSense D455 USB Navigation Camera

🏗️ Package Structure

Click to expand the workspace package structure
frbot_ws/src/
│
├── robot_bringup/                    # Main launch package
│   ├── launch/
│   │   ├── full_system_with_pickplace.launch.py  # Main launch file
│   │   ├── mobile_manipulator_moveit.launch.py   # MoveIt + Hardware
│   │   └── dual_realsense.launch.py              # Cameras + YOLO
│   └── scripts/
│       └── topic_pick_place.py                   # Pick & Place controller
│
├── robot_description/                # URDF models
│   ├── urdf/
│   │   ├── mobile_manipulator_usbcan_hardware.xacro  # Main URDF
│   │   ├── robot_core.xacro
│   │   ├── ros2_control_mobile_manipulator_usbcan.urdf.xacro
│   │   ├── arm_only/                 # Manipulator-only URDF
│   │   └── mobile_only/              # Mobile base-only URDF
│   └── meshes/                       # 3D mesh files
│
├── moveit/
│   └── mobile_manipulator_moveit_config/  # MoveIt configuration
│       ├── config/                   # SRDF, kinematics, controllers
│       └── launch/
│
├── drivers/
│   ├── myactuator_hardware/          # Manipulator ros2_control driver
│   │   └── src/myactuator_hardware_interface.cpp
│   ├── md_motor_hardware/            # Mobile base ros2_control driver
│   │   └── src/md_4wd_hardware.cpp
│   ├── myactuator_rmd/               # USBCAN driver library
│   └── serial-ros2/                  # Serial communication library
│
├── robot_web_interface/              # Web-based interface
│   ├── launch/web_interface.launch.py
│   └── www/                          # HTML/CSS/JS files
│
├── yolo_realsense/                   # YOLO object detection node
│   └── yolo_realsense/yolo_node.py
│
├── navigation/                       # (Unused) Navigation packages
│   ├── robot_nav2/
│   └── robot_slam/
│
└── simulation/                       # (Unused) Simulation packages
    └── robot_gazebo/

📦 Build Instructions

To build the workspace, follow these steps:

# Navigate to your workspace directory
cd ~/frbot_ws

# Source the ROS2 environment
source /opt/ros/humble/setup.bash

# Build the packages
colcon build --symlink-install

# Source the new setup file
source install/setup.bash

▶️ Execution

Full System

Launch the entire robot system with the default parameters:

ros2 launch robot_bringup full_system_with_pickplace.launch.py

Custom Parameters

You can customize the launch with the following arguments:

ros2 launch robot_bringup full_system_with_pickplace.launch.py \
    rviz:=true \
    can_channel:=0 \
    gripper_port:=/dev/ttyACM0 \
    port_front:=/dev/ttyUSB0 \
    port_rear:=/dev/ttyUSB1 \
    enable_pickplace:=true

🎯 Using Pick & Place

The pick and place functionality is triggered automatically when YOLO detects an object and publishes to the /target_point topic.

For manual testing, you can publish a point directly:

ros2 topic pub /target_point geometry_msgs/PointStamped \
    "{header: {frame_id: 'd405_optical_frame'}, point: {x: 0.3, y: 0.0, z: 0.5}}"

🔌 Topics

Here are some of the key topics used in the system:

Topic Type Description
/target_point geometry_msgs/PointStamped Target coordinates for picking
/camera/camera/color/image_rect_raw sensor_msgs/Image D405 camera color image
/camera/camera/depth/image_rect_raw sensor_msgs/Image D405 camera depth image
/cmd_vel geometry_msgs/Twist Velocity command for mobile base

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors