ROS stack for the bimanual UR5 robot
- prl_ur5_run: the starting point.
- prl_ur5_description: robot's URDF description.
- prl_ur5_control: physical robot control.
- prl_ur5_gazebo: simulated robot control.
- prl_ur5_moveit_config: MoveIt! configuration.
- prl_ur5_demos: demo scripts.
In order to be able to start the robot (in sim or real), you need to setup some environment variable in your terminal:
source /opt/ros/noetic/setup.bash # ONLY IF YOU ARE USING ROS FROM APT
source ~/catkin_ws/devel/setup.bash # Make ros able to find packaged that you build manually (using catkin)
source ~/catkin_ws/src/prl_ur5_robot_configuration/script/setup_env.bash # To have the robot specific configurations
To start real robot control use:
roslaunch prl_ur5_run real.launch [setup:=standart_setup] [sensors:=false] [moveit:=true] [rviz:=true] [pipeline:=ompl] [debug:=false]
To run simulation in Gazebo use:
roslaunch prl_ur5_run sim.launch [setup:=standart_setup] [sensors:=false] [gazebo_gui:=true] [moveit:=true] [rviz:=true] [pipeline:=ompl] [debug:=false]
Possible arguments:
- setup: robot setup (details here), default="standart_setup"
- sensors: start sensors or not, default="false"
- moveit: start MoveIt or not, default="true"
- rviz: open RViz window or not, default="true"
- pipeline: MoveIt planning pipeline, default="ompl"
- gazebo_gui: open Gazebo GUI window or not, default="true"
- debug: run in the debug mode, default="false"
See instructions here.
See instructions here.
The following section contains instructions that can be specific to apt or conda.
- Install Noetic ROS version (Desktop-Full Install recomended):
Conda
conda create -n my_ros -c conda-forge -c robostack -c default ros-noetic-desktop python=3.8.* --no-default-packages
# For micromamba users, remove the "--no-default-packages" option
Apt
- Make sure that ROS is correctly sourced:
Conda
conda activate my_ros
Apt
source /opt/ros/noetic/setup.bash
Conda
conda install -c conda-forge catkin_tools wstool compilers cxx-compiler cmake
Apt
sudo apt-get install python3-catkin-tools python3-wstool python3-rosdep
- Make a folder for catkin workspace:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
- Clone the repo, (automatically) clone the depencies that needs to be installed from source and install the other dependencies:
git clone -b master https://github.com/inria-paris-robotics-lab/prl_ur5_robot src/prl_ur5_robot
wstool init src ./src/prl_ur5_robot/prl_ur5_robot.rosinstall
rosdep update
rosdep install --from-paths src --ignore-src --skip-keys=python-pymodbus -r -y
- Get the robot configuration:
- Option 1 : Clone the repo in your catkin workspace:
git clone -b master https://github.com/inria-paris-robotics-lab/prl_ur5_robot_configuration src/prl_ur5_robot_configuration
- Option 2 : Create a symbolic link to an already existing configuration folder:
ln -s /path/to/existing/folder src/prl_ur5_robot_configuration
- Init the workspace:
Conda
catkin config --init --extend $CONDA_PREFIX
Apt
catkin config --init --extend /opt/ros/${ROS_DISTRO}/
catkin config --blacklist robotiq_3f_gripper_articulated_gazebo_plugins
- Build everything
catkin build
- [optionnal - only for APT] Add a link to setup in your bashrc:
Apt
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
- Setup local ros environment variables
source ~/catkin_ws/devel/setup.bash
source ~/catkin_ws/src/prl_ur5_robot_configuration/script/setup_env.bash
- Set custom environment variables (for log files):
export PRL_LOG_PATH=/my/log/path
[Click here to expand]
Rosdep install
print messages such asUnsupported OS [robostack]
- During the
catkin build
phase many ros packages are missing as dependencies
Here is a list of conda packages to install "by hand" to solve most of the dependencies issues :
conda install -c conda-forge -c robostack -c default console_bridge ros-noetic-gazebo-ros ros-noetic-urdfdom-py ros-noetic-moveit-core ros-noetic-moveit-kinematics ros-noetic-moveit-ros-planning ros-noetic-camera-info-manager ros-noetic-hardware-interface ros-noetic-moveit-ros-move-group ros-noetic-moveit-planners-ompl ros-noetic-moveit-ros-visualization ros-noetic-moveit-fake-controller-manager ros-noetic-moveit-simple-controller-manager ros-noetic-moveit-planners-chomp ros-noetic-moveit-setup-assistant ros-noetic-soem ros-noetic-controller-manager ros-noetic-effort-controllers ros-noetic-gazebo-ros-control ros-noetic-joint-state-controller ros-noetic-joint-trajectory-controller ros-noetic-position-controllers ros-noetic-ur-client-library ros-noetic-ros-controllers ros-noetic-gazebo-ros-control-select-joints ros-noetic-ros-control ros-noetic-industrial-robot-status-controller ros-noetic-realsense2-camera ros-noetic-gazebo-plugins ros-noetic-gazebo-msgs ros-noetic-controller-interface ros-noetic-realtime-tools ros-noetic-control-toolbox ros-noetic-forward-command-controller ros-noetic-industrial-robot-status-interface ros-noetic-controller-manager-msgs ros-noetic-pass-through-controllers ros-noetic-cartesian-trajectory-controller ros-noetic-force-torque-sensor-controller socat ros-noetic-twist-controller ros-noetic-velocity-controllers ros-noetic-moveit-commander ros-noetic-socketcan-interface ros-noetic-realsense2-description
- Moveit is not appearing in RViz
- In the terminal
PluginlibFactory: The plugin for class 'moveit_rviz_plugin/MotionPlanning' failed to load. Error: Failed to load library <my_home>/micromamba/envs/prl_ros/lib/libmoveit_motion_planning_rviz_plugin.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = libmoveit_semantic_world.so.1.1.0: cannot open shared object file: No such file or directory)
libmoveit_semantic_world
is probably installed already but with a slightly different version. Just create a simlink to it
ln -s $CONDA_PREFIX/lib/libmoveit_semantic_world.so $CONDA_PREFIX/lib/libmoveit_semantic_world.so.1.1.0