• Stars
    star
    146
  • Rank 252,769 (Top 5 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Helper functions for displaying and debugging MoveIt! data in Rviz via published markers

MoveIt Visual Tools

Helper functions for displaying and debugging MoveIt data in Rviz via published markers, trajectories, and MoveIt collision objects. It is sometimes hard to understand everything that is going on internally with MoveIt, but using these quick convenience functions allows one to easily visualize their code. This package is built in top of rviz_visual_tools and all those features are included via class inheritance.

This package helps you visualize:

  • Basic Rviz geometric shapes
  • MoveIt collision objects
  • MoveIt and ROS trajectories
  • Robot states
  • End effectors
  • Interactive markers to move robot arms using IK from remote applications

This open source project was developed at PickNik Robotics. Need professional ROS development and consulting? Contact us at [email protected] for a free consultation.

Status:

ROS:

  • Build Status Travis CI
  • Build Status ROS Buildfarm - AMD64 Xenial Debian Build - Ubuntu 16.04 LTS
  • Build Status ROS Buildfarm - AMD64 Xenial Devel Build - Ubuntu 16.04 LTS
  • Build Status ROS Buildfarm - AMD64 Bionic Source Build - Ubuntu 18.04 LTS
  • Build Status ROS Buildfarm - AMD64 Bionic Devel Build - Ubuntu 18.04 LTS

ROS2:

  • Build and Test Github Actions - AMD64 Focal Source Build - Ubuntu 20.04 LTS
  • Formatting(pre-commit) Formatting(pre-commit)

ROS2 Install

Install From Source

Install moveit2 following the instructions here. After sourcing the moveit workspace clone this repository into a colcon workspace, import and install dependencies and build:

source ~/ws_moveit/install/setup.bash
cd $COLCON_WS/src
git clone -b ros2 https://github.com/ros-planning/moveit_visual_tools
vcs import < moveit_visual_tools/moveit_visual_tools.repos
rosdep install -r --from-paths . --ignore-src --rosdistro foxy -y
cd $COLCON_WS
colcon build --event-handlers desktop_notification- status- --cmake-args -DCMAKE_BUILD_TYPE=Release

Quick Start Demo

To run some demos displaying robot states and collision objects:

ros2 launch moveit_visual_tools demo_rviz.launch.py

Code API

See VisualTools Class Reference

Usage

We'll assume you will be using these helper functions within a class.

Initialize

Add to your includes:

#include <moveit_visual_tools/moveit_visual_tools.h>

Add to your class's member variables:

// For visualizing things in rviz
moveit_visual_tools::MoveItVisualToolsPtr visual_tools_;

In your class' constructor add:

visual_tools_ = std::make_shared<moveit_visual_tools::MoveItVisualTools>(node_, "world", "/moveit_visual_tools");

Collision Object Functions

Helpers for adding and removing objects from the MoveIt planning scene. CO stands for Collision Object and ACO stands for Active Collision Object.

  • cleanupCO
  • cleanupACO
  • attachCO
  • publishCollisionBlock
  • publishCollisionCylinder
  • publishCollisionTree
  • publishCollisionTable
  • publishCollisionWall

And more...

Animate Trajectories

Higher level robot and trajectory functions

  • publishTrajectoryPath
  • publishTrajectoryPoint
  • publishRobotState
  • publishAnimatedGrasps
  • publishIKSolutions

Show parts of a robot

These functions are a little more complicated

  • publishEEMarkers

Parent Class

This class is built on top of rviz_visual_tools so all features and documentation for that package apply here as well.

Developers Notes

Useful notes for anyone wanting to dig in deeper:

  • All poses are published with respect to the world frame e.g. /world, /odom, or maybe /base
  • All publish() ROS topics should be followed by a rclcpp::spin_some(node); but no sleep
  • Do not want to load any features/publishers until they are actually needed since this library contains so many components

Linting (pre-commit)

pre-commit is a tool that is used in moveit2_tutorials to check and apply style guidelines automatically. To install pre-commit into your system:

pip3 install pre-commit

Then under moveit2_tutorials directory install the git hooks like this:

cd $COLCON_WS/src/moveit2_tutorials && pre-commit install

With this pre-commit will automatically run and check a list of styling including clang-format, end of files and trailing whitespaces whenever you run git commit. To run pre-commit any time other than git commit:

cd $COLCON_WS/src/moveit2_tutorials && pre-commit run -a

Contribute

Please send PRs for new helper functions, fixes, etc!

More Repositories

1

moveit

🤖 The MoveIt motion planning framework
C++
1,621
star
2

moveit2

🤖 MoveIt for ROS 2
C++
1,014
star
3

moveit_tutorials

A sphinx-based centralized documentation repo for MoveIt
HTML
464
star
4

moveit_task_constructor

A hierarchical multi-stage manipulation planner
C++
172
star
5

moveit2_tutorials

A sphinx-based centralized documentation repo for MoveIt 2
CSS
144
star
6

moveit_calibration

Hand-eye calibration tools for robot arms.
C++
124
star
7

panda_moveit_config

The Panda robot is the flagship MoveIt integration robot
CMake
99
star
8

moveit_grasps

Geometric grasping generator library for cuboids
C++
89
star
9

moveit_ros

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
C++
69
star
10

moveit_resources

URDFs, meshes, and config packages for MoveIt testing
Python
61
star
11

geometric_shapes

Representation of geometric shapes
C++
57
star
12

moveit_pr2

MoveIt! Packages for PR2
C++
51
star
13

moveit_robots

MoveIt! configurations for different robots
C++
48
star
14

moveit_msgs

ROS messages used by MoveIt
CMake
46
star
15

moveit.ros.org

This is the MoveIt website
HTML
37
star
16

warehouse_ros

Data persistence for ROS using MongoDB
C++
31
star
17

moveit_core

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
C++
30
star
18

moveit_example_apps

Demonstrator applications for using MoveIt with full robotic setups
Python
24
star
19

warehouse_ros_mongo

Implementation of warehouse_ros using MongoDB
C++
17
star
20

moveit_planners

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
C++
16
star
21

moveit_ci

Continuous Integration for MoveIt
Shell
16
star
22

moveit_advanced

C++
15
star
23

moveit_drake

Experimental repository for Moveit2 - Drake integration
C++
15
star
24

warehouse_ros_sqlite

Data persistence for ROS using SQLite
C++
13
star
25

moveit_plugins

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
C++
12
star
26

srdfdom

Semantic Robot Description Format
C++
12
star
27

moveit_ikfast

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
C++
12
star
28

moveit_commander

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
Python
11
star
29

moveit_kinematics_tests

DEPRECATED, MOVED TO https://github.com/ros-planning/moveit
C++
11
star
30

moveit_setup_assistant

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
C++
8
star
31

random_numbers

Routines for random number generation
C++
8
star
32

moveit_docs

DEPRECATED - see https://github.com/ros-planning/moveit.ros.org
CSS
5
star
33

stomp_moveit

STOMP support for MoveIt - ROS 2
C++
4
star
34

moveit_metapackages

DEPRECATED - see https://github.com/ros-planning/moveit
CMake
2
star
35

moveit_experimental

THIS REPO HAS MOVED TO https://github.com/ros-planning/moveit
C++
1
star
36

moveit2_packages

1
star
37

moveit_benchmark_resources

Configurations and databases for setting up benchmarks with MoveIt
Python
1
star
38

moveit_visual_tools-release

1
star
39

py_binding_tools

Python binding tools for C++
C++
1
star