The MoveIt! Motion Planning Framework for ROS 2.0
- Official announcement, commitment from Acutronic Robotics to allocate PMs and fund PickNik
- Why MoveIt 2 and approach
- Porting and understanding
moveit_core
Install instructions (DEPRECATED, see below)
- Install instructions
Update/setup infrastructure for development
- Upgrade continuous integration for ROS 2.0
- Simple CI with Travis (Linux and OS X)
- moveit_ci https://github.com/AcutronicRobotics/moveit_ci/tree/ros2
- 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
- Dependencies on other packages
- tf2_kdl ros2/geometry2#90
- eigen_stl_containers https://github.com/AcutronicRobotics/eigen_stl_containers/tree/ros2
- geometric_shapes moveit/geometric_shapes#96
- random_numbers moveit/random_numbers#12
- srdfdom (contributed by @anasarrak, @vmayoral and @ahcorde) moveit/srdfdom#45
- urdf_parser_py ros/urdf_parser_py#41
- Created a ROS 2 version (with package.xml) of urdfdom_headers https://github.com/AcutronicRobotics/urdfdom_headers/tree/ros2
- octomap https://github.com/AcutronicRobotics/octomap
- octomap
- octovis
- dynamicEDT3D
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
- moveit_ros_planning_interface (dummy interface for now)
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
- Migrate plugin architecture to ROS2 nodelets
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?
Note that moveit2 is a work in progress. Limited effort has been allocated to provide instructions on how to reproduce the available work.
Install and test options
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
Note: You need to have docker installed on your system.
cd ~ && git clone https://github.com/AcutronicRobotics/moveit2
cd ~/moveit2
git clone -q -b ros2 --depth=1 https://github.com/acutronicrobotics/moveit_ci.git .moveit_ci
export MOVEIT_CI_TRAVIS_TIMEOUT=85 # Travis grants us 90 min, but we add a safety margin of 5 min
export ROS_DISTRO=crystal
export ROS_REPO=acutronicrobotics
export UPSTREAM_WORKSPACE=moveit.rosinstall
export TEST_BLACKLIST="moveit_ros_perception tf2_ros" # mesh_filter_test fails due to broken Mesa OpenGL
export CXXFLAGS="-Wall -Wextra -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-unused-function"
.moveit_ci/travis.sh
TODO
An attempt to provide an environment whereto build the existing moveit2 repository is available at https://github.com/AcutronicRobotics/moveit2/tree/local-build/.docker/local-build.
# from https://github.com/AcutronicRobotics/moveit2/tree/local-build/.docker/local-build
# Build it
docker build -t local-build --build-arg=<branch> .
# or docker build -t local-build .
# Run it
docker run -it local-build
# inside of the container, compile the moveit2 code
colcon build --merge-install #Inside of the docker container
- Ubuntu 18.04
- OS X 10.14 (DEPRECATED)
Refer to https://github.com/AcutronicRobotics/moveit_ci. Docker containers (containing the appropriate ROS 2 release with the right dependencies) are created for the purpose of CI and available at https://cloud.docker.com/u/acutronicrobotics/repository/docker/acutronicrobotics/moveit2.
Releases of MoveIt 2 aren't planned for now.