Giter Club home page Giter Club logo

moveit2's Introduction

MoveIt 2 Logo

Build Status

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

Progress

Install instructions (DEPRECATED, see below)
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
    • 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?

Install and test MoveIt 2

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

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 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

Using the CI infrastructure in OS X

TODO

Using a Docker container (DEPRECATED)

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

From sources (DEPRECATED)

Continuous Integration

Build Status

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.

ROS 2 Buildfarm

Releases of MoveIt 2 aren't planned for now.

moveit2's People

Contributors

130s avatar ahcorde avatar anasarrak avatar bmagyar avatar brycestevenwilley avatar davetcoleman avatar de-vri-es avatar dg-shadow avatar gavanderhoorn avatar henningkayser avatar hersh avatar isucan avatar jrgnicho avatar julienking avatar k-okada avatar landeru avatar marioprats avatar mathias-luedtke avatar mayman99 avatar mikeferguson avatar mintar avatar mlautman avatar rbbg avatar rhaschke avatar sachinchitta avatar simonschmeisser avatar skohlbr avatar v4hn avatar velveteenrobot avatar vmayoral avatar

Watchers

 avatar  avatar

moveit2's Issues

moveit_ros/visualization port to Moveit2

Currently porting rviz_plugin_render_tools.

Current state of the compilation: (failing)
Branch: visualization.

--- stderr: moveit_ros_visualization                                
In file included from /home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/src/planning_link_updater.cpp:37:0:
/home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/include/moveit/rviz_plugin_render_tools/planning_link_updater.hpp:40:10: fatal error: rviz_default_plugins/robot/link_updater.hpp: No such file or directory
 #include <rviz_default_plugins/robot/link_updater.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/src/robot_state_visualization.cpp:37:0:
/home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/include/moveit/rviz_plugin_render_tools/robot_state_visualization.hpp:40:10: fatal error: moveit/macros/class_forward.h: No such file or directory
 #include <moveit/macros/class_forward.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [rviz_plugin_render_tools/CMakeFiles/moveit_rviz_plugin_render_tools.dir/src/planning_link_updater.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [rviz_plugin_render_tools/CMakeFiles/moveit_rviz_plugin_render_tools.dir/src/robot_state_visualization.cpp.o] Error 1
In file included from /home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/src/planning_scene_render.cpp:37:0:
/home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/include/moveit/rviz_plugin_render_tools/planning_scene_render.hpp:40:10: fatal error: moveit/macros/class_forward.h: No such file or directory
 #include <moveit/macros/class_forward.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [rviz_plugin_render_tools/CMakeFiles/moveit_rviz_plugin_render_tools.dir/src/planning_scene_render.cpp.o] Error 1
In file included from /home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/include/moveit/rviz_plugin_render_tools/render_shapes.hpp:40:0,
                 from /home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/src/render_shapes.cpp:37:
/home/nestor/moveit2_ws/src/moveit2/moveit_ros/visualization/rviz_plugin_render_tools/include/moveit/rviz_plugin_render_tools/octomap_render.hpp:42:10: fatal error: rviz_rendering/objects/point_cloud.hpp: No such file or directory
 #include <rviz_rendering/objects/point_cloud.hpp>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [rviz_plugin_render_tools/CMakeFiles/moveit_rviz_plugin_render_tools.dir/src/render_shapes.cpp.o] Error 1
make[1]: *** [rviz_plugin_render_tools/CMakeFiles/moveit_rviz_plugin_render_tools.dir/all] Error 2
make: *** [all] Error 2
---
Failed   <<< moveit_ros_visualization	[ Exited with code 2 ]

RViz fails to launch when moveit2_ws is sourced

Branch visualization.

Launching rviz2 sourcing the moveit2 ws.

GUI error

The class required for this view controller, 'rviz_default_plugins/Orbit', could not be loaded.
Error:
MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::view_controllers::OrbitViewController

Console error

[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/TF' failed to load. Error: Failed to load library /opt/ros/dashing/lib/librviz_default_plugins.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 = /opt/ros/dashing/lib/librviz_default_plugins.so: undefined symbol: _ZTVN7tf2_ros17TransformListenerE)
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/Orbit' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::view_controllers::OrbitViewController
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/Grid' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::displays::GridDisplay
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/RobotModel' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::displays::RobotModelDisplay
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/TF' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::displays::TFDisplay
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/LaserScan' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::displays::LaserScanDisplay
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/MoveCamera' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::tools::MoveTool
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/Select' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::tools::SelectionTool
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/FocusCamera' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::tools::FocusTool
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/Measure' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::tools::MeasureTool
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/SetInitialPose' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::tools::InitialPoseTool
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/SetGoal' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::tools::GoalTool
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/PublishPoint' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::tools::PointTool
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/Orbit' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::view_controllers::OrbitViewController
[ERROR] [rviz2]: PluginlibFactory: The plugin for class 'rviz_default_plugins/TF' failed to load. Error: MultiLibraryClassLoader: Could not create class of type rviz_default_plugins::transformation::TFFrameTransformer

Related? https://github.com/ros2/rviz/blob/ros2/docs/plugin_development.md#plugin-basics

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.