Repository Summary
Description | ROS2 package for a Mobile Manipulator capable of Navigation and Manipulation functionality |
Checkout URI | https://github.com/spartan-velanjeri/ur-mir-mobile-manipulator.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-12-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ur_description | 2.1.3 |
ur | 2.2.10 |
ur_bringup | 2.2.10 |
ur_calibration | 2.2.10 |
ur_controllers | 2.2.10 |
ur_dashboard_msgs | 2.2.10 |
ur_moveit_config | 2.2.10 |
ur_robot_driver | 2.2.10 |
mir_description | 1.1.3 |
mir_driver | 1.1.3 |
mir_gazebo | 1.1.3 |
mir_msgs | 1.1.1 |
mir_navigation | 1.1.3 |
mir_restapi | 0.0.0 |
mir_robot | 1.1.3 |
point_cloud_functions | 0.0.0 |
realsense2_description | 4.54.1 |
realsense_gazebo_plugin | 3.0.1 |
robotiq_description | 0.0.0 |
ros2_aruco | 0.1.0 |
ros2_aruco_interfaces | 0.1.0 |
hello_moveit_ur | 0.0.0 |
README
mobile_manipulator
This is a ROS2 package for MiR 250 + UR5e + Realsense D435i with ros2_control, Gazebo Classic simulation.
Note: Gazebo Classic will be EOL from Jan 2025, so hence there won’t be support for gazebo classic. Unfortunately, there is no immediate plans of moving this to Ignition gazebo for now
Installation
Preliminaries
ROS2
If you haven’t already installed ROS2 on your PC, you need to add the ROS2 apt repository.
Also install ros2-control, ros2-controllers, gazebo-ros-pkgs(usually installed), gazebo-ros2-control
sudo apt-get install ros-humble-ros2-control
sudo apt-get install ros-humble-ros2-controllers
sudo apt-get install ros-humble-gazebo-ros-pkgs
sudo apt-get install ros-humble-gazebo-ros2-control
Source install
# create a ros2 workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/
# clone mir_robot into the ros2 workspace
git clone https://github.com/Spartan-Velanjeri/UR-MiR-mobile-manipulator.git src/mir_robot
# use vcs to fetch linked repos
# $ sudo apt install python3-vcstool
vcs import < src/mir_robot/mir_robot/ros2.repos src --recursive
# use rosdep to install all dependencies (including ROS itself)
sudo apt update
sudo apt install -y python3-rosdep
rosdep update --rosdistro=humble
rosdep install --from-paths src --ignore-src -r -y --rosdistro humble
# build all packages in the workspace
source /opt/ros/humble/setup.bash
cd ~/ros2_ws
colcon build
You must source the workspace in each terminal you want to work in:
source ~/ros2_ws/install/setup.bash
Also make sure to run this in order to avoid problems with Gazebo (SEE NOTES)
. /usr/share/gazebo/setup.sh
Gazebo demo (mapping)
### gazebo:
ros2 launch mir_gazebo mobile_manipulator.launch.py world:=maze
### mapping (slam_toolbox)
ros2 launch mir_navigation mapping.py use_sim_time:=true slam_params_file:=$(ros2 pkg prefix mir_navigation)/share/mir_navigation/config/mir_mapping_async_sim.yaml
### navigation (optional)
ros2 launch mir_navigation navigation.py use_sim_time:=true cmd_vel_w_prefix:=/diff_cont/cmd_vel_unstamped
Gazebo demo (Navigation with existing map)
### gazebo:
ros2 launch mir_gazebo mobile_manipulator.launch.py world:=maze rviz_config_file:=$(ros2 pkg prefix mir_navigation)/share/mir_navigation/rviz/mir_nav.rviz
### localization (existing map)
ros2 launch mir_navigation amcl.py use_sim_time:=true map:=$(ros2 pkg prefix mir_navigation)/share/mir_navigation/maps/maze.yaml
### navigation
ros2 launch mir_navigation navigation.py use_sim_time:=true
Manipulation using MoveIt2
```
gazebo:
ros2 launch mir_gazebo mobile_manipulator.launch.py world:=maze
MoveIt2:
ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur5e launch_rviz:=true prefix:=ur_ use_fake_hardware:=true use_sim_time:=true
Gazebo Aruco model path (Also put in the src/mir_robot/mir_gazebo/worlds/include folder)
/install/mir_gazebo/share/mir_gazebo/worlds/include/marker_0001
Aruco tag recognition (Make sure to add camera img to Rviz before running this)
ros2 launch ros2_aruco aruco_recognition.launch.py
Aruco pose to nav2 goal
ros2 run ros2_aruco aruco_pose_to_nav_goal
Aruco pose to manipulator goal
ros2 run ros2_aruco aruco_pose_to_manipulate
File truncated at 100 lines see the full file