Teach pendant GUI for the 7-DOF robotic arm (ROS 2 Humble)
Project description
7dof-pendant
A pip-installable teach pendant GUI for the 7-DOF robotic arm.
The app opens a PyQt6 pendant (joint jog, Cartesian jog, presets, drawing, live status, E-stop) and drives the ROS 2 backend (Gazebo + ros2_control + the custom IK/FK and drawing nodes).
Install
ROS 2 Humble must already be installed (see Requirements), then install the pendant one of two ways:
From the latest release (recommended for users):
pip install --user https://github.com/Chhay-Yeah/7dof_ws/releases/download/v0.1.0/7dof_pendant-0.1.0-py3-none-any.whl
7dof-pendant # ensure ~/.local/bin is on PATH
The release wheel is self-contained (GUI + bundled robot source). Latest releases: https://github.com/Chhay-Yeah/7dof_ws/releases.
From source (for development):
cd teach_pendant
pip install .
7dof-pendant
The wheel ships only the GUI + robot source — it does not contain ROS. Install the system ROS dependencies first with
./install.sh(see below).
Requirements
ROS 2 Humble must be installed on the machine. The pendant cannot bring
ROS along inside the wheel — rclpy, MoveIt and ros2_control come from the
system install. The pendant does bundle the robot's ROS 2 source and builds it
for you on first launch.
One-shot setup (install.sh)
./install.sh (run from teach_pendant/) installs every ROS dependency the
pendant needs to build and run via rosdep, plus the undeclared Python deps
(numpy, scipy, urdf_parser_py), then installs the pendant editable and
builds the workspace. It requires ROS 2 already installed under /opt/ros.
Use ./install.sh --no-build to skip the colcon build.
It supports real-hardware control and the moveit (RViz fake-hardware)
simulation — RViz and MoveIt are installed. It deliberately skips
Gazebo/Ignition, so the gazebo physics-sim backend is not available; use
moveit mode (Settings → mode) for RViz-based testing.
How it works
7dof-pendantchecks whether the ROS 2 environment is sourced. If not, it re-execs itself under a shell with/opt/ros/<distro>/setup.bashand the workspace'sinstall/setup.bashsourced — so you can launch from a plain terminal.- It locates the colcon workspace (
$PENDANT7DOF_WS, a bundled copy, or your~/7dof_ws). On first run itcolcon builds it once. - It opens the GUI. Use the Settings tab's Launch Gazebo Simulation
button to bring up the backend (
ros2 launch arm_bot pendant_backend.launch.py) as a managed child process — this is how you test the pendant end to end. Untick "Also open RViz" to skip RViz. The simulation is torn down when you close the app.
Commands
7dof-pendant # launch the pendant (default)
7dof-pendant launch --no-backend # attach to an already-running backend
7dof-pendant build # colcon-build the workspace and exit
7dof-pendant bundle # copy the dev workspace source into the package
7dof-pendant release # build a shippable self-contained wheel
7dof-pendant doctor # print environment diagnostics
Building a self-contained wheel
By default the package finds your ~/7dof_ws at runtime (no 49 MB of meshes
duplicated into git). To ship a wheel that carries the workspace inside it, run:
7dof-pendant release # bundle + build + clean up, in one step
This bundles the backend source, builds the wheel without pip build
isolation (so it uses your vetted setuptools>=61, not an arbitrary cached
one), then removes the bundle so your dev launches keep using the live
~/7dof_ws. The wheel lands in dist/7dof_pendant-<version>-py3-none-any.whl.
Do not use
python -m buildhere: pip's build isolation can pull an ancientsetuptoolsthat ignores the PEP 621[project]table and silently produces a brokenUNKNOWN-0.0.0wheel.7dof-pendant releaseavoids that trap (and checks yoursetuptools/wheelversions first).
Flags: --no-bundle builds a GUI-only wheel (bring your own backend);
--keep-bundle leaves the bundled workspace in place after building.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file 7dof_pendant-0.1.0-py3-none-any.whl.
File metadata
- Download URL: 7dof_pendant-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef2dcba501408afcc5cfa773b19710cbe79b19256cd9242bc82075c98deb8daa
|
|
| MD5 |
77402a77bbba93d3a215627f0487176d
|
|
| BLAKE2b-256 |
c37c17b9e6ce48d58b8d1b67582972a5276972aad26f51dd6019f5ea5a19b38b
|