Skip to content

AcutronicRobotics/moveit2

 
 

Repository files navigation

MoveIt 2 Logo

The MoveIt! Motion Planning Framework for ROS 2.0

Milestones

  1. Official announcement, commitment from Acutronic Robotics to allocate PMs and fund PickNik
  2. Why MoveIt 2 and approach
  3. Porting and understanding moveit_core
  4. First demonstrator in ROS 2, planning to a joint-space goal
  5. Sensorless collision detection with ROS 2
  6. Announcing MoveIt 2 alpha release

Progress

Update/setup infrastructure for development
  • Upgrade continuous integration for ROS 2.0
  • Convert all headers and link it to HRIM (contributed by @ibaiape)
  • Update/setup infrastructure for development
    • Delete metapackages
    • Upgrade continuous integration for ROS 2.0
    • Refactor/cleanup folder hierarchy
Dependencies on other packages
Convert moveit_core packages to ROS 2.0
  • Convert moveit_core packages to ROS 2.0
    • version
    • macros
    • backtrace
    • exceptions
    • profiler
    • logging
    • background_processing
    • kinematics_base
    • controller_manager
    • sensor_manager
    • robot_model
    • transforms
    • robot_state
    • robot_trajectory
    • collision_detection
    • collision_detection_fcl
    • kinematic_constraints
    • planning_scene
    • constraint_samplers
    • planning_interface
    • planning_request_adapter
    • trajectory_processing
    • distance_field
    • collision_distance_field
    • kinematics_metrics
    • dynamics_solver
    • utils
Other moveit packages (e.g. moveit_ros, ...)
  • moveit_ros
    • moveit_ros_planning_interface (dummy interface for now)
      • py_bindings_tools
      • common_planning_interface_objects
      • planning_scene_interface
      • move_group_interface
      • robot_interface
      • test
    • move_group
    • planning
    • moveit_ros_perception
      • occupancy_map_monitor
      • lazy_free_space_updater
      • point_containment_filter
      • pointcloud_octomap_updater
      • mesh_filter
      • depth_image_octomap_updater
      • semantic_world
    • moveit_ros_manipulation
      • move_group_pick_place_capability
Necessary for a Minimal Working Example
  • Necessary for a Minimal Working Example
    • moveit_core
    • moveit_ros_perception
      • occupancy_map_monitor
    • move_group
    • moveit_ros_planning
      • rdf_loader
      • collision_plugin_loader
      • kinematics_plugin_loader
      • robot_model_loader
      • constraint_sampler_manager_loader
      • planning_request_adapter_plugins
      • planning_pipeline
      • planning_scene_monitor
      • trajectory_execution_manager
      • plan_execution
    • planning_interface
      • common_planning_interface_objects
      • planning_scene_interface
      • move_group_interface (partially)
      • test
    • moveit_planner
      • ompl
    • moveit_kinematics
      • kdl_kinematics_plugin
    • moveit_plugins
      • moveit_fake_cotroller_manager
      • moveit_simple_controller_manager
New features in ROS 2.0 (not started)
  • New features in ROS 2.0 (see last survey for more insights)
    • Realtime support
    • Lifecycle management of the ROS nodes%
    • Replacing plugins with ROS 2 components
    • Security support
    • Improved namespace handling
    • Windows support
Documentation (not started)
  • Documentation
    • Tutorials for MoveIt2
    • Create tutorial on using ros1/ros2 bridge to support ros1 hardware drivers
    • Move install instructions to moveit.ros.org
Major refactoring and divergence from moveit2 (not started)
  • Major refactoring and divergence from moveit2
    • Run ROS2 C++ and python linters
    • Delete excesses packages that are left over from rosbuild stacks: moveit_runtime, moveit_plugins, moveit_ros
    • Rename non-package folders:
      • rename moveit_planners to planners
      • rename moveit_plugins to controller_interfaces
    • Restructure folder layout of moveit repo:
      • flatten moveit_ros folder to root of repo
      • rename all moveit_ros folders with moveit_ros prefix
    • Rename major classes
      • ControllerManagers become ControllerInterfaces
      • Rename related packages
    • Merge repos:
      • moveit 9.6 MB
      • moveit_task_constructor
      • moveit_tutorials 28.6 MB
      • moveit_msgs
      • moveit_resources 61 MB
      • moveit_visual_tools
      • moveit_advanced?
      • DELETE: moveit_kinematics_tests
    • Remove large binaries from moveit repo
    • Add gitlfs?

Install and Test MoveIt 2

Note that MoveIt 2 is a work in progress. Limited effort has been allocated to provide instructions on how to reproduce the available work.

Install and test options

Build From Source

Ubuntu 18.04

Install ROS 2 Dashing Diademata

Follow this to install ROS 2 Dashing

Compile MoveIt 2 and Dependencies:

Install additional build dependencies:

sudo apt-get install python-vcstool python3-colcon-common-extensions

Warning:--symlink-install flag is not compatible for now: #112, #104

Download and build MoveIt2:

mkdir -p ~/moveit2_ws/src
cd ~/moveit2_ws/src
git clone https://github.com/AcutronicRobotics/moveit2 -b master
cd ..
vcs import src < src/moveit2/moveit2.repos
export ROS_DISTRO=dashing
source /opt/ros/dashing/setup.bash
rosdep update && rosdep install -q -y --from-paths . --ignore-src --rosdistro ${ROS_DISTRO}
colcon build --merge-install

Using a Docker container

# Host machine
docker run -it ros:dashing
# Inside of the docker image
mkdir -p ~/moveit2_ws/src
cd ~/moveit2_ws/src
git clone https://github.com/AcutronicRobotics/moveit2 -b master
cd ..
vcs import src < src/moveit2/moveit2.repos
apt update
rosdep update && rosdep install -q -y --from-paths . --ignore-src --rosdistro ${ROS_DISTRO} --as-root=apt:false || true
colcon build --merge-install

OS X 10.14 (DEPRECATED)

Refer to https://acutronicrobotics.com/docs/products/robots/mara/moveit2/install/osx (outdated)

Using the CI infrastructure

Moveit uses a Docker-based CI infrastructure to run tests and validate commits. Such infrastructure adapted for MoveIt 2 is available at https://github.com/acutronicrobotics/moveit_ci.git.

Using the CI infrastructure, one can get access to MoveIt 2 current status and test its capabilities

Using the CI infrastructure in Ubuntu

Note: You need to have docker installed on your system.

cd ~ && git clone https://github.com/AcutronicRobotics/moveit2
cd ~/moveit2
git clone -q -b dashing --depth=1 https://github.com/acutronicrobotics/moveit2_ci.git .moveit2_ci
source .travis.linux.env
.moveit2_ci/travis.sh

Using the CI infrastructure in OS X

TODO

Continuous Integration

Build Status

Docker Containers

https://cloud.docker.com/u/acutronicrobotics/repository/docker/acutronicrobotics/moveit2

Packages

No packages published

Languages

  • C++ 94.0%
  • Python 3.5%
  • CMake 2.1%
  • Shell 0.3%
  • C 0.1%
  • Dockerfile 0.0%