ros-pybullet / ros_pybullet_interface

ROS-PyBullet Interface.
https://ros-pybullet.github.io/ros_pybullet_interface/
BSD 3-Clause "New" or "Revised" License
74 stars 13 forks source link

GUI controls as ROS 2 rqt plugin #10

Open jkaniuka opened 1 year ago

jkaniuka commented 1 year ago

Motivation

Hi, I have been using PyBullet in my engineering thesis and recently noticed that you have made the ROS-PyBullet Interface code available. I was very comfortable using Pybullet, but at the time I was surprised why it was not available as a ROS package. I see that the ROS 2 branch is in early development, so I decided to add something from myself.

Description

I took care of the GUI implementation in the form of the rqt plugin. The reference point for me was the rpbi_controls_node.py file from main branch of ros_pybullet_interface repository.

Screenshot

image

How to run

  1. In the root of your workspace build ros_pybullet_rqt_plugin package and source setup file.
    colcon build --packages-select ros_pybullet_rqt_plugin
    . install/setup.bash
  2. Refresh rqt cache memory to make the plugin visible (details can be found here)
    rqt --force-discover
  3. You can run the GUI in one of three ways:
    • Open rqt (use rqt command) and navigate to Plugins :arrow_right: Introspection :arrow_right: PyBullet Interface Controls
    • Start only this plugin using -s (standalone) flag
      rqt -s ros_pybullet_rqt_plugin
    • Open GUI as a ROS 2 node:
      ros2 run ros_pybullet_rqt_plugin ros_pybullet_rqt_plugin 

My setup

Tools used in the development

How to test

You can test whether the status information is displayed correctly by publishing a message on the rpbi/status topic.

ros2 topic pub /rpbi/status -1 std_msgs/msg/Int64 "{data: 1}"
cmower commented 1 year ago

Thanks for the contribution @jkaniuka! I am a bit short on time, but will try to find some over the next few weeks to look into this PR.