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
- First demonstrator in ROS 2, planning to a joint-space goal
- Sensorless collision detection with ROS 2
- Announcing MoveIt 2 alpha release
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 (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?
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
Follow this to install ROS 2 Dashing
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
# 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
Refer to https://acutronicrobotics.com/docs/products/robots/mara/moveit2/install/osx (outdated)
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 dashing --depth=1 https://github.com/acutronicrobotics/moveit2_ci.git .moveit2_ci
source .travis.linux.env
.moveit2_ci/travis.sh
TODO
https://cloud.docker.com/u/acutronicrobotics/repository/docker/acutronicrobotics/moveit2